• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2022 Beken Corporation
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include <common/bk_err.h>
22 
23 /**
24  * @brief GPIO defines
25  * @defgroup bk_api_gpio_defs macos
26  * @ingroup bk_api_gpio
27  * @{
28  */
29 
30 /**
31  * @brief default GPIO pins number
32  */
33 typedef enum {
34 	GPIO_0 = 0,
35 	GPIO_1,
36 	GPIO_2,
37 	GPIO_3,
38 	GPIO_4,
39 	GPIO_5,
40 	GPIO_6,
41 	GPIO_7,
42 	GPIO_8,
43 	GPIO_9,
44 	GPIO_10,
45 	GPIO_11,
46 	GPIO_12,
47 	GPIO_13,
48 	GPIO_14,
49 	GPIO_15,
50 	GPIO_16,
51 	GPIO_17,
52 	GPIO_18,
53 	GPIO_19,
54 	GPIO_20,
55 	GPIO_21,
56 	GPIO_22,
57 	GPIO_23,
58 	GPIO_24,
59 	GPIO_25,
60 	GPIO_26,
61 	GPIO_27,
62 	GPIO_28,
63 	GPIO_29,
64 	GPIO_30,
65 	GPIO_31,
66 	GPIO_32,
67 	GPIO_33,
68 	GPIO_34,
69 	GPIO_35,
70 	GPIO_36,
71 	GPIO_37,
72 	GPIO_38,
73 	GPIO_39,
74 	GPIO_40,
75 	GPIO_41,
76 	GPIO_42,
77 	GPIO_43,
78 	GPIO_44,
79 	GPIO_45,
80 	GPIO_46,
81 	GPIO_47,
82 	GPIO_NUM,
83 } gpio_id_t;
84 
85 
86 /**
87  * @brief GPIO input/output enable
88  */
89 typedef enum {
90 	GPIO_IO_DISABLE = 0,		/**<disable gpio output and input mode which is high impendence state */
91 	GPIO_OUTPUT_ENABLE = 1,		/**<set gpio output mode */
92 	GPIO_INPUT_ENABLE = 2,		/**<set gpio input mode */
93 	GPIO_IO_INVALID = 3,		/**<gpio invalid mode */
94 } gpio_io_mode_t;
95 
96 
97 /**
98  * @brief GPIO pull up/down set
99  */
100 typedef enum {
101 	GPIO_PULL_DISABLE = 0,		/**<disbale gpio pull mode */
102 	GPIO_PULL_DOWN_EN = 1,		/**<set gpio as pull down mode */
103 	GPIO_PULL_UP_EN = 2,		/**<set gpio as pull up mode */
104 	GPIO_PULL_INVALID = 3,		/**<gpio invalid pull mode */
105 } gpio_pull_mode_t;
106 
107 /**
108  * @brief GPIO second function disable/enable
109  */
110 typedef enum {
111 	GPIO_SECOND_FUNC_DISABLE = 0, /**< disbale gpio second function */
112 	GPIO_SECOND_FUNC_ENABLE,      /**< enbale gpio second function */
113 } gpio_func_mode_t;
114 
115 /**
116  * @brief GPIO mode config
117  */
118 typedef struct {
119 	gpio_io_mode_t io_mode;		/**< set gpio output or input mode */
120 	gpio_pull_mode_t pull_mode;	/**< set gpio pull mode */
121 	gpio_func_mode_t func_mode; /**< set gpio func mode */
122 } gpio_config_t;
123 
124 /**
125  * @brief GPIO intterrupt type
126  */
127 typedef enum {
128 	GPIO_INT_TYPE_LOW_LEVEL = 0,		/**<set gpio as low level intterrupt type */
129 	GPIO_INT_TYPE_HIGH_LEVEL,		/**<set gpio as high level intterrupt type */
130 	GPIO_INT_TYPE_RISING_EDGE,		/**<set gpio as rising edge intterrupt type */
131 	GPIO_INT_TYPE_FALLING_EDGE,		/**<set gpio as falling edge intterrupt type */
132 	GPIO_INT_TYPE_MAX,			/**< Invalid intterrupt type mode */
133 } gpio_int_type_t;
134 
135 
136 /**
137  * @brief GPIOs device number
138  */
139 typedef enum {
140 	GPIO_DEV_NONE = 0, /**< The GPIO doesn't map to any device */
141 	GPIO_DEV_PWM0= 0x01,
142 	GPIO_DEV_PWM1,
143 	GPIO_DEV_PWM2,
144 	GPIO_DEV_PWM3,
145 	GPIO_DEV_PWM4,
146 	GPIO_DEV_PWM5,
147 	GPIO_DEV_PWM6,
148 	GPIO_DEV_PWM7,
149 	GPIO_DEV_PWM8,
150 	GPIO_DEV_PWM9,
151 	GPIO_DEV_PWM10,
152 	GPIO_DEV_PWM11,
153 
154 	GPIO_DEV_ADC0 = 0x0F,
155 	GPIO_DEV_ADC1,
156 	GPIO_DEV_ADC2,
157 	GPIO_DEV_ADC3,
158 	GPIO_DEV_ADC4,
159 	GPIO_DEV_ADC5,
160 	GPIO_DEV_ADC6,
161 	GPIO_DEV_ADC7,
162 	GPIO_DEV_ADC8,
163 	GPIO_DEV_ADC9,
164 	GPIO_DEV_ADC10,
165 	GPIO_DEV_ADC11,
166 	GPIO_DEV_ADC12,
167 	GPIO_DEV_ADC13,
168 
169 	GPIO_DEV_UART1_TXD= 0x1E,
170 	GPIO_DEV_UART1_RXD,
171 	GPIO_DEV_UART2_TXD,
172 	GPIO_DEV_UART2_RXD,
173 	GPIO_DEV_UART3_TXD,
174 	GPIO_DEV_UART3_RXD,
175 
176 	GPIO_DEV_I2C0_SCL = 0x24,
177 	GPIO_DEV_I2C0_SDA,
178 	GPIO_DEV_I2C1_SCL,
179 	GPIO_DEV_I2C1_SDA,
180 	GPIO_DEV_I2C2_SCL,
181 	GPIO_DEV_I2C2_SDA,
182 
183 
184 	GPIO_DEV_SPI0_SCK = 0x2A,
185 	GPIO_DEV_SPI0_CSN,
186 	GPIO_DEV_SPI0_MOSI,
187 	GPIO_DEV_SPI0_MISO,
188 	GPIO_DEV_SPI1_SCK,
189 	GPIO_DEV_SPI1_CSN,
190 	GPIO_DEV_SPI1_MOSI,
191 	GPIO_DEV_SPI1_MISO,
192 	GPIO_DEV_SPI2_SCK,
193 	GPIO_DEV_SPI2_CSN,
194 	GPIO_DEV_SPI2_MOSI,
195 	GPIO_DEV_SPI2_MISO,
196 
197 	GPIO_DEV_I2S1_CLK = 0x37,
198 	GPIO_DEV_I2S1_SYNC,
199 	GPIO_DEV_I2S1_DIN,
200 	GPIO_DEV_I2S1_DOUT,
201 	GPIO_DEV_I2S2_CLK,
202 	GPIO_DEV_I2S2_SYNC,
203 	GPIO_DEV_I2S2_DIN,
204 	GPIO_DEV_I2S2_DOUT,
205 	GPIO_DEV_I2S3_CLK,
206 	GPIO_DEV_I2S3_SYNC,
207 	GPIO_DEV_I2S3_DIN,
208 	GPIO_DEV_I2S3_DOUT,
209 
210 	GPIO_DEV_JTAG_TCK,
211 	GPIO_DEV_JTAG_TMS,
212 	GPIO_DEV_JTAG_TDI,
213 	GPIO_DEV_JTAG_TDO,
214 
215 	GPIO_DEV_SDIO_HOST_CLK = 0x48,
216 	GPIO_DEV_SDIO_HOST_CMD,
217 	GPIO_DEV_SDIO_HOST_DATA0,
218 	GPIO_DEV_SDIO_HOST_DATA1,
219 	GPIO_DEV_SDIO_HOST_DATA2,
220 	GPIO_DEV_SDIO_HOST_DATA3,
221 
222 	GPIO_DEV_USB0_DP,
223 	GPIO_DEV_USB0_DN,
224 
225 	GPIO_DEV_USB1_DP = 0x50,
226 	GPIO_DEV_USB1_DN,
227 
228 	GPIO_DEV_UART1_CTS,
229 	GPIO_DEV_UART1_RTS,
230 
231 	GPIO_DEV_JPEG_MCLK= 0x54,
232 	GPIO_DEV_JPEG_PCLK,
233 	GPIO_DEV_JPEG_HSYNC,
234 	GPIO_DEV_JPEG_VSYNC,
235 	GPIO_DEV_JPEG_PXDATA0,
236 	GPIO_DEV_JPEG_PXDATA1,
237 	GPIO_DEV_JPEG_PXDATA2,
238 	GPIO_DEV_JPEG_PXDATA3,
239 	GPIO_DEV_JPEG_PXDATA4,
240 	GPIO_DEV_JPEG_PXDATA5,
241 	GPIO_DEV_JPEG_PXDATA6,
242 	GPIO_DEV_JPEG_PXDATA7,
243 
244 	GPIO_DEV_QSPI_RAM_CLK = 0x60,
245 	GPIO_DEV_QSPI_RAM_CSN,
246 	GPIO_DEV_QSPI_FLASH_CLK,
247 	GPIO_DEV_QSPI_FLASH_CSN,
248 	GPIO_DEV_QSPI_IO0,
249 	GPIO_DEV_QSPI_IO1,
250 	GPIO_DEV_QSPI_IO2,
251 	GPIO_DEV_QSPI_IO3,
252 
253 	GPIO_DEV_IRDA,
254 	GPIO_DEV_CLK13M,
255 	GPIO_DEV_CLK26M,
256 	GPIO_DEV_LPO_CLK,
257 	GPIO_DEV_WIFI_ACTIVE,
258 	GPIO_DEV_BT_ACTIVE,
259 	GPIO_DEV_BT_PRIORITY,
260 
261 	GPIO_DEV_TXEN,
262 	GPIO_DEV_RXEN = 0x70,
263 
264 	GPIO_DEV_PGA_INP,
265 	GPIO_DEV_PGA_INN,
266 
267 	GPIO_DEV_SPDIF1,
268 	GPIO_DEV_SPDIF2,
269 	GPIO_DEV_SPDIF3,
270 	GPIO_DEV_HDMI_CEC,
271 
272 	GPIO_DEV_I2S1_DOUT2,
273 	GPIO_DEV_I2S1_DOUT3,
274 	GPIO_DEV_I2S1_MCLK,
275 
276 	GPIO_DEV_DMIC1_CLK,
277 	GPIO_DEV_DMIC1_DAT,
278 	GPIO_DEV_DMIC2_CLK,
279 	GPIO_DEV_DMIC2_DAT,
280 
281 	GPIO_DEV_DIG_CLKOUT1,
282 	GPIO_DEV_DIG_CLKOUT2,
283 
284 	GPIO_DEV_TOUCH0 = 0x80,
285 	GPIO_DEV_TOUCH1,
286 	GPIO_DEV_TOUCH2,
287 	GPIO_DEV_TOUCH3,
288 	GPIO_DEV_TOUCH4,
289 	GPIO_DEV_TOUCH5,
290 	GPIO_DEV_TOUCH6,
291 	GPIO_DEV_TOUCH7,
292 	GPIO_DEV_TOUCH8,
293 	GPIO_DEV_TOUCH9,
294 	GPIO_DEV_TOUCH10,
295 	GPIO_DEV_TOUCH11,
296 	GPIO_DEV_TOUCH12,
297 	GPIO_DEV_TOUCH13,
298 	GPIO_DEV_TOUCH14,
299 	GPIO_DEV_TOUCH15,
300 
301 	GPIO_DEV_LCD_RGB0 = 0x90,
302 	GPIO_DEV_LCD_RGB1,
303 	GPIO_DEV_LCD_RGB2,
304 	GPIO_DEV_LCD_RGB3,
305 	GPIO_DEV_LCD_RGB4,
306 	GPIO_DEV_LCD_RGB5,
307 	GPIO_DEV_LCD_RGB6,
308 	GPIO_DEV_LCD_RGB7,
309 	GPIO_DEV_LCD_RGB8,
310 	GPIO_DEV_LCD_RGB9,
311 	GPIO_DEV_LCD_RGB10,
312 	GPIO_DEV_LCD_RGB11,
313 	GPIO_DEV_LCD_RGB12,
314 	GPIO_DEV_LCD_RGB13,
315 	GPIO_DEV_LCD_RGB14,
316 	GPIO_DEV_LCD_RGB15,
317 	GPIO_DEV_LCD_RGB16,
318 	GPIO_DEV_LCD_RGB17,
319 	GPIO_DEV_LCD_RGB18,
320 	GPIO_DEV_LCD_RGB19,
321 	GPIO_DEV_LCD_RGB20 = 0xA4,
322 
323 	GPIO_DEV_QSPI_CLK = 0xA5,
324 	GPIO_DEV_QSPI_CSN,
325 	GPIO_DEV_BT_ANT0 = 0xA7,
326 	GPIO_DEV_BT_ANT1,
327 	GPIO_DEV_BT_ANT2,
328 	GPIO_DEV_BT_ANT3,
329 	GPIO_DEV_CAN_TX = 0xAB,
330 	GPIO_DEV_CAN_RX,
331 	GPIO_DEV_CAN_STANDBY,
332 	GPIO_DEV_CLK_AUXS = 0xAE,
333 
334 	GPIO_DEV_DEBUG0 = 0xB0,
335 	GPIO_DEV_DEBUG1,
336 	GPIO_DEV_DEBUG2,
337 	GPIO_DEV_DEBUG3,
338 	GPIO_DEV_DEBUG4,
339 	GPIO_DEV_DEBUG5,
340 	GPIO_DEV_DEBUG6,
341 	GPIO_DEV_DEBUG7,
342 	GPIO_DEV_DEBUG8,
343 	GPIO_DEV_DEBUG9,
344 	GPIO_DEV_DEBUG10,
345 	GPIO_DEV_DEBUG11,
346 	GPIO_DEV_DEBUG12,
347 	GPIO_DEV_DEBUG13,
348 	GPIO_DEV_DEBUG14,
349 	GPIO_DEV_DEBUG15,
350 	GPIO_DEV_DEBUG16 = 0xC0,
351 	GPIO_DEV_DEBUG17,
352 	GPIO_DEV_DEBUG18,
353 	GPIO_DEV_DEBUG19,
354 	GPIO_DEV_DEBUG20,
355 	GPIO_DEV_DEBUG21,
356 	GPIO_DEV_DEBUG22,
357 	GPIO_DEV_DEBUG23,
358 	GPIO_DEV_DEBUG24,
359 	GPIO_DEV_DEBUG25,
360 	GPIO_DEV_DEBUG26,
361 	GPIO_DEV_DEBUG27,
362 	GPIO_DEV_DEBUG28,
363 	GPIO_DEV_DEBUG29,
364 	GPIO_DEV_DEBUG30,
365 	GPIO_DEV_DEBUG31,
366 
367 	GPIO_DEV_INVALID = 0xFF,
368 } gpio_dev_t;
369 
370 
371 /**
372  * @}
373  */
374 
375 #ifdef __cplusplus
376 }
377 #endif
378