1 /*
2  * SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #include "soc.h"
9 
10 /* The following are the bit fields for PERIPHS_IO_MUX_x_U registers */
11 /* Output enable in sleep mode */
12 #define SLP_OE (BIT(0))
13 #define SLP_OE_M (BIT(0))
14 #define SLP_OE_V 1
15 #define SLP_OE_S 0
16 /* Pin used for wakeup from sleep */
17 #define SLP_SEL (BIT(1))
18 #define SLP_SEL_M (BIT(1))
19 #define SLP_SEL_V 1
20 #define SLP_SEL_S 1
21 /* Pulldown enable in sleep mode */
22 #define SLP_PD (BIT(2))
23 #define SLP_PD_M (BIT(2))
24 #define SLP_PD_V 1
25 #define SLP_PD_S 2
26 /* Pullup enable in sleep mode */
27 #define SLP_PU (BIT(3))
28 #define SLP_PU_M (BIT(3))
29 #define SLP_PU_V 1
30 #define SLP_PU_S 3
31 /* Input enable in sleep mode */
32 #define SLP_IE (BIT(4))
33 #define SLP_IE_M (BIT(4))
34 #define SLP_IE_V 1
35 #define SLP_IE_S 4
36 /* Drive strength in sleep mode */
37 #define SLP_DRV 0x3
38 #define SLP_DRV_M (SLP_DRV_V << SLP_DRV_S)
39 #define SLP_DRV_V 0x3
40 #define SLP_DRV_S 5
41 /* Pulldown enable */
42 #define FUN_PD (BIT(7))
43 #define FUN_PD_M (BIT(7))
44 #define FUN_PD_V 1
45 #define FUN_PD_S 7
46 /* Pullup enable */
47 #define FUN_PU (BIT(8))
48 #define FUN_PU_M (BIT(8))
49 #define FUN_PU_V 1
50 #define FUN_PU_S 8
51 /* Input enable */
52 #define FUN_IE (BIT(9))
53 #define FUN_IE_M (FUN_IE_V << FUN_IE_S)
54 #define FUN_IE_V 1
55 #define FUN_IE_S 9
56 /* Drive strength */
57 #define FUN_DRV 0x3
58 #define FUN_DRV_M (FUN_DRV_V << FUN_DRV_S)
59 #define FUN_DRV_V 0x3
60 #define FUN_DRV_S 10
61 /* Function select (possible values are defined for each pin as FUNC_pinname_function below) */
62 #define MCU_SEL 0x7
63 #define MCU_SEL_M (MCU_SEL_V << MCU_SEL_S)
64 #define MCU_SEL_V 0x7
65 #define MCU_SEL_S 12
66 /* Pin filter (Pulse width shorter than 2 clock cycles will be filtered out) */
67 #define FILTER_EN (BIT(15))
68 #define FILTER_EN_M (FILTER_EN_V << FILTER_EN_S)
69 #define FILTER_EN_V 1
70 #define FILTER_EN_S 15
71 
72 #define PIN_SLP_INPUT_ENABLE(PIN_NAME)      SET_PERI_REG_MASK(PIN_NAME,SLP_IE)
73 #define PIN_SLP_INPUT_DISABLE(PIN_NAME)     CLEAR_PERI_REG_MASK(PIN_NAME,SLP_IE)
74 #define PIN_SLP_OUTPUT_ENABLE(PIN_NAME)     SET_PERI_REG_MASK(PIN_NAME,SLP_OE)
75 #define PIN_SLP_OUTPUT_DISABLE(PIN_NAME)    CLEAR_PERI_REG_MASK(PIN_NAME,SLP_OE)
76 #define PIN_SLP_PULLUP_ENABLE(PIN_NAME)     SET_PERI_REG_MASK(PIN_NAME,SLP_PU)
77 #define PIN_SLP_PULLUP_DISABLE(PIN_NAME)    CLEAR_PERI_REG_MASK(PIN_NAME,SLP_PU)
78 #define PIN_SLP_PULLDOWN_ENABLE(PIN_NAME)   SET_PERI_REG_MASK(PIN_NAME,SLP_PD)
79 #define PIN_SLP_PULLDOWN_DISABLE(PIN_NAME)  CLEAR_PERI_REG_MASK(PIN_NAME,SLP_PD)
80 #define PIN_SLP_SEL_ENABLE(PIN_NAME)        SET_PERI_REG_MASK(PIN_NAME,SLP_SEL)
81 #define PIN_SLP_SEL_DISABLE(PIN_NAME)       CLEAR_PERI_REG_MASK(PIN_NAME,SLP_SEL)
82 
83 #define PIN_INPUT_ENABLE(PIN_NAME)          SET_PERI_REG_MASK(PIN_NAME,FUN_IE)
84 #define PIN_INPUT_DISABLE(PIN_NAME)         CLEAR_PERI_REG_MASK(PIN_NAME,FUN_IE)
85 #define PIN_SET_DRV(PIN_NAME, drv)          REG_SET_FIELD(PIN_NAME, FUN_DRV, (drv));
86 #define PIN_PULLUP_DIS(PIN_NAME)            REG_CLR_BIT(PIN_NAME, FUN_PU)
87 #define PIN_PULLUP_EN(PIN_NAME)             REG_SET_BIT(PIN_NAME, FUN_PU)
88 #define PIN_PULLDWN_DIS(PIN_NAME)           REG_CLR_BIT(PIN_NAME, FUN_PD)
89 #define PIN_PULLDWN_EN(PIN_NAME)            REG_SET_BIT(PIN_NAME, FUN_PD)
90 #define PIN_FUNC_SELECT(PIN_NAME, FUNC)     REG_SET_FIELD(PIN_NAME, MCU_SEL, FUNC)
91 #define PIN_FILTER_EN(PIN_NAME)             REG_SET_BIT(PIN_NAME, FILTER_EN)
92 #define PIN_FILTER_DIS(PIN_NAME)            REG_CLR_BIT(PIN_NAME, FILTER_EN)
93 
94 #define IO_MUX_GPIO0_REG        PERIPHS_IO_MUX_GPIO0_U
95 #define IO_MUX_GPIO1_REG        PERIPHS_IO_MUX_GPIO1_U
96 #define IO_MUX_GPIO2_REG        PERIPHS_IO_MUX_GPIO2_U
97 #define IO_MUX_GPIO3_REG        PERIPHS_IO_MUX_GPIO3_U
98 #define IO_MUX_GPIO4_REG        PERIPHS_IO_MUX_GPIO4_U
99 #define IO_MUX_GPIO5_REG        PERIPHS_IO_MUX_GPIO5_U
100 #define IO_MUX_GPIO6_REG        PERIPHS_IO_MUX_GPIO6_U
101 #define IO_MUX_GPIO7_REG        PERIPHS_IO_MUX_GPIO7_U
102 #define IO_MUX_GPIO8_REG        PERIPHS_IO_MUX_GPIO8_U
103 #define IO_MUX_GPIO9_REG        PERIPHS_IO_MUX_GPIO9_U
104 #define IO_MUX_GPIO10_REG       PERIPHS_IO_MUX_GPIO10_U
105 #define IO_MUX_GPIO11_REG       PERIPHS_IO_MUX_GPIO11_U
106 #define IO_MUX_GPIO12_REG       PERIPHS_IO_MUX_GPIO12_U
107 #define IO_MUX_GPIO13_REG       PERIPHS_IO_MUX_GPIO13_U
108 #define IO_MUX_GPIO14_REG       PERIPHS_IO_MUX_GPIO14_U
109 #define IO_MUX_GPIO15_REG       PERIPHS_IO_MUX_XTAL_32K_P_U
110 #define IO_MUX_GPIO16_REG       PERIPHS_IO_MUX_XTAL_32K_N_U
111 #define IO_MUX_GPIO17_REG       PERIPHS_IO_MUX_DAC_1_U
112 #define IO_MUX_GPIO18_REG       PERIPHS_IO_MUX_DAC_2_U
113 #define IO_MUX_GPIO19_REG       PERIPHS_IO_MUX_GPIO19_U
114 #define IO_MUX_GPIO20_REG       PERIPHS_IO_MUX_GPIO20_U
115 #define IO_MUX_GPIO21_REG       PERIPHS_IO_MUX_GPIO21_U
116 #define IO_MUX_GPIO26_REG       PERIPHS_IO_MUX_SPICS1_U
117 #define IO_MUX_GPIO27_REG       PERIPHS_IO_MUX_SPIHD_U
118 #define IO_MUX_GPIO28_REG       PERIPHS_IO_MUX_SPIWP_U
119 #define IO_MUX_GPIO29_REG       PERIPHS_IO_MUX_SPICS0_U
120 #define IO_MUX_GPIO30_REG       PERIPHS_IO_MUX_SPICLK_U
121 #define IO_MUX_GPIO31_REG       PERIPHS_IO_MUX_SPIQ_U
122 #define IO_MUX_GPIO32_REG       PERIPHS_IO_MUX_SPID_U
123 #define IO_MUX_GPIO33_REG       PERIPHS_IO_MUX_GPIO33_U
124 #define IO_MUX_GPIO34_REG       PERIPHS_IO_MUX_GPIO34_U
125 #define IO_MUX_GPIO35_REG       PERIPHS_IO_MUX_GPIO35_U
126 #define IO_MUX_GPIO36_REG       PERIPHS_IO_MUX_GPIO36_U
127 #define IO_MUX_GPIO37_REG       PERIPHS_IO_MUX_GPIO37_U
128 #define IO_MUX_GPIO38_REG       PERIPHS_IO_MUX_GPIO38_U
129 #define IO_MUX_GPIO39_REG       PERIPHS_IO_MUX_MTCK_U
130 #define IO_MUX_GPIO40_REG       PERIPHS_IO_MUX_MTDO_U
131 #define IO_MUX_GPIO41_REG       PERIPHS_IO_MUX_MTDI_U
132 #define IO_MUX_GPIO42_REG       PERIPHS_IO_MUX_MTMS_U
133 #define IO_MUX_GPIO43_REG       PERIPHS_IO_MUX_U0TXD_U
134 #define IO_MUX_GPIO44_REG       PERIPHS_IO_MUX_U0RXD_U
135 #define IO_MUX_GPIO45_REG       PERIPHS_IO_MUX_GPIO45_U
136 #define IO_MUX_GPIO46_REG       PERIPHS_IO_MUX_GPIO46_U
137 #define IO_MUX_GPIO47_REG       PERIPHS_IO_MUX_SPICLK_P_U
138 #define IO_MUX_GPIO48_REG       PERIPHS_IO_MUX_SPICLK_N_U
139 
140 #define PIN_FUNC_GPIO                               1
141 
142 #define GPIO_PAD_PULLDOWN(num) do{PIN_PULLDWN_DIS(IOMUX_REG_GPIO##num);PIN_PULLUP_EN(IOMUX_REG_GPIO##num);}while(0)
143 #define GPIO_PAD_PULLUP(num) do{PIN_PULLUP_DIS(IOMUX_REG_GPIO##num);PIN_PULLDWN_EN(IOMUX_REG_GPIO##num);}while(0)
144 #define GPIO_PAD_SET_DRV(num, drv) PIN_SET_DRV(IOMUX_REG_GPIO##num, drv)
145 
146 #define SPI_CS1_GPIO_NUM 26
147 #define SPI_HD_GPIO_NUM  27
148 #define SPI_WP_GPIO_NUM  28
149 #define SPI_CS0_GPIO_NUM 29
150 #define SPI_CLK_GPIO_NUM 30
151 #define SPI_Q_GPIO_NUM   31
152 #define SPI_D_GPIO_NUM   32
153 #define SPI_D4_GPIO_NUM  33
154 #define SPI_D5_GPIO_NUM  34
155 #define SPI_D6_GPIO_NUM  35
156 #define SPI_D7_GPIO_NUM  36
157 #define SPI_DQS_GPIO_NUM 37
158 #define SD_CLK_GPIO_NUM 12
159 #define SD_CMD_GPIO_NUM 11
160 #define SD_DATA0_GPIO_NUM 13
161 #define SD_DATA1_GPIO_NUM 14
162 #define SD_DATA2_GPIO_NUM 9
163 #define SD_DATA3_GPIO_NUM 10
164 #define USB_DM_GPIO_NUM   19
165 #define USB_DP_GPIO_NUM   20
166 #define XTAL32K_P_GPIO_NUM 15
167 #define XTAL32K_N_GPIO_NUM 16
168 
169 #define MAX_RTC_GPIO_NUM 21
170 #define MAX_PAD_GPIO_NUM 48
171 #define MAX_GPIO_NUM    53
172 
173 #define REG_IO_MUX_BASE DR_REG_IO_MUX_BASE
174 #define PIN_CTRL                          (REG_IO_MUX_BASE +0x00)
175 #define PAD_POWER_SEL                               BIT(15)
176 #define PAD_POWER_SEL_V                             0x1
177 #define PAD_POWER_SEL_M                             BIT(15)
178 #define PAD_POWER_SEL_S                             15
179 
180 
181 #define PAD_POWER_SWITCH_DELAY                      0x7
182 #define PAD_POWER_SWITCH_DELAY_V                    0x7
183 #define PAD_POWER_SWITCH_DELAY_M                    (PAD_POWER_SWITCH_DELAY_V << PAD_POWER_SWITCH_DELAY_S)
184 #define PAD_POWER_SWITCH_DELAY_S                    12
185 
186 
187 #define CLK_OUT3                                    0xf
188 #define CLK_OUT3_V                                  CLK_OUT3
189 #define CLK_OUT3_S                                  8
190 #define CLK_OUT3_M                                  (CLK_OUT3_V << CLK_OUT3_S)
191 #define CLK_OUT2                                    0xf
192 #define CLK_OUT2_V                                  CLK_OUT2
193 #define CLK_OUT2_S                                  4
194 #define CLK_OUT2_M                                  (CLK_OUT2_V << CLK_OUT2_S)
195 #define CLK_OUT1                                    0xf
196 #define CLK_OUT1_V                                  CLK_OUT1
197 #define CLK_OUT1_S                                  0
198 #define CLK_OUT1_M                                  (CLK_OUT1_V << CLK_OUT1_S)
199 
200 #define PERIPHS_IO_MUX_GPIO0_U            (REG_IO_MUX_BASE +0x04)
201 #define FUNC_GPIO0_GPIO0                            1
202 #define FUNC_GPIO0_GPIO0_0                          0
203 
204 #define PERIPHS_IO_MUX_GPIO1_U            (REG_IO_MUX_BASE +0x08)
205 #define FUNC_GPIO1_GPIO1                            1
206 #define FUNC_GPIO1_GPIO1_0                          0
207 
208 #define PERIPHS_IO_MUX_GPIO2_U            (REG_IO_MUX_BASE +0x0c)
209 #define FUNC_GPIO2_GPIO2                            1
210 #define FUNC_GPIO2_GPIO2_0                          0
211 
212 #define PERIPHS_IO_MUX_GPIO3_U            (REG_IO_MUX_BASE +0x10)
213 #define FUNC_GPIO3_GPIO3                            1
214 #define FUNC_GPIO3_GPIO3_0                          0
215 
216 #define PERIPHS_IO_MUX_GPIO4_U            (REG_IO_MUX_BASE +0x14)
217 #define FUNC_GPIO4_GPIO4                            1
218 #define FUNC_GPIO4_GPIO4_0                          0
219 
220 #define PERIPHS_IO_MUX_GPIO5_U            (REG_IO_MUX_BASE +0x18)
221 #define FUNC_GPIO5_GPIO5                            1
222 #define FUNC_GPIO5_GPIO5_0                          0
223 
224 #define PERIPHS_IO_MUX_GPIO6_U            (REG_IO_MUX_BASE +0x1c)
225 #define FUNC_GPIO6_GPIO6                            1
226 #define FUNC_GPIO6_GPIO6_0                          0
227 
228 #define PERIPHS_IO_MUX_GPIO7_U            (REG_IO_MUX_BASE +0x20)
229 #define FUNC_GPIO7_GPIO7                            1
230 #define FUNC_GPIO7_GPIO7_0                          0
231 
232 #define PERIPHS_IO_MUX_GPIO8_U            (REG_IO_MUX_BASE +0x24)
233 #define FUNC_GPIO8_SUBSPICS1                        3
234 #define FUNC_GPIO8_GPIO8                            1
235 #define FUNC_GPIO8_GPIO8_0                          0
236 
237 #define PERIPHS_IO_MUX_GPIO9_U            (REG_IO_MUX_BASE +0x28)
238 #define FUNC_GPIO9_FSPIHD                           4
239 #define FUNC_GPIO9_SUBSPIHD                         3
240 #define FUNC_GPIO9_GPIO9                            1
241 #define FUNC_GPIO9_GPIO9_0                          0
242 
243 #define PERIPHS_IO_MUX_GPIO10_U           (REG_IO_MUX_BASE +0x2c)
244 #define FUNC_GPIO10_FSPICS0                         4
245 #define FUNC_GPIO10_SUBSPICS0                       3
246 #define FUNC_GPIO10_FSPIIO4                         2
247 #define FUNC_GPIO10_GPIO10                          1
248 #define FUNC_GPIO10_GPIO10_0                        0
249 
250 #define PERIPHS_IO_MUX_GPIO11_U           (REG_IO_MUX_BASE +0x30)
251 #define FUNC_GPIO11_FSPID                           4
252 #define FUNC_GPIO11_SUBSPID                         3
253 #define FUNC_GPIO11_FSPIIO5                         2
254 #define FUNC_GPIO11_GPIO11                          1
255 #define FUNC_GPIO11_GPIO11_0                        0
256 
257 #define PERIPHS_IO_MUX_GPIO12_U           (REG_IO_MUX_BASE +0x34)
258 #define FUNC_GPIO12_FSPICLK                         4
259 #define FUNC_GPIO12_SUBSPICLK                       3
260 #define FUNC_GPIO12_FSPIIO6                         2
261 #define FUNC_GPIO12_GPIO12                          1
262 #define FUNC_GPIO12_GPIO12_0                        0
263 
264 #define PERIPHS_IO_MUX_GPIO13_U           (REG_IO_MUX_BASE +0x38)
265 #define FUNC_GPIO13_FSPIQ                           4
266 #define FUNC_GPIO13_SUBSPIQ                         3
267 #define FUNC_GPIO13_FSPIIO7                         2
268 #define FUNC_GPIO13_GPIO13                          1
269 #define FUNC_GPIO13_GPIO13_0                        0
270 
271 #define PERIPHS_IO_MUX_GPIO14_U           (REG_IO_MUX_BASE +0x3c)
272 #define FUNC_GPIO14_FSPIWP                          4
273 #define FUNC_GPIO14_SUBSPIWP                        3
274 #define FUNC_GPIO14_FSPIDQS                         2
275 #define FUNC_GPIO14_GPIO14                          1
276 #define FUNC_GPIO14_GPIO14_0                        0
277 
278 #define PERIPHS_IO_MUX_XTAL_32K_P_U       (REG_IO_MUX_BASE +0x40)
279 #define FUNC_XTAL_32K_P_U0RTS                       2
280 #define FUNC_XTAL_32K_P_GPIO15                      1
281 #define FUNC_XTAL_32K_P_GPIO15_0                    0
282 
283 #define PERIPHS_IO_MUX_XTAL_32K_N_U       (REG_IO_MUX_BASE +0x44)
284 #define FUNC_XTAL_32K_N_U0CTS                       2
285 #define FUNC_XTAL_32K_N_GPIO16                      1
286 #define FUNC_XTAL_32K_N_GPIO16_0                    0
287 
288 #define PERIPHS_IO_MUX_DAC_1_U            (REG_IO_MUX_BASE +0x48)
289 #define FUNC_DAC_1_U1TXD                            2
290 #define FUNC_DAC_1_GPIO17                           1
291 #define FUNC_DAC_1_GPIO17_0                         0
292 
293 #define PERIPHS_IO_MUX_DAC_2_U            (REG_IO_MUX_BASE +0x4c)
294 #define FUNC_DAC_2_CLK_OUT3                         3
295 #define FUNC_DAC_2_U1RXD                            2
296 #define FUNC_DAC_2_GPIO18                           1
297 #define FUNC_DAC_2_GPIO18_0                         0
298 
299 #define PERIPHS_IO_MUX_GPIO19_U           (REG_IO_MUX_BASE +0x50)
300 #define FUNC_GPIO19_CLK_OUT2                        3
301 #define FUNC_GPIO19_U1RTS                           2
302 #define FUNC_GPIO19_GPIO19                          1
303 #define FUNC_GPIO19_GPIO19_0                        0
304 
305 #define PERIPHS_IO_MUX_GPIO20_U           (REG_IO_MUX_BASE +0x54)
306 #define FUNC_GPIO20_CLK_OUT1                        3
307 #define FUNC_GPIO20_U1CTS                           2
308 #define FUNC_GPIO20_GPIO20                          1
309 #define FUNC_GPIO20_GPIO20_0                        0
310 
311 #define PERIPHS_IO_MUX_GPIO21_U           (REG_IO_MUX_BASE +0x58)
312 #define FUNC_GPIO21_GPIO21                          1
313 #define FUNC_GPIO21_GPIO21_0                        0
314 
315 #define PERIPHS_IO_MUX_SPICS1_U           (REG_IO_MUX_BASE +0x6c)
316 #define FUNC_SPICS1_GPIO26                          1
317 #define FUNC_SPICS1_SPICS1                          0
318 
319 #define PERIPHS_IO_MUX_SPIHD_U            (REG_IO_MUX_BASE +0x70)
320 #define FUNC_SPIHD_GPIO27                           1
321 #define FUNC_SPIHD_SPIHD                            0
322 
323 #define PERIPHS_IO_MUX_SPIWP_U            (REG_IO_MUX_BASE +0x74)
324 #define FUNC_SPIWP_GPIO28                           1
325 #define FUNC_SPIWP_SPIWP                            0
326 
327 #define PERIPHS_IO_MUX_SPICS0_U           (REG_IO_MUX_BASE +0x78)
328 #define FUNC_SPICS0_GPIO29                          1
329 #define FUNC_SPICS0_SPICS0                          0
330 
331 #define PERIPHS_IO_MUX_SPICLK_U           (REG_IO_MUX_BASE +0x7c)
332 #define FUNC_SPICLK_GPIO30                          1
333 #define FUNC_SPICLK_SPICLK                          0
334 
335 #define PERIPHS_IO_MUX_SPIQ_U             (REG_IO_MUX_BASE +0x80)
336 #define FUNC_SPIQ_GPIO31                            1
337 #define FUNC_SPIQ_SPIQ                              0
338 
339 #define PERIPHS_IO_MUX_SPID_U             (REG_IO_MUX_BASE +0x84)
340 #define FUNC_SPID_GPIO32                            1
341 #define FUNC_SPID_SPID                              0
342 
343 #define PERIPHS_IO_MUX_GPIO33_U           (REG_IO_MUX_BASE +0x88)
344 #define FUNC_GPIO33_SPIIO4                          4
345 #define FUNC_GPIO33_SUBSPIHD                        3
346 #define FUNC_GPIO33_FSPIHD                          2
347 #define FUNC_GPIO33_GPIO33                          1
348 #define FUNC_GPIO33_GPIO33_0                        0
349 
350 #define PERIPHS_IO_MUX_GPIO34_U           (REG_IO_MUX_BASE +0x8c)
351 #define FUNC_GPIO34_SPIIO5                          4
352 #define FUNC_GPIO34_SUBSPICS0                       3
353 #define FUNC_GPIO34_FSPICS0                         2
354 #define FUNC_GPIO34_GPIO34                          1
355 #define FUNC_GPIO34_GPIO34_0                        0
356 
357 #define PERIPHS_IO_MUX_GPIO35_U           (REG_IO_MUX_BASE +0x90)
358 #define FUNC_GPIO35_SPIIO6                          4
359 #define FUNC_GPIO35_SUBSPID                         3
360 #define FUNC_GPIO35_FSPID                           2
361 #define FUNC_GPIO35_GPIO35                          1
362 #define FUNC_GPIO35_GPIO35_0                        0
363 
364 #define PERIPHS_IO_MUX_GPIO36_U           (REG_IO_MUX_BASE +0x94)
365 #define FUNC_GPIO36_SPIIO7                          4
366 #define FUNC_GPIO36_SUBSPICLK                       3
367 #define FUNC_GPIO36_FSPICLK                         2
368 #define FUNC_GPIO36_GPIO36                          1
369 #define FUNC_GPIO36_GPIO36_0                        0
370 
371 #define PERIPHS_IO_MUX_GPIO37_U           (REG_IO_MUX_BASE +0x98)
372 #define FUNC_GPIO37_SPIDQS                          4
373 #define FUNC_GPIO37_SUBSPIQ                         3
374 #define FUNC_GPIO37_FSPIQ                           2
375 #define FUNC_GPIO37_GPIO37                          1
376 #define FUNC_GPIO37_GPIO37_0                        0
377 
378 #define PERIPHS_IO_MUX_GPIO38_U           (REG_IO_MUX_BASE +0x9c)
379 #define FUNC_GPIO38_SUBSPIWP                        3
380 #define FUNC_GPIO38_FSPIWP                          2
381 #define FUNC_GPIO38_GPIO38                          1
382 #define FUNC_GPIO38_GPIO38_0                        0
383 
384 #define PERIPHS_IO_MUX_MTCK_U             (REG_IO_MUX_BASE +0xa0)
385 #define FUNC_MTCK_SUBSPICS1                         3
386 #define FUNC_MTCK_CLK_OUT3                          2
387 #define FUNC_MTCK_GPIO39                            1
388 #define FUNC_MTCK_MTCK                              0
389 
390 #define PERIPHS_IO_MUX_MTDO_U             (REG_IO_MUX_BASE +0xa4)
391 #define FUNC_MTDO_CLK_OUT2                          2
392 #define FUNC_MTDO_GPIO40                            1
393 #define FUNC_MTDO_MTDO                              0
394 
395 #define PERIPHS_IO_MUX_MTDI_U             (REG_IO_MUX_BASE +0xa8)
396 #define FUNC_MTDI_CLK_OUT1                          2
397 #define FUNC_MTDI_GPIO41                            1
398 #define FUNC_MTDI_MTDI                              0
399 
400 #define PERIPHS_IO_MUX_MTMS_U             (REG_IO_MUX_BASE +0xac)
401 #define FUNC_MTMS_GPIO42                            1
402 #define FUNC_MTMS_MTMS                              0
403 
404 #define PERIPHS_IO_MUX_U0TXD_U            (REG_IO_MUX_BASE +0xb0)
405 #define FUNC_U0TXD_CLK_OUT1                         2
406 #define FUNC_U0TXD_GPIO43                           1
407 #define FUNC_U0TXD_U0TXD                            0
408 
409 #define PERIPHS_IO_MUX_U0RXD_U            (REG_IO_MUX_BASE +0xb4)
410 #define FUNC_U0RXD_CLK_OUT2                         2
411 #define FUNC_U0RXD_GPIO44                           1
412 #define FUNC_U0RXD_U0RXD                            0
413 
414 #define PERIPHS_IO_MUX_GPIO45_U           (REG_IO_MUX_BASE +0xb8)
415 #define FUNC_GPIO45_GPIO45                          1
416 #define FUNC_GPIO45_GPIO45_0                        0
417 
418 #define PERIPHS_IO_MUX_GPIO46_U           (REG_IO_MUX_BASE +0xbc)
419 #define FUNC_GPIO46_GPIO46                          1
420 #define FUNC_GPIO46_GPIO46_0                        0
421 
422 #define PERIPHS_IO_MUX_SPICLK_P_U         (REG_IO_MUX_BASE +0xc0)
423 #define FUNC_SPICLK_P_SUBSPICLK_DIFF                2
424 #define FUNC_SPICLK_P_GPIO47                        1
425 #define FUNC_SPICLK_P_SPICLK_DIFF                   0
426 
427 #define PERIPHS_IO_MUX_SPICLK_N_U         (REG_IO_MUX_BASE +0xc4)
428 #define FUNC_SPICLK_N_SUBSPICLK_DIFF                2
429 #define FUNC_SPICLK_N_GPIO48                        1
430 #define FUNC_SPICLK_N_SPICLK_DIFF                   0
431 
432 
433 #define IO_MUX_DATE_REG (REG_IO_MUX_BASE + 0xfc)
434 #define IO_MUX_DATE 0xFFFFFFFF
435 #define IO_MUX_DATE_S 0
436 #define IO_MUX_DATE_VERSION 0x1907160
437