TuyaOS
tkl_i2c.h
浏览该文件的文档.
1
10#ifndef __TKL_I2C_H__
11#define __TKL_I2C_H__
12
13#include "tuya_cloud_types.h"
14
15#include "tkl_gpio.h"
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
26#define I2C_IOCTL_SET_REGADDR_WIDTH 1
27
32typedef struct {
33 UINT32_T dev_addr;
34 UINT32_T reg_addr_width;
36
45OPERATE_RET tkl_i2c_init(TUYA_I2C_NUM_E port, CONST TUYA_IIC_BASE_CFG_T *cfg);
46
54OPERATE_RET tkl_i2c_deinit(TUYA_I2C_NUM_E port);
55
65OPERATE_RET tkl_i2c_irq_init(TUYA_I2C_NUM_E port, TUYA_I2C_IRQ_CB cb);
66
74OPERATE_RET tkl_i2c_irq_enable(TUYA_I2C_NUM_E port);
75
83OPERATE_RET tkl_i2c_irq_disable(TUYA_I2C_NUM_E port);
84
95OPERATE_RET tkl_i2c_master_send(TUYA_I2C_NUM_E port, UINT16_T dev_addr, CONST VOID_T *data, UINT32_T size, BOOL_T xfer_pending);
96
107OPERATE_RET tkl_i2c_master_receive(TUYA_I2C_NUM_E port, UINT16_T dev_addr, VOID *data, UINT32_T size, BOOL_T xfer_pending);
108
117OPERATE_RET tkl_i2c_set_slave_addr(TUYA_I2C_NUM_E port, UINT16_T dev_addr);
118
128OPERATE_RET tkl_i2c_slave_send(TUYA_I2C_NUM_E port, CONST VOID *data, UINT32_T size);
129
139OPERATE_RET tkl_i2c_slave_receive(TUYA_I2C_NUM_E port, VOID *data, UINT32_T size);
140
148OPERATE_RET tkl_i2c_get_status(TUYA_I2C_NUM_E port, TUYA_IIC_STATUS_T *status);
149
157OPERATE_RET tkl_i2c_reset(TUYA_I2C_NUM_E port);
158
170INT32_T tkl_i2c_get_data_count(TUYA_I2C_NUM_E port);
171
179OPERATE_RET tkl_i2c_ioctl(TUYA_I2C_NUM_E port, UINT32_T cmd, VOID *args);
180
181
182#ifdef __cplusplus
183}
184#endif /* __cplusplus */
185
186#endif
187
188
ioctl args define
Definition: tkl_i2c.h:32
i2c cfg
Definition: tuya_cloud_types.h:735
Definition: tuya_cloud_types.h:741
Common process - adapter the gpio api
OPERATE_RET tkl_i2c_deinit(TUYA_I2C_NUM_E port)
i2c deinit
OPERATE_RET tkl_i2c_master_send(TUYA_I2C_NUM_E port, UINT16_T dev_addr, CONST VOID_T *data, UINT32_T size, BOOL_T xfer_pending)
i2c master send
OPERATE_RET tkl_i2c_irq_disable(TUYA_I2C_NUM_E port)
i2c irq disable
OPERATE_RET tkl_i2c_irq_init(TUYA_I2C_NUM_E port, TUYA_I2C_IRQ_CB cb)
i2c irq init NOTE: call this API will not enable interrupt
OPERATE_RET tkl_i2c_set_slave_addr(TUYA_I2C_NUM_E port, UINT16_T dev_addr)
i2c slave
OPERATE_RET tkl_i2c_irq_enable(TUYA_I2C_NUM_E port)
i2c irq enable
OPERATE_RET tkl_i2c_slave_receive(TUYA_I2C_NUM_E port, VOID *data, UINT32_T size)
IIC slave receive, Start receiving data as IIC Slave.
OPERATE_RET tkl_i2c_ioctl(TUYA_I2C_NUM_E port, UINT32_T cmd, VOID *args)
i2c ioctl
OPERATE_RET tkl_i2c_slave_send(TUYA_I2C_NUM_E port, CONST VOID *data, UINT32_T size)
i2c slave send
OPERATE_RET tkl_i2c_reset(TUYA_I2C_NUM_E port)
i2c's reset
OPERATE_RET tkl_i2c_master_receive(TUYA_I2C_NUM_E port, UINT16_T dev_addr, VOID *data, UINT32_T size, BOOL_T xfer_pending)
i2c master recv
OPERATE_RET tkl_i2c_init(TUYA_I2C_NUM_E port, CONST TUYA_IIC_BASE_CFG_T *cfg)
i2c init
OPERATE_RET tkl_i2c_get_status(TUYA_I2C_NUM_E port, TUYA_IIC_STATUS_T *status)
IIC get status.
INT32_T tkl_i2c_get_data_count(TUYA_I2C_NUM_E port)
i2c transferred data count.