libnx/nx/include/switch/services/i2c.h
2018-11-14 19:52:40 -05:00

32 lines
712 B
C

/**
* @file i2c.h
* @brief I2C service IPC wrapper.
* @author SciresM
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "sm.h"
typedef enum {
I2cDevice_AudioCodec = 4,
} I2cDevice;
typedef struct {
Service s;
} I2cSession;
typedef enum {
I2cTransactionOption_Start = (1 << 0),
I2cTransactionOption_Stop = (1 << 1),
I2cTransactionOption_All = I2cTransactionOption_Start | I2cTransactionOption_Stop,
} I2cTransactionOption;
Result i2cInitialize(void);
void i2cExit(void);
Result i2cOpenSession(I2cSession *out, I2cDevice dev);
Result i2csessionSendAuto(I2cSession *s, void *buf, size_t size, I2cTransactionOption option);
void i2csessionClose(I2cSession *s);