53 #ifdef CONFIG_I2C_MULTI
58 struct i2c *(*i2c_init)(uint32_t index,
enum i2c_mode mode);
60 int32_t (*
i2c_send)(
struct i2c *i2c, uint16_t id, uint8_t *data, uint32_t len, TickType_t waittime);
61 int32_t (*
i2c_recv)(
struct i2c *i2c, uint16_t id, uint8_t *data, uint32_t len, TickType_t waittime);
62 int32_t (*
i2c_transfer)(
struct i2c *i2c, uint16_t id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen, TickType_t waittime);
63 int32_t (*
i2c_sendISR)(
struct i2c *i2c, uint16_t id, uint8_t *data, uint32_t len);
64 int32_t (*
i2c_recvISR)(
struct i2c *i2c, uint16_t id, uint8_t *data, uint32_t len);
65 int32_t (*
i2c_transferISR)(
struct i2c *i2c, uint16_t id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen);
77 #ifdef CONFIG_INSTANCE_NAME
83 #ifdef CONFIG_I2C_THREAD_SAVE
89 #ifdef CONFIG_I2C_MULTI
93 const struct i2c_ops *ops;
96 #ifndef CONFIG_I2C_MULTI
120 int32_t
i2c_send(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len, TickType_t waittime);
130 int32_t
i2c_recv(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len, TickType_t waittime);
143 int32_t
i2c_transfer(
struct i2c *i2c, uint16_t
id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen, TickType_t waittime);
152 int32_t
i2c_sendISR(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len);
161 int32_t
i2c_recvISR(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len);
173 int32_t
i2c_transferISR(
struct i2c *i2c, uint16_t
id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen);
182 return a->ops->i2c_init(index, mode);
186 return a->ops->i2c_deinit(i2c);
188 inline int32_t
i2c_send(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len, TickType_t waittime) {
190 return a->ops->i2c_send(i2c,
id, data, len, waittime);
192 inline int32_t
i2c_recv(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len, TickType_t waittime) {
194 return a->ops->i2c_recv(i2c,
id, data, len, waittime);
196 inline int32_t
i2c_transfer(
struct i2c *i2c, uint16_t
id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen, TickType_t waittime) {
198 return a->ops->i2c_transfer(i2c,
id, sendData, sendLen, recvData, recvLen, waittime);
200 inline int32_t
i2c_sendISR(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len) {
202 return a->ops->i2c_sendISR(i2c,
id, data, len);
204 inline int32_t
i2c_recvISR(
struct i2c *i2c, uint16_t
id, uint8_t *data, uint32_t len) {
206 return a->ops->i2c_recvISR(i2c,
id, data, len);
208 inline int32_t
i2c_transferISR(
struct i2c *i2c, uint16_t
id, uint8_t *sendData, uint32_t sendLen, uint8_t *recvData, uint32_t recvLen) {
210 return a->ops->i2c_transferISR(i2c,
id, sendData, sendLen, recvData, recvLen);