TuyaOS
tkl_init_common.h
浏览该文件的文档.
1
10#ifndef __TKL_INIT_COMMON_H__
11#define __TKL_INIT_COMMON_H__
12
13#include "tuya_cloud_types.h"
14#include "tkl_uart.h"
15#include "tkl_rtc.h"
16#include "tkl_watchdog.h"
17#include "tkl_adc.h"
18#include "tkl_gpio.h"
19#include "tkl_flash.h"
20#include "tkl_pwm.h"
21#include "tkl_timer.h"
22#include "tkl_i2c.h"
23#include "tkl_spi.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
32typedef struct {
33 OPERATE_RET (*init) (TUYA_UART_NUM_E port_id, TUYA_UART_BASE_CFG_T *cfg);
34 OPERATE_RET (*deinit) (TUYA_UART_NUM_E port_id);
35 INT_T (*write) (TUYA_UART_NUM_E port_id, VOID_T *buff, UINT16_T len);
36 INT_T (*read) (TUYA_UART_NUM_E port_id, VOID_T *buff, UINT16_T len);
37 VOID_T (*rx_irq_cb_reg) (TUYA_UART_NUM_E port_id, TUYA_UART_IRQ_CB rx_cb);
38 VOID_T (*tx_irq_cb_reg) (TUYA_UART_NUM_E port_id, TUYA_UART_IRQ_CB rx_cb);
39 OPERATE_RET (*set_rx_flowctrl) (TUYA_UART_NUM_E port_id, BOOL_T enable);
41
48
49
53typedef struct {
54 OPERATE_RET (*init) (VOID_T);
55 OPERATE_RET (*deinit) (VOID_T);
56 OPERATE_RET (*time_get) (TIME_T *time_sec);
57 OPERATE_RET (*time_set) (TIME_T time_sec);
59
66
67
71typedef struct {
72 UINT_T (*init) (TUYA_WDOG_BASE_CFG_T *cfg);
73 OPERATE_RET (*deinit) (VOID_T);
74 OPERATE_RET (*refresh) (VOID_T);
76
83
87typedef struct {
88 OPERATE_RET (*init) (TUYA_GPIO_NUM_E pin_id, CONST TUYA_GPIO_BASE_CFG_T *cfg);
89 OPERATE_RET (*deinit) (TUYA_GPIO_NUM_E pin_id);
90 OPERATE_RET (*write) (TUYA_GPIO_NUM_E pin_id, TUYA_GPIO_LEVEL_E level);
91 OPERATE_RET (*read) (TUYA_GPIO_NUM_E pin_id, TUYA_GPIO_LEVEL_E *level);
92 OPERATE_RET (*irq_init) (TUYA_GPIO_NUM_E pin_id, CONST TUYA_GPIO_IRQ_T *cfg);
93 OPERATE_RET (*irq_enable) (TUYA_GPIO_NUM_E pin_id);
94 OPERATE_RET (*irq_disable) (TUYA_GPIO_NUM_E pin_id);
96
103
104
108typedef struct {
109 OPERATE_RET (*read) (CONST UINT_T addr, UCHAR_T *dst, CONST UINT_T size);
110 OPERATE_RET (*write) (CONST UINT_T addr, CONST UCHAR_T *src, CONST UINT_T size);
111 OPERATE_RET (*erase) (CONST UINT_T addr, CONST UINT_T size);
112 OPERATE_RET (*lock) (CONST UINT_T addr, CONST UINT_T size);
113 OPERATE_RET (*unlock) (CONST UINT_T addr, CONST UINT_T size);
114 OPERATE_RET (*get_one_type_info) (TUYA_FLASH_TYPE_E type, TUYA_FLASH_BASE_INFO_T* info);
116
123
124
128typedef struct {
129 OPERATE_RET (*init) (TUYA_PWM_NUM_E ch_id, CONST TUYA_PWM_BASE_CFG_T *cfg);
130 OPERATE_RET (*deinit) (TUYA_PWM_NUM_E ch_id);
131 OPERATE_RET (*start) (TUYA_PWM_NUM_E ch_id);
132 OPERATE_RET (*stop) (TUYA_PWM_NUM_E ch_id);
133 OPERATE_RET (*info_set) (TUYA_PWM_NUM_E ch_id, CONST TUYA_PWM_BASE_CFG_T *info);
134 OPERATE_RET (*info_get) (TUYA_PWM_NUM_E ch_id, TUYA_PWM_BASE_CFG_T *info);
136
143
144
148typedef struct {
149 OPERATE_RET (*init) (TUYA_I2C_NUM_E port, CONST TUYA_IIC_BASE_CFG_T *cfg);
150 OPERATE_RET (*deinit) (TUYA_I2C_NUM_E port);
151 OPERATE_RET (*irq_init) (TUYA_I2C_NUM_E port, CONST TUYA_I2C_IRQ_CB *cb);
152 OPERATE_RET (*irq_enable) (TUYA_I2C_NUM_E port);
153 OPERATE_RET (*irq_disable) (TUYA_I2C_NUM_E port);
154 OPERATE_RET (*master_send) (TUYA_I2C_NUM_E port, UINT16_T dev_addr, CONST VOID_T *data, UINT32_T size, BOOL_T xfer_pending);
155 OPERATE_RET (*master_receive) (TUYA_I2C_NUM_E port, UINT16_T dev_addr, VOID *data, UINT32_T size, BOOL_T xfer_pending);
156 OPERATE_RET (*set_slave_addr) (TUYA_I2C_NUM_E port, UINT16_T dev_addr);
157 OPERATE_RET (*slave_send) (TUYA_I2C_NUM_E port, CONST VOID *data, UINT32_T size);
158 OPERATE_RET (*slave_receive) (TUYA_I2C_NUM_E port, VOID *data, UINT32_T size);
159 OPERATE_RET (*get_status) (TUYA_I2C_NUM_E port, TUYA_IIC_STATUS_T *status);
160 OPERATE_RET (*reset) (TUYA_I2C_NUM_E port);
162
169
170
174 typedef struct {
175 OPERATE_RET (*init) (TUYA_ADC_NUM_E port_num, TUYA_ADC_BASE_CFG_T *cfg);
176 OPERATE_RET (*deinit) (TUYA_ADC_NUM_E port_num);
177 OPERATE_RET (*read_single_channel) (TUYA_ADC_NUM_E port_num, UINT8_T ch_num, INT32_T *buf);
178 OPERATE_RET (*read_data) (TUYA_ADC_NUM_E port_num, INT32_T *buff, UINT16_T len);
179 UINT8_T (*width_get) (TUYA_ADC_NUM_E port_num);
180 UINT32_T (*ref_voltage_get) (TUYA_ADC_NUM_E port_num);
181 INT32_T (*temperature_get) (VOID_T);
182 INT32_T (*read_voltage) (TUYA_ADC_NUM_E port_num, INT32_T *buff, UINT16_T len);
184
191
195 typedef struct {
196 OPERATE_RET (*init) (TUYA_DAC_NUM_E port_num);
197 OPERATE_RET (*deinit) (TUYA_DAC_NUM_E port_num);
198 OPERATE_RET (*controller_config) (TUYA_DAC_NUM_E port_num, TUYA_DAC_CMD_E cmd, VOID * argu);
199 OPERATE_RET (*dac_base_cfg_get) (TUYA_DAC_NUM_E port_num, TUYA_DAC_BASE_CFG_T *cfg);
200 OPERATE_RET (*start) (TUYA_DAC_NUM_E port_num);
201 OPERATE_RET (*stop) (TUYA_DAC_NUM_E port_num);
202 OPERATE_RET (*fifo_reset) (TUYA_DAC_NUM_E port_num);
204
211
215typedef struct {
216 OPERATE_RET (*init) (TUYA_SPI_NUM_E port, CONST TUYA_SPI_BASE_CFG_T *cfg);
217 OPERATE_RET (*deinit) (TUYA_SPI_NUM_E port);
218 OPERATE_RET (*transfer) (TUYA_SPI_NUM_E port, VOID_T* send_buf, VOID_T* receive_buf, UINT32_T length);
219 OPERATE_RET (*abort_transfer) (TUYA_SPI_NUM_E port);
220 OPERATE_RET (*send) (TUYA_SPI_NUM_E port, VOID_T *data, UINT16_T size);
221 OPERATE_RET (*recv) (TUYA_SPI_NUM_E port, VOID_T *data, UINT16_T size);
222 OPERATE_RET (*get_status) (TUYA_SPI_NUM_E port, TUYA_SPI_STATUS_T *status);
223 OPERATE_RET (*irq_init) (TUYA_SPI_NUM_E port, CONST TUYA_SPI_IRQ_CB *cb);
224 OPERATE_RET (*irq_enable) (TUYA_SPI_NUM_E port);
225 OPERATE_RET (*irq_disable) (TUYA_SPI_NUM_E port);
227
234
238typedef struct {
239 OPERATE_RET (*init) (TUYA_TIMER_NUM_E timer_id, TUYA_TIMER_BASE_CFG_E *cfg);
240 OPERATE_RET (*deinit) (TUYA_TIMER_NUM_E timer_id);
241 OPERATE_RET (*start) (TUYA_TIMER_NUM_E timer_id, UINT_T us);
242 OPERATE_RET (*stop) (TUYA_TIMER_NUM_E timer_id);
243 OPERATE_RET (*get) (TUYA_TIMER_NUM_E timer_id, UINT_T *us);
245
252
253#ifdef __cplusplus
254} // extern "C"
255#endif
256
257#endif // __TKL_INIT_COMMON_H__
258
259
260
the description of tuya kernel adapter layer adc
Definition: tkl_init_common.h:174
the description of tuya kernel adapter layer dac xbf
Definition: tkl_init_common.h:195
the description of tuya kernel adapter layer flash
Definition: tkl_init_common.h:108
the description of tuya kernel adapter layer gpio
Definition: tkl_init_common.h:87
the description of tuya kernel adapter layer i2c
Definition: tkl_init_common.h:148
the description of tuya kernel adapter layer pwm
Definition: tkl_init_common.h:128
the description of tuya kernel adapter layer rtc
Definition: tkl_init_common.h:53
the description of tuya kernel adapter layer spi
Definition: tkl_init_common.h:215
the description of tuya kernel adapter layer timer
Definition: tkl_init_common.h:238
the description of tuya kernel adapter layer uart
Definition: tkl_init_common.h:32
the description of tuya kernel adapter layer watchdog
Definition: tkl_init_common.h:71
adc config
Definition: tuya_cloud_types.h:277
dac config //xbf
Definition: tuya_cloud_types.h:305
Definition: tuya_cloud_types.h:368
gpio config
Definition: tuya_cloud_types.h:484
gpio interrupt config
Definition: tuya_cloud_types.h:495
i2c cfg
Definition: tuya_cloud_types.h:548
Definition: tuya_cloud_types.h:554
pwm config
Definition: tuya_cloud_types.h:629
spi config
Definition: tuya_cloud_types.h:697
SPI Status
Definition: tuya_cloud_types.h:725
Definition: tuya_cloud_types.h:1037
uart config
Definition: tuya_cloud_types.h:972
Definition: tuya_cloud_types.h:1007
Common process - adapter the adc api
Common process - adapter the flash api
Common process - adapter the gpio api
Common process - adapter the i2c api
TKL_FLASH_DESC_T * tkl_flash_desc_get(VOID_T)
register flash description to tuya object manage
TKL_WATCHDOG_DESC_T * tkl_watchdog_desc_get(VOID_T)
register watchdog description to tuya object manage
TKL_SPI_DESC_T * tkl_spi_desc_get(VOID_T)
register spi description to tuya object manage
TKL_I2C_DESC_T * tkl_i2c_desc_get(VOID_T)
register i2c description to tuya object manage
TKL_PWM_DESC_T * tkl_pwm_desc_get(VOID_T)
register pwm description to tuya object manage
TKL_DAC_DESC_T * tkl_dac_desc_get(VOID_T)
register adc description to tuya object manage
TKL_UART_DESC_T * tkl_uart_desc_get(VOID_T)
register uart description to tuya object manage
TKL_RTC_DESC_T * tkl_rtc_desc_get(VOID_T)
register rtc description to tuya object manage
TKL_ADC_DESC_T * tkl_adc_desc_get(VOID_T)
register adc description to tuya object manage
TKL_GPIO_DESC_T * tkl_gpio_desc_get(VOID_T)
register gpio description to tuya object manage
TKL_TIMER_DESC_T * tkl_timer_desc_get(VOID_T)
register timer description to tuya object manage
Common process - adapter the pwm api
Common process - adapter the rtc api
Common process - adapter the spi api
Common process - adapter the hardware timer api
Common process - adapter the uart api
Common process - adapter the watchdog api