• 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 #include <stdio.h>
21 #include <driver/hal/hal_gpio_types.h>
22 #include <soc/soc.h>
23 
24 #define BIT_64(i)	((1L) << (i))
25 #define GPIO_DEV_MAP  \
26 {\
27 	{GPIO_0, {GPIO_DEV_UART2_TXD, GPIO_DEV_I2C0_SCL, GPIO_DEV_JTAG_TCK, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_INVALID}},\
28 	{GPIO_1, {GPIO_DEV_UART2_RXD, GPIO_DEV_I2C0_SDA, GPIO_DEV_JTAG_TMS, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_INVALID}},\
29 \
30 	{GPIO_8, {GPIO_DEV_BT_ACTIVE, GPIO_DEV_PWM0, GPIO_DEV_I2S1_DIN, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_DEBUG6}},\
31 	{GPIO_9, {GPIO_DEV_BT_PRIORITY, GPIO_DEV_PWM1, GPIO_DEV_I2S1_DOUT, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_DEBUG7}},\
32 	{GPIO_10,{GPIO_DEV_UART1_RXD, GPIO_DEV_SDIO_HOST_DATA2, GPIO_DEV_CLK_AUXS, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_INVALID}},\
33 	{GPIO_11, {GPIO_DEV_UART1_TXD, GPIO_DEV_SDIO_HOST_DATA3, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_INVALID}},\
34 \
35 	{GPIO_24, {GPIO_DEV_LPO_CLK, GPIO_DEV_PWM2, GPIO_DEV_ADC2,  GPIO_DEV_QSPI_IO0, GPIO_DEV_LCD_RGB10, GPIO_DEV_DEBUG14}},\
36 	{GPIO_25, {GPIO_DEV_IRDA, GPIO_DEV_PWM3, GPIO_DEV_ADC1, GPIO_DEV_QSPI_IO1, GPIO_DEV_LCD_RGB9, GPIO_DEV_DEBUG15}},\
37 	{GPIO_26, {GPIO_DEV_TXEN, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_QSPI_IO2, GPIO_DEV_LCD_RGB8, GPIO_DEV_DEBUG16}},\
38 	{GPIO_27, {GPIO_DEV_JPEG_MCLK, GPIO_DEV_CLK_AUXS, GPIO_DEV_INVALID, GPIO_DEV_QSPI_IO3, GPIO_DEV_INVALID, GPIO_DEV_DEBUG17}},\
39 	{GPIO_28, {GPIO_DEV_RXEN, GPIO_DEV_I2S1_MCLK,  GPIO_DEV_ADC4, GPIO_DEV_TOUCH2, GPIO_DEV_INVALID, GPIO_DEV_DEBUG18}},\
40 	{GPIO_29, {GPIO_DEV_JPEG_PCLK, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_TOUCH3, GPIO_DEV_INVALID, GPIO_DEV_DEBUG19}},\
41 	{GPIO_30, {GPIO_DEV_JPEG_HSYNC, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_TOUCH4, GPIO_DEV_INVALID, GPIO_DEV_DEBUG20}},\
42 	{GPIO_31, {GPIO_DEV_JPEG_VSYNC, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_TOUCH5, GPIO_DEV_INVALID, GPIO_DEV_DEBUG21}},\
43 	{GPIO_32, {GPIO_DEV_JPEG_PXDATA0, GPIO_DEV_PWM4, GPIO_DEV_INVALID, GPIO_DEV_TOUCH6, GPIO_DEV_INVALID, GPIO_DEV_DEBUG22}},\
44 	{GPIO_33, {GPIO_DEV_JPEG_PXDATA1, GPIO_DEV_PWM5, GPIO_DEV_INVALID, GPIO_DEV_TOUCH7, GPIO_DEV_INVALID, GPIO_DEV_DEBUG23}},\
45 	{GPIO_34, {GPIO_DEV_JPEG_PXDATA2, GPIO_DEV_PWM6, GPIO_DEV_INVALID, GPIO_DEV_TOUCH8, GPIO_DEV_INVALID, GPIO_DEV_DEBUG24}},\
46 	{GPIO_35, {GPIO_DEV_JPEG_PXDATA3, GPIO_DEV_PWM7, GPIO_DEV_INVALID, GPIO_DEV_TOUCH9, GPIO_DEV_INVALID, GPIO_DEV_DEBUG25}},\
47 	{GPIO_36, {GPIO_DEV_JPEG_PXDATA4, GPIO_DEV_PWM8, GPIO_DEV_INVALID, GPIO_DEV_TOUCH10, GPIO_DEV_INVALID, GPIO_DEV_DEBUG26}},\
48 	{GPIO_37, {GPIO_DEV_JPEG_PXDATA5, GPIO_DEV_PWM9, GPIO_DEV_INVALID, GPIO_DEV_TOUCH11, GPIO_DEV_INVALID, GPIO_DEV_DEBUG27}},\
49 	{GPIO_38, {GPIO_DEV_JPEG_PXDATA6, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_TOUCH12, GPIO_DEV_INVALID, GPIO_DEV_DEBUG28}},\
50 	{GPIO_39, {GPIO_DEV_JPEG_PXDATA7, GPIO_DEV_INVALID, GPIO_DEV_INVALID, GPIO_DEV_TOUCH13, GPIO_DEV_INVALID, GPIO_DEV_DEBUG29}},\
51 \
52 	{GPIO_44, {GPIO_DEV_CAN_TX, GPIO_DEV_SPI0_SCK, GPIO_DEV_ADC10, GPIO_DEV_INVALID, GPIO_DEV_LCD_RGB3, GPIO_DEV_INVALID}},\
53 	{GPIO_45, {GPIO_DEV_CAN_RX, GPIO_DEV_SPI0_CSN, GPIO_DEV_ADC11, GPIO_DEV_INVALID, GPIO_DEV_LCD_RGB2, GPIO_DEV_INVALID}},\
54 	{GPIO_46, {GPIO_DEV_CAN_STANDBY, GPIO_DEV_SPI0_MOSI, GPIO_DEV_INVALID, GPIO_DEV_TOUCH14, GPIO_DEV_LCD_RGB1, GPIO_DEV_INVALID}},\
55 	{GPIO_47, {GPIO_DEV_INVALID, GPIO_DEV_SPI0_MISO, GPIO_DEV_INVALID, GPIO_DEV_TOUCH15, GPIO_DEV_LCD_RGB0, GPIO_DEV_INVALID}},\
56 }
57 
58 #define GPIO_MAP_TABLE(DEV_NUM, MODE_NUM, table) \
59 	struct {\
60 			uint64_t gpio_bits;\
61 			gpio_dev_t devs[DEV_NUM];\
62 		} table[MODE_NUM]
63 
64 #define GPIO_SPI0_MAP_TABLE \
65 		{\
66 			{BIT64(44)|BIT64(45)|BIT64(46)|BIT64(47), {GPIO_DEV_SPI0_CSN, GPIO_DEV_SPI0_SCK, GPIO_DEV_SPI0_MOSI, GPIO_DEV_SPI0_MISO}},\
67 		}
68 #define GPIO_SPI0_USED_GPIO_NUM 4
69 
70 #define GPIO_I2C1_MAP_TABLE \
71 		{\
72 			{BIT64(0)|BIT64(1), {GPIO_DEV_I2C1_SCL, GPIO_DEV_I2C1_SDA}},\
73 		}
74 #define GPIO_I2C1_USED_GPIO_NUM 2
75 
76 #if CONFIG_CHANGE_JTAG_GPIO
77 #define GPIO_JTAG_MAP_TABLE \
78 		{\
79 			{BIT64(20)|BIT64(21), {GPIO_DEV_JTAG_TCK, GPIO_DEV_JTAG_TMS}},\
80 			{BIT64(0)|BIT64(1), {GPIO_DEV_JTAG_TCK, GPIO_DEV_JTAG_TMS}},\
81 		}
82 #define GPIO_JTAG_USED_GPIO_NUM 2
83 #endif
84 
85 
86 #if CONFIG_GPIO_WAKEUP_SUPPORT
87 #define GPIO_STATIC_WAKEUP_SOURCE_MAP  \
88 {\
89 	/* {GPIO_1, GPIO_INT_TYPE_LOW_LEVEL}, */ \
90 	{GPIO_10, GPIO_INT_TYPE_LOW_LEVEL},\
91 	/* {GPIO_40, GPIO_INT_LEVEL_LOW}, */ \
92 }
93 #endif
94 
95 #define GPIO_CTRL_LDO_OUTPUT_HIGH_MAP  \
96 {\
97 	/* GPIO_2, */\
98 	/* GPIO_28, */\
99 }
100 
101 #define GPIO_CTRL_LDO_OUTPUT_LOW_MAP  \
102 {\
103 	/* GPIO_4, */\
104 	/* GPIO_26, */\
105 }
106 /*
107 * Camera DVP GPIO MAP
108 */
109 #define CAMERA_DVP_MCLK_PIN 		(GPIO_27)
110 #define CAMERA_DVP_PCLK_PIN 		(GPIO_29)
111 #define CAMERA_DVP_HSYNC_PIN 		(GPIO_30)
112 #define CAMERA_DVP_VSYNC_PIN 		(GPIO_31)
113 #define CAMERA_DVP_PXDATA0_PIN 		(GPIO_32)
114 #define CAMERA_DVP_PXDATA1_PIN 		(GPIO_33)
115 #define CAMERA_DVP_PXDATA2_PIN 		(GPIO_34)
116 #define CAMERA_DVP_PXDATA3_PIN 		(GPIO_35)
117 #define CAMERA_DVP_PXDATA4_PIN 		(GPIO_36)
118 #define CAMERA_DVP_PXDATA5_PIN 		(GPIO_37)
119 #define CAMERA_DVP_PXDATA6_PIN 		(GPIO_38)
120 #define CAMERA_DVP_PXDATA7_PIN 		(GPIO_39)
121 
122 #define CAMERA_DVP_MCLK_FUNC 		(GPIO_DEV_JPEG_MCLK)
123 #define CAMERA_DVP_AUXS_FUNC 		(GPIO_DEV_CLK_AUXS)
124 #define CAMERA_DVP_PCLK_FUNC 		(GPIO_DEV_JPEG_PCLK)
125 #define CAMERA_DVP_HSYNC_FUNC 		(GPIO_DEV_JPEG_HSYNC)
126 #define CAMERA_DVP_VSYNC_FUNC 		(GPIO_DEV_JPEG_VSYNC)
127 #define CAMERA_DVP_PXDATA0_FUNC 	(GPIO_DEV_JPEG_PXDATA0)
128 #define CAMERA_DVP_PXDATA1_FUNC 	(GPIO_DEV_JPEG_PXDATA1)
129 #define CAMERA_DVP_PXDATA2_FUNC 	(GPIO_DEV_JPEG_PXDATA2)
130 #define CAMERA_DVP_PXDATA3_FUNC 	(GPIO_DEV_JPEG_PXDATA3)
131 #define CAMERA_DVP_PXDATA4_FUNC 	(GPIO_DEV_JPEG_PXDATA4)
132 #define CAMERA_DVP_PXDATA5_FUNC 	(GPIO_DEV_JPEG_PXDATA5)
133 #define CAMERA_DVP_PXDATA6_FUNC 	(GPIO_DEV_JPEG_PXDATA6)
134 #define CAMERA_DVP_PXDATA7_FUNC 	(GPIO_DEV_JPEG_PXDATA7)
135 
136 #define CAMERA_DVP_I2C_ID 			(CONFIG_CAMERA_I2C_ID)
137 #define CAMERA_DVP_I2C_BAUD_RATE	(I2C_BAUD_RATE_100KHZ)
138 #define CAMERA_DVP_I2C_MODE			(I2C_ADDR_MODE_7BIT)
139 
140 
141 /*
142 * LCD RGB GPIO MAP
143 */
144 #define LCD_RGB_R0_PIN 				(GPIO_23)
145 #define LCD_RGB_R1_PIN 				(GPIO_22)
146 #define LCD_RGB_R2_PIN 				(GPIO_21)
147 #define LCD_RGB_R3_PIN 				(GPIO_20)
148 #define LCD_RGB_R4_PIN 				(GPIO_19)
149 #define LCD_RGB_G0_PIN 				(GPIO_42)
150 #define LCD_RGB_G1_PIN 				(GPIO_41)
151 #define LCD_RGB_G2_PIN 				(GPIO_40)
152 #define LCD_RGB_G3_PIN 				(GPIO_26)
153 #define LCD_RGB_G4_PIN 				(GPIO_25)
154 #define LCD_RGB_G5_PIN 				(GPIO_24)
155 #define LCD_RGB_B0_PIN 				(GPIO_47)
156 #define LCD_RGB_B1_PIN 				(GPIO_46)
157 #define LCD_RGB_B2_PIN 				(GPIO_45)
158 #define LCD_RGB_B3_PIN 				(GPIO_44)
159 #define LCD_RGB_B4_PIN 				(GPIO_43)
160 #define LCD_RGB_CLK_PIN 			(GPIO_14)
161 #define LCD_RGB_DISP_PIN 			(GPIO_15)
162 #define LCD_RGB_HSYNC_PIN 			(GPIO_17)
163 #define LCD_RGB_VSYNC_PIN 			(GPIO_18)
164 #define LCD_RGB_DE_PIN 				(GPIO_16)
165 
166 #define LCD_RGB_R0_FUNC 			(GPIO_DEV_LCD_RGB11)
167 #define LCD_RGB_R1_FUNC 			(GPIO_DEV_LCD_RGB12)
168 #define LCD_RGB_R2_FUNC 			(GPIO_DEV_LCD_RGB13)
169 #define LCD_RGB_R3_FUNC 			(GPIO_DEV_LCD_RGB14)
170 #define LCD_RGB_R4_FUNC 			(GPIO_DEV_LCD_RGB15)
171 #define LCD_RGB_G0_FUNC 			(GPIO_DEV_LCD_RGB5)
172 #define LCD_RGB_G1_FUNC 			(GPIO_DEV_LCD_RGB6)
173 #define LCD_RGB_G2_FUNC 			(GPIO_DEV_LCD_RGB7)
174 #define LCD_RGB_G3_FUNC 			(GPIO_DEV_LCD_RGB8)
175 #define LCD_RGB_G4_FUNC 			(GPIO_DEV_LCD_RGB9)
176 #define LCD_RGB_G5_FUNC 			(GPIO_DEV_LCD_RGB10)
177 #define LCD_RGB_B0_FUNC 			(GPIO_DEV_LCD_RGB0)
178 #define LCD_RGB_B1_FUNC 			(GPIO_DEV_LCD_RGB1)
179 #define LCD_RGB_B2_FUNC 			(GPIO_DEV_LCD_RGB2)
180 #define LCD_RGB_B3_FUNC 			(GPIO_DEV_LCD_RGB3)
181 #define LCD_RGB_B4_FUNC 			(GPIO_DEV_LCD_RGB4)
182 #define LCD_RGB_CLK_FUNC 			(GPIO_DEV_LCD_RGB20)
183 #define LCD_RGB_DISP_FUNC 			(GPIO_DEV_LCD_RGB19)
184 #define LCD_RGB_HSYNC_FUNC 			(GPIO_DEV_LCD_RGB17)
185 #define LCD_RGB_VSYNC_FUNC 			(GPIO_DEV_LCD_RGB16)
186 #define LCD_RGB_DE_FUNC 			(GPIO_DEV_LCD_RGB18)
187 
188 #define LCD_PWM_BACKLIGHT			(PWM_ID_1)
189 
190 /*
191 * LCD MCU GPIO MAP
192 */
193 #define LCD_MCU_D0_PIN 				(GPIO_47)
194 #define LCD_MCU_D1_PIN 				(GPIO_46)
195 #define LCD_MCU_D2_PIN 				(GPIO_45)
196 #define LCD_MCU_D3_PIN 				(GPIO_44)
197 #define LCD_MCU_D4_PIN 				(GPIO_43)
198 #define LCD_MCU_D5_PIN 				(GPIO_42)
199 #define LCD_MCU_D6_PIN 				(GPIO_41)
200 #define LCD_MCU_D7_PIN 				(GPIO_40)
201 #define LCD_MCU_RDX_PIN 		 	(GPIO_23)
202 #define LCD_MCU_WRX_PIN 		 	(GPIO_22)
203 #define LCD_MCU_RSX_PIN 		 	(GPIO_21)
204 #define LCD_MCU_RESET_PIN 		 	(GPIO_20)
205 #define LCD_MCU_CSX_PIN 		 	(GPIO_19)
206 
207 #define LCD_MCU_D0_FUNC 			(GPIO_DEV_LCD_RGB0)
208 #define LCD_MCU_D1_FUNC 			(GPIO_DEV_LCD_RGB1)
209 #define LCD_MCU_D2_FUNC 			(GPIO_DEV_LCD_RGB2)
210 #define LCD_MCU_D3_FUNC 			(GPIO_DEV_LCD_RGB3)
211 #define LCD_MCU_D4_FUNC 			(GPIO_DEV_LCD_RGB4)
212 #define LCD_MCU_D5_FUNC 			(GPIO_DEV_LCD_RGB5)
213 #define LCD_MCU_D6_FUNC 			(GPIO_DEV_LCD_RGB6)
214 #define LCD_MCU_D7_FUNC 			(GPIO_DEV_LCD_RGB7)
215 #define LCD_MCU_RDX_FUNC 		 	(GPIO_DEV_LCD_RGB11)
216 #define LCD_MCU_WRX_FUNC 		 	(GPIO_DEV_LCD_RGB12)
217 #define LCD_MCU_RSX_FUNC 		 	(GPIO_DEV_LCD_RGB13)
218 #define LCD_MCU_RESET_FUNC 		 	(GPIO_DEV_LCD_RGB14)
219 #define LCD_MCU_CSX_FUNC 		 	(GPIO_DEV_LCD_RGB15)
220 
221 #ifdef __cplusplus
222 }
223 #endif
224