TuyaOS
tkl_pinmux.h
1#ifndef __TKL_PINMUX_H__
2#define __TKL_PINMUX_H__
3
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9#include "tuya_cloud_types.h"
10
11#define TUYA_IO_GET_PORT_ID(data) (((data) >> 8) & 0xFF)
12#define TUYA_IO_GET_CHANNEL_ID(data) (((data) & 0xFF)
16typedef enum {
17 TUYA_IO_PIN_0 = 0,
18 TUYA_IO_PIN_1,
19 TUYA_IO_PIN_2,
20 TUYA_IO_PIN_3,
21 TUYA_IO_PIN_4,
22 TUYA_IO_PIN_5,
23 TUYA_IO_PIN_6,
24 TUYA_IO_PIN_7,
25 TUYA_IO_PIN_8,
26 TUYA_IO_PIN_9,
27 TUYA_IO_PIN_10,
28 TUYA_IO_PIN_11,
29 TUYA_IO_PIN_12,
30 TUYA_IO_PIN_13,
31 TUYA_IO_PIN_14,
32 TUYA_IO_PIN_15,
33 TUYA_IO_PIN_16,
34 TUYA_IO_PIN_17,
35 TUYA_IO_PIN_18,
36 TUYA_IO_PIN_19,
37 TUYA_IO_PIN_20,
38 TUYA_IO_PIN_21,
39 TUYA_IO_PIN_22,
40 TUYA_IO_PIN_23,
41 TUYA_IO_PIN_24,
42 TUYA_IO_PIN_25,
43 TUYA_IO_PIN_26,
44 TUYA_IO_PIN_27,
45 TUYA_IO_PIN_28,
46 TUYA_IO_PIN_29,
47 TUYA_IO_PIN_30,
48 TUYA_IO_PIN_31,
49 TUYA_IO_PIN_32,
50 TUYA_IO_PIN_33,
51 TUYA_IO_PIN_34,
52 TUYA_IO_PIN_35,
53 TUYA_IO_PIN_36,
54 TUYA_IO_PIN_37,
55 TUYA_IO_PIN_38,
56 TUYA_IO_PIN_39,
57 TUYA_IO_PIN_40,
58 TUYA_IO_PIN_41,
59 TUYA_IO_PIN_42,
60 TUYA_IO_PIN_43,
61 TUYA_IO_PIN_44,
62 TUYA_IO_PIN_45,
63 TUYA_IO_PIN_46,
64 TUYA_IO_PIN_47,
65 TUYA_IO_PIN_48,
66 TUYA_IO_PIN_49,
67 TUYA_IO_PIN_50,
68 TUYA_IO_PIN_51,
69 TUYA_IO_PIN_52,
70 TUYA_IO_PIN_53,
71 TUYA_IO_PIN_54,
72 TUYA_IO_PIN_55,
73 TUYA_IO_PIN_56,
74 TUYA_IO_PIN_57,
75 TUYA_IO_PIN_58,
76 TUYA_IO_PIN_59,
77 TUYA_IO_PIN_60,
78 TUYA_IO_PIN_MAX,
79} TUYA_PIN_NAME_E;
80
84typedef enum {
85 TUYA_IIC0_SCL = 0x0,
86 TUYA_IIC0_SDA ,
87 TUYA_IIC1_SCL ,
88 TUYA_IIC1_SDA ,
89 TUYA_IIC2_SCL ,
90 TUYA_IIC2_SDA ,
91
92 TUYA_UART0_TX = 0x100,
93 TUYA_UART0_RX ,
94 TUYA_UART0_RTS ,
95 TUYA_UART0_CTS ,
96 TUYA_UART1_TX ,
97 TUYA_UART1_RX ,
98 TUYA_UART1_RTS ,
99 TUYA_UART1_CTS ,
100 TUYA_UART2_TX ,
101 TUYA_UART2_RX ,
102 TUYA_UART2_RTS ,
103 TUYA_UART2_CTS ,
104 TUYA_UART3_TX ,
105 TUYA_UART3_RX ,
106 TUYA_UART3_RTS ,
107 TUYA_UART3_CTS ,
108
109 TUYA_SPI0_MISO = 0x200,
110 TUYA_SPI0_MOSI ,
111 TUYA_SPI0_CLK ,
112 TUYA_SPI0_CS ,
113 TUYA_SPI1_MISO ,
114 TUYA_SPI1_MOSI ,
115 TUYA_SPI1_CLK ,
116 TUYA_SPI1_CS ,
117 TUYA_SPI2_MISO ,
118 TUYA_SPI2_MOSI ,
119 TUYA_SPI2_CLK ,
120 TUYA_SPI2_CS ,
121
122 TUYA_PWM0 = 0x300,
123 TUYA_PWM1,
124 TUYA_PWM2,
125 TUYA_PWM3,
126 TUYA_PWM4,
127 TUYA_PWM5,
128
129 TUYA_ADC0 = 0x400,
130 TUYA_ADC1,
131 TUYA_ADC2,
132 TUYA_ADC3,
133 TUYA_ADC4,
134 TUYA_ADC5,
135
136 TUYA_DAC0 = 0x500,
137 TUYA_DAC1,
138 TUYA_DAC2,
139 TUYA_DAC3,
140 TUYA_DAC4,
141 TUYA_DAC5,
142
143 TUYA_I2S0_SCK = 0x600,// bit clk 0
144 TUYA_I2S0_WS ,// lrck
145 TUYA_I2S0_SDO_0 ,
146 TUYA_I2S0_SDI_0 ,
147 TUYA_I2S1_SCK ,// bit clk 1
148 TUYA_I2S1_WS ,// lrck
149 TUYA_I2S1_SDO_0 ,
150 TUYA_I2S1_SDI_0 ,
151
152 TUYA_GPIO = 0x700,
153 TUYA_PIN_FUNC_MAX = 0xFFFF,
154} TUYA_PIN_FUNC_E;
155
159typedef enum {
160 TUYA_IO_TYPE_PWM,
161 TUYA_IO_TYPE_ADC,
162 TUYA_IO_TYPE_DAC,
163 TUYA_IO_TYPE_UART,
164 TUYA_IO_TYPE_SPI,
165 TUYA_IO_TYPE_I2C,
166 TUYA_IO_TYPE_I2S,
167 TUYA_IO_TYPE_GPIO,
168 TUYA_IO_TYPE_MAX = 0xFFFF,
169}TUYA_PIN_TYPE_E;
178OPERATE_RET tkl_io_pinmux_config(TUYA_PIN_NAME_E pin, TUYA_PIN_FUNC_E pin_func);
179
189INT32_T tkl_io_pin_to_func(UINT32_T pin, TUYA_PIN_TYPE_E pin_type);
190
191#ifdef __cplusplus
192} // extern "C"
193#endif
194
195#endif // __TKL_REGISTER_H__
196