1 /*
2  * Copyright 2022-2024 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 #ifndef _FSL_IO_MUX_H_
9 #define _FSL_IO_MUX_H_
10 
11 #include "fsl_common.h"
12 
13 /*!
14  * @addtogroup io_mux
15  * @{
16  */
17 
18 /*! @file */
19 
20 /*******************************************************************************
21  * Definitions
22  ******************************************************************************/
23 /* Component ID definition, used by tools. */
24 #ifndef FSL_COMPONENT_ID
25 #define FSL_COMPONENT_ID "platform.drivers.cns_io_mux"
26 #endif
27 
28 /*! @name Driver version */
29 /*@{*/
30 /*! @brief IO_MUX driver version 2.2.0. */
31 #define FSL_IO_MUX_DRIVER_VERSION (MAKE_VERSION(2, 2, 0))
32 /*@}*/
33 
34 /*!
35  * @name Pin function ID
36  * The pin function ID is a tuple of \<GPIO_0_31_Mask GPIO_32_63_Mask GPIO_FC_SetMask GPIO_FC_ClearMask FSEL_SetMask
37  * FSEL_ClearMask CTimer_SetMask CTimer_ClearMask SCTimerSetMask SCTimerClearMask\>
38  *
39  * GPIO_FC_xxxMask:   bit[0:10] maps to FCn[0:10];
40  *                    bit[15:12] is the register offset from FC0;
41  *                    bit[16] indicates GPIO should be operated;
42  *                    bit[17] indicates SGPIO need to be operated.
43  * CTimer_xxxMask:    bit[0:14] maps to C_TIMER_IN[0:14];
44  *                    bit[16:30] maps to C_TIMER_OUT[0:14].
45  * @{
46  */
47 #define IO_MUX_GPIO_FC_MASK(gpio, fcIdx, fcMsk) \
48     (((uint32_t)(gpio) << 16) | (((uint32_t)(fcIdx)&0xFUL) << 12) | ((uint32_t)(fcMsk)&0xFFFUL))
49 #define IO_MUX_SGPIO_FLAG(mask) (((uint32_t)(mask) >> 17) & 1UL)
50 #define IO_MUX_GPIO_FLAG(mask)  (((uint32_t)(mask) >> 16) & 1UL)
51 #define IO_MUX_FC_OFFSET(mask)  (((uint32_t)(mask) >> 12) & 0xFUL)
52 #define IO_MUX_FC_MASK(mask)    ((uint32_t)(mask)&0x7FFUL)
53 
54 #define IO_MUX_CTIMER_MASK(inMsk, outMsk) (((uint32_t)(outMsk) << 16) | ((uint32_t)(inMsk)&0xFFFFUL))
55 #define IO_MUX_CTIMER_IN_MASK(mask)       ((uint32_t)(mask)&0x7FFFUL)
56 #define IO_MUX_CTIMER_OUT_MASK(mask)      (((uint32_t)(mask) >> 16) & 0x7FFFUL)
57 
58 #define IO_MUX_SCTIMER_MASK(inMsk, outMsk) ((((uint32_t)(outMsk)&0x3FFUL) << 16) | ((uint32_t)(inMsk)&0xFFUL))
59 
60 #define IO_MUX_FC0_USART_SCK                                                                   \
61     0x00000010U, 0x00000000U,                                               /* Pin mask */     \
62         IO_MUX_GPIO_FC_MASK(0, 0, 0x001), IO_MUX_GPIO_FC_MASK(1, 0, 0x02C), /* GPIO&FC mask */ \
63         0x00000000U, 0x00800000U,                                           /* FSEL mask */    \
64         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
65         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x2, 0x2)            /* SCTimer mask */
66 
67 #define IO_MUX_FC0_USART_DATA                                                                  \
68     0x0000000CU, 0x00000000U,                                               /* Pin mask */     \
69         IO_MUX_GPIO_FC_MASK(0, 0, 0x200), IO_MUX_GPIO_FC_MASK(1, 0, 0x12E), /* GPIO&FC mask */ \
70         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
71         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
72         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x1, 0x1)            /* SCTimer mask */
73 
74 #define IO_MUX_FC0_USART_CMD                                                                   \
75     0x00000021U, 0x00000000U,                                               /* Pin mask */     \
76         IO_MUX_GPIO_FC_MASK(0, 0, 0x400), IO_MUX_GPIO_FC_MASK(1, 0, 0x038), /* GPIO&FC mask */ \
77         0x00000000U, 0x00000040U,                                           /* FSEL mask */    \
78         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1, 0x1),             /* CTimer mask */  \
79         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
80 
81 #define IO_MUX_FC0_I2C_2_3                                                                     \
82     0x0000000CU, 0x00000000U,                                               /* Pin mask */     \
83         IO_MUX_GPIO_FC_MASK(0, 0, 0x002), IO_MUX_GPIO_FC_MASK(1, 0, 0x32C), /* GPIO&FC mask */ \
84         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
85         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
86         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x1, 0x1)            /* SCTimer mask */
87 
88 #define IO_MUX_FC0_I2S                                                                         \
89     0x0000001CU, 0x00000000U,                                               /* Pin mask */     \
90         IO_MUX_GPIO_FC_MASK(0, 0, 0x004), IO_MUX_GPIO_FC_MASK(1, 0, 0x32B), /* GPIO&FC mask */ \
91         0x00000000U, 0x00800000U,                                           /* FSEL mask */    \
92         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
93         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x3, 0x3)            /* SCTimer mask */
94 
95 #define IO_MUX_FC0_I2S_DATA                                                                    \
96     0x00000004U, 0x00000000U,                                               /* Pin mask */     \
97         IO_MUX_GPIO_FC_MASK(0, 0, 0x100), IO_MUX_GPIO_FC_MASK(1, 0, 0x22E), /* GPIO&FC mask */ \
98         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
99         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
100         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
101 
102 #define IO_MUX_FC0_SPI_SS0                                                                     \
103     0x0000001DU, 0x00000000U,                                               /* Pin mask */     \
104         IO_MUX_GPIO_FC_MASK(0, 0, 0x008), IO_MUX_GPIO_FC_MASK(1, 0, 0x737), /* GPIO&FC mask */ \
105         0x00000000U, 0x00800000U,                                           /* FSEL mask */    \
106         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1, 0x1),             /* CTimer mask */  \
107         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x3, 0x3)            /* SCTimer mask */
108 
109 #define IO_MUX_FC1_USART_SCK                                                                   \
110     0x00000080U, 0x00000000U,                                               /* Pin mask */     \
111         IO_MUX_GPIO_FC_MASK(0, 1, 0x001), IO_MUX_GPIO_FC_MASK(1, 1, 0x0EC), /* GPIO&FC mask */ \
112         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
113         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
114         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
115 
116 #define IO_MUX_FC1_USART_DATA                                                                  \
117     0x00000300U, 0x00000000U,                                               /* Pin mask */     \
118         IO_MUX_GPIO_FC_MASK(0, 1, 0x200), IO_MUX_GPIO_FC_MASK(1, 1, 0x1EE), /* GPIO&FC mask */ \
119         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
120         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
121         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
122 
123 #define IO_MUX_FC1_USART_CMD                                                                   \
124     0x00000440U, 0x00000000U,                                               /* Pin mask */     \
125         IO_MUX_GPIO_FC_MASK(0, 1, 0x400), IO_MUX_GPIO_FC_MASK(1, 1, 0x038), /* GPIO&FC mask */ \
126         0x00000000U, 0x01000000U,                                           /* FSEL mask */    \
127         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
128         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
129 
130 #define IO_MUX_FC1_I2C_8_9                                                                     \
131     0x00000300U, 0x00000000U,                                               /* Pin mask */     \
132         IO_MUX_GPIO_FC_MASK(0, 1, 0x002), IO_MUX_GPIO_FC_MASK(1, 1, 0x3EC), /* GPIO&FC mask */ \
133         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
134         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
135         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
136 
137 #define IO_MUX_FC1_I2S                                                                         \
138     0x00000380U, 0x00000000U,                                               /* Pin mask */     \
139         IO_MUX_GPIO_FC_MASK(0, 1, 0x004), IO_MUX_GPIO_FC_MASK(1, 1, 0x3EB), /* GPIO&FC mask */ \
140         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
141         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
142         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
143 
144 #define IO_MUX_FC1_I2S_DATA                                                                    \
145     0x00000200U, 0x00000000U,                                               /* Pin mask */     \
146         IO_MUX_GPIO_FC_MASK(0, 1, 0x100), IO_MUX_GPIO_FC_MASK(1, 1, 0x2EE), /* GPIO&FC mask */ \
147         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
148         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
149         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
150 
151 #define IO_MUX_FC1_SPI_SS0                                                                     \
152     0x000003C0U, 0x00000000U,                                               /* Pin mask */     \
153         IO_MUX_GPIO_FC_MASK(0, 1, 0x008), IO_MUX_GPIO_FC_MASK(1, 1, 0x7F7), /* GPIO&FC mask */ \
154         0x00000000U, 0x01000000U,                                           /* FSEL mask */    \
155         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
156         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
157 
158 #define IO_MUX_FC2_USART_SCK                                                                   \
159     0x00008000U, 0x00000000U,                                               /* Pin mask */     \
160         IO_MUX_GPIO_FC_MASK(0, 2, 0x001), IO_MUX_GPIO_FC_MASK(1, 2, 0x0EC), /* GPIO&FC mask */ \
161         0x00000000U, 0x00008400U,                                           /* FSEL mask */    \
162         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
163         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
164 
165 #define IO_MUX_FC2_USART_DATA                                                                  \
166     0x00006000U, 0x00000000U,                                               /* Pin mask */     \
167         IO_MUX_GPIO_FC_MASK(0, 2, 0x200), IO_MUX_GPIO_FC_MASK(1, 2, 0x1EE), /* GPIO&FC mask */ \
168         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
169         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x18, 0x18),           /* CTimer mask */  \
170         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
171 
172 #define IO_MUX_FC2_USART_CMD                                                                   \
173     0x00030000U, 0x00000000U,                                               /* Pin mask */     \
174         IO_MUX_GPIO_FC_MASK(0, 2, 0x400), IO_MUX_GPIO_FC_MASK(1, 2, 0x038), /* GPIO&FC mask */ \
175         0x00000000U, 0x00008400U,                                           /* FSEL mask */    \
176         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
177         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
178 
179 #define IO_MUX_FC2_I2C_13_14                                                                   \
180     0x00006000U, 0x00000000U,                                               /* Pin mask */     \
181         IO_MUX_GPIO_FC_MASK(0, 2, 0x002), IO_MUX_GPIO_FC_MASK(1, 2, 0x3EC), /* GPIO&FC mask */ \
182         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
183         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x18, 0x18),           /* CTimer mask */  \
184         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
185 
186 #define IO_MUX_FC2_I2C_16_17                                                                   \
187     0x00030000U, 0x00000000U,                                               /* Pin mask */     \
188         IO_MUX_GPIO_FC_MASK(0, 2, 0x010), IO_MUX_GPIO_FC_MASK(1, 2, 0x428), /* GPIO&FC mask */ \
189         0x00000000U, 0x00008400U,                                           /* FSEL mask */    \
190         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
191         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
192 
193 #define IO_MUX_FC2_I2S                                                                         \
194     0x0000E000U, 0x00000000U,                                               /* Pin mask */     \
195         IO_MUX_GPIO_FC_MASK(0, 2, 0x004), IO_MUX_GPIO_FC_MASK(1, 2, 0x3EB), /* GPIO&FC mask */ \
196         0x00000000U, 0x00008400U,                                           /* FSEL mask */    \
197         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x18, 0x18),           /* CTimer mask */  \
198         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
199 
200 #define IO_MUX_FC2_I2S_DATA                                                                    \
201     0x00002000U, 0x00000000U,                                               /* Pin mask */     \
202         IO_MUX_GPIO_FC_MASK(0, 2, 0x100), IO_MUX_GPIO_FC_MASK(1, 2, 0x2EE), /* GPIO&FC mask */ \
203         0x00000000U, 0x00000000U,                                           /* FSEL mask */    \
204         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x18, 0x18),           /* CTimer mask */  \
205         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
206 
207 #define IO_MUX_FC2_SPI_SS0                                                                     \
208     0x0001E000U, 0x00000000U,                                               /* Pin mask */     \
209         IO_MUX_GPIO_FC_MASK(0, 2, 0x008), IO_MUX_GPIO_FC_MASK(1, 2, 0x7F7), /* GPIO&FC mask */ \
210         0x00000000U, 0x00008400U,                                           /* FSEL mask */    \
211         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x18, 0x18),           /* CTimer mask */  \
212         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
213 
214 #define IO_MUX_FC3_USART_SCK                                                                   \
215     0x02000000U, 0x00000000U,                                               /* Pin mask */     \
216         IO_MUX_GPIO_FC_MASK(0, 3, 0x001), IO_MUX_GPIO_FC_MASK(1, 3, 0x0EC), /* GPIO&FC mask */ \
217         0x00000000U, 0x00010000U,                                           /* FSEL mask */    \
218         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x80, 0x80),           /* CTimer mask */  \
219         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
220 
221 #define IO_MUX_FC3_USART_DATA                                                                  \
222     0x05000000U, 0x00000000U,                                               /* Pin mask */     \
223         IO_MUX_GPIO_FC_MASK(0, 3, 0x200), IO_MUX_GPIO_FC_MASK(1, 3, 0x1EE), /* GPIO&FC mask */ \
224         0x00000000U, 0xC0000000U,                                           /* FSEL mask */    \
225         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40),           /* CTimer mask */  \
226         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)          /* SCTimer mask */
227 
228 #define IO_MUX_FC3_USART_CMD                                                                   \
229     0x00180000U, 0x00000000U,                                               /* Pin mask */     \
230         IO_MUX_GPIO_FC_MASK(0, 3, 0x400), IO_MUX_GPIO_FC_MASK(1, 3, 0x038), /* GPIO&FC mask */ \
231         0x00000000U, 0x00008000U,                                           /* FSEL mask */    \
232         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
233         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
234 
235 #define IO_MUX_FC3_I2C_24_26                                                                   \
236     0x05000000U, 0x00000000U,                                               /* Pin mask */     \
237         IO_MUX_GPIO_FC_MASK(0, 3, 0x002), IO_MUX_GPIO_FC_MASK(1, 3, 0x3EC), /* GPIO&FC mask */ \
238         0x00000000U, 0xC0000000U,                                           /* FSEL mask */    \
239         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40),           /* CTimer mask */  \
240         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)          /* SCTimer mask */
241 
242 #define IO_MUX_FC3_I2C_19_20                                                                   \
243     0x00180000U, 0x00000000U,                                               /* Pin mask */     \
244         IO_MUX_GPIO_FC_MASK(0, 3, 0x010), IO_MUX_GPIO_FC_MASK(1, 3, 0x428), /* GPIO&FC mask */ \
245         0x00000000U, 0x00008000U,                                           /* FSEL mask */    \
246         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
247         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
248 
249 #define IO_MUX_FC3_I2S                                                                         \
250     0x07000000U, 0x00000000U,                                               /* Pin mask */     \
251         IO_MUX_GPIO_FC_MASK(0, 3, 0x004), IO_MUX_GPIO_FC_MASK(1, 3, 0x3EB), /* GPIO&FC mask */ \
252         0x00000000U, 0xC0010000U,                                           /* FSEL mask */    \
253         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0xC0, 0xC0),           /* CTimer mask */  \
254         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)          /* SCTimer mask */
255 
256 #define IO_MUX_FC3_I2S_DATA                                                                    \
257     0x01000000U, 0x00000000U,                                               /* Pin mask */     \
258         IO_MUX_GPIO_FC_MASK(0, 3, 0x100), IO_MUX_GPIO_FC_MASK(1, 3, 0x2EE), /* GPIO&FC mask */ \
259         0x00000000U, 0x40000000U,                                           /* FSEL mask */    \
260         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40),           /* CTimer mask */  \
261         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
262 
263 #define IO_MUX_FC3_SPI_SS0                                                                     \
264     0x07100000U, 0x00000000U,                                               /* Pin mask */     \
265         IO_MUX_GPIO_FC_MASK(0, 3, 0x008), IO_MUX_GPIO_FC_MASK(1, 3, 0x7F7), /* GPIO&FC mask */ \
266         0x00000000U, 0xC0018000U,                                           /* FSEL mask */    \
267         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0xC0, 0xC0),           /* CTimer mask */  \
268         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)          /* SCTimer mask */
269 
270 #define IO_MUX_FC14_USART_SCK                                                                  \
271     0x00000000U, 0x00400000U,                                               /* Pin mask */     \
272         IO_MUX_GPIO_FC_MASK(0, 6, 0x001), IO_MUX_GPIO_FC_MASK(3, 6, 0x0EC), /* GPIO&FC mask */ \
273         0x00000000U, 0x00200810U,                                           /* FSEL mask */    \
274         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4000, 0x4000),       /* CTimer mask */  \
275         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
276 
277 #define IO_MUX_FC14_USART_DATA                                                                 \
278     0x00000000U, 0x03000000U,                                               /* Pin mask */     \
279         IO_MUX_GPIO_FC_MASK(0, 6, 0x200), IO_MUX_GPIO_FC_MASK(3, 6, 0x1EE), /* GPIO&FC mask */ \
280         0x00000000U, 0x08000800U,                                           /* FSEL mask */    \
281         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
282         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
283 
284 #define IO_MUX_FC14_USART_CMD                                                                  \
285     0x00000000U, 0x00A00000U,                                               /* Pin mask */     \
286         IO_MUX_GPIO_FC_MASK(0, 6, 0x400), IO_MUX_GPIO_FC_MASK(3, 6, 0x038), /* GPIO&FC mask */ \
287         0x00000000U, 0x00500810U,                                           /* FSEL mask */    \
288         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x2000, 0x2000),       /* CTimer mask */  \
289         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0x200)            /* SCTimer mask */
290 
291 #define IO_MUX_FC14_I2C_56_57                                                                  \
292     0x00000000U, 0x03000000U,                                               /* Pin mask */     \
293         IO_MUX_GPIO_FC_MASK(0, 6, 0x002), IO_MUX_GPIO_FC_MASK(3, 6, 0x3EC), /* GPIO&FC mask */ \
294         0x00000000U, 0x08000800U,                                           /* FSEL mask */    \
295         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
296         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
297 
298 #define IO_MUX_FC14_I2S                                                                        \
299     0x00000000U, 0x03400000U,                                               /* Pin mask */     \
300         IO_MUX_GPIO_FC_MASK(0, 6, 0x004), IO_MUX_GPIO_FC_MASK(3, 6, 0x3EB), /* GPIO&FC mask */ \
301         0x00000000U, 0x08200810U,                                           /* FSEL mask */    \
302         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4000, 0x4000),       /* CTimer mask */  \
303         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
304 
305 #define IO_MUX_FC14_I2S_DATA                                                                   \
306     0x00000000U, 0x02000000U,                                               /* Pin mask */     \
307         IO_MUX_GPIO_FC_MASK(0, 6, 0x100), IO_MUX_GPIO_FC_MASK(3, 6, 0x2EE), /* GPIO&FC mask */ \
308         0x00000000U, 0x08000800U,                                           /* FSEL mask */    \
309         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),                 /* CTimer mask */  \
310         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
311 
312 #define IO_MUX_FC14_SPI_SS0                                                                    \
313     0x00000000U, 0x03600000U,                                               /* Pin mask */     \
314         IO_MUX_GPIO_FC_MASK(0, 6, 0x008), IO_MUX_GPIO_FC_MASK(3, 6, 0x7F7), /* GPIO&FC mask */ \
315         0x00000000U, 0x08300810U,                                           /* FSEL mask */    \
316         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x6000, 0x6000),       /* CTimer mask */  \
317         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)                /* SCTimer mask */
318 
319 #define IO_MUX_QUAD_SPI_FLASH                                                          \
320     0xF0000000U, 0x00000007U,                                       /* Pin mask */     \
321         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
322         0x00000002U, 0x00000000U,                                   /* FSEL mask */    \
323         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
324         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
325 
326 #define IO_MUX_QUAD_SPI_PSRAM                                                          \
327     0x00000000U, 0x000003F8U,                                       /* Pin mask */     \
328         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
329         0x00000008U, 0x00000000U,                                   /* FSEL mask */    \
330         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x700, 0x700), /* CTimer mask */  \
331         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0xC0, 0xC0)  /* SCTimer mask */
332 
333 #define IO_MUX_PDM                                                                         \
334     0x00000000U, 0x00780000U,                                           /* Pin mask */     \
335         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x4FD), /* GPIO&FC mask */ \
336         0x00000010U, 0x003C0800U,                                       /* FSEL mask */    \
337         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x7800, 0x7800),   /* CTimer mask */  \
338         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
339 
340 #define IO_MUX_USB                                                                         \
341     0x00001000U, 0x00000000U,                                           /* Pin mask */     \
342         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 1, 0x080), /* GPIO&FC mask */ \
343         0x00000020U, 0x00000000U,                                       /* FSEL mask */    \
344         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4, 0x4),         /* CTimer mask */  \
345         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
346 
347 #define IO_MUX_SCT_OUT_0                                                                   \
348     0x00000008U, 0x00000000U,                                           /* Pin mask */     \
349         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x22E), /* GPIO&FC mask */ \
350         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
351         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
352         IO_MUX_SCTIMER_MASK(0, 0x1), IO_MUX_SCTIMER_MASK(0x1, 0)        /* SCTimer mask */
353 
354 #define IO_MUX_SCT_OUT_1                                                                   \
355     0x00000010U, 0x00000000U,                                           /* Pin mask */     \
356         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x02D), /* GPIO&FC mask */ \
357         0x00000000U, 0x00800000U,                                       /* FSEL mask */    \
358         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
359         IO_MUX_SCTIMER_MASK(0, 0x2), IO_MUX_SCTIMER_MASK(0x2, 0)        /* SCTimer mask */
360 
361 #define IO_MUX_SCT_OUT_8                                                                   \
362     0x00000800U, 0x00000000U,                                           /* Pin mask */     \
363         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 1, 0x040), /* GPIO&FC mask */ \
364         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
365         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
366         IO_MUX_SCTIMER_MASK(0, 0x100), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
367 
368 #define IO_MUX_SCT_OUT_4                                                                   \
369     0x04000000U, 0x00000000U,                                           /* Pin mask */     \
370         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x2EE), /* GPIO&FC mask */ \
371         0x00000000U, 0x80000000U,                                       /* FSEL mask */    \
372         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
373         IO_MUX_SCTIMER_MASK(0, 0x10), IO_MUX_SCTIMER_MASK(0x10, 0)      /* SCTimer mask */
374 
375 #define IO_MUX_SCT_OUT_5                                                               \
376     0x08000000U, 0x00000000U,                                       /* Pin mask */     \
377         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
378         0x00000000U, 0x10000000U,                                   /* FSEL mask */    \
379         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
380         IO_MUX_SCTIMER_MASK(0, 0x20), IO_MUX_SCTIMER_MASK(0x20, 0)  /* SCTimer mask */
381 
382 #define IO_MUX_SCT_OUT_6                                                               \
383     0x00000000U, 0x00000008U,                                       /* Pin mask */     \
384         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
385         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
386         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
387         IO_MUX_SCTIMER_MASK(0, 0x40), IO_MUX_SCTIMER_MASK(0x40, 0)  /* SCTimer mask */
388 
389 #define IO_MUX_SCT_OUT_7                                                               \
390     0x00000000U, 0x00000010U,                                       /* Pin mask */     \
391         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
392         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
393         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
394         IO_MUX_SCTIMER_MASK(0, 0x80), IO_MUX_SCTIMER_MASK(0x80, 0)  /* SCTimer mask */
395 
396 #define IO_MUX_SCT_OUT_9                                                                   \
397     0x00000000U, 0x00800000U,                                           /* Pin mask */     \
398         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x430), /* GPIO&FC mask */ \
399         0x00000000U, 0x00400000U,                                       /* FSEL mask */    \
400         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
401         IO_MUX_SCTIMER_MASK(0, 0x200), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
402 
403 #define IO_MUX_SCT_IN_0                                                                    \
404     0x00000008U, 0x00000000U,                                           /* Pin mask */     \
405         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x22E), /* GPIO&FC mask */ \
406         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
407         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
408         IO_MUX_SCTIMER_MASK(0x1, 0), IO_MUX_SCTIMER_MASK(0, 0x1)        /* SCTimer mask */
409 
410 #define IO_MUX_SCT_IN_1                                                                    \
411     0x00000010U, 0x00000000U,                                           /* Pin mask */     \
412         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x02D), /* GPIO&FC mask */ \
413         0x00000000U, 0x00800000U,                                       /* FSEL mask */    \
414         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
415         IO_MUX_SCTIMER_MASK(0x2, 0), IO_MUX_SCTIMER_MASK(0, 0x2)        /* SCTimer mask */
416 
417 #define IO_MUX_SCT_IN_2                                                                    \
418     0x00400000U, 0x00000000U,                                           /* Pin mask */     \
419         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x040), /* GPIO&FC mask */ \
420         0x00000000U, 0x04000000U,                                       /* FSEL mask */    \
421         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
422         IO_MUX_SCTIMER_MASK(0x4, 0), IO_MUX_SCTIMER_MASK(0, 0)          /* SCTimer mask */
423 
424 #define IO_MUX_SCT_IN_3                                                                    \
425     0x00800000U, 0x00000000U,                                           /* Pin mask */     \
426         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x080), /* GPIO&FC mask */ \
427         0x00000000U, 0x04000000U,                                       /* FSEL mask */    \
428         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
429         IO_MUX_SCTIMER_MASK(0x8, 0), IO_MUX_SCTIMER_MASK(0, 0)          /* SCTimer mask */
430 
431 #define IO_MUX_SCT_IN_4                                                                    \
432     0x04000000U, 0x00000000U,                                           /* Pin mask */     \
433         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x2EE), /* GPIO&FC mask */ \
434         0x00000000U, 0x80000000U,                                       /* FSEL mask */    \
435         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
436         IO_MUX_SCTIMER_MASK(0x10, 0), IO_MUX_SCTIMER_MASK(0, 0x10)      /* SCTimer mask */
437 
438 #define IO_MUX_SCT_IN_5                                                                \
439     0x08000000U, 0x00000000U,                                       /* Pin mask */     \
440         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
441         0x00000000U, 0x10000000U,                                   /* FSEL mask */    \
442         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
443         IO_MUX_SCTIMER_MASK(0x20, 0), IO_MUX_SCTIMER_MASK(0, 0x20)  /* SCTimer mask */
444 
445 #define IO_MUX_SCT_IN_6                                                                \
446     0x00000000U, 0x00000008U,                                       /* Pin mask */     \
447         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
448         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
449         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
450         IO_MUX_SCTIMER_MASK(0x40, 0), IO_MUX_SCTIMER_MASK(0, 0x40)  /* SCTimer mask */
451 
452 #define IO_MUX_SCT_IN_7                                                                \
453     0x00000000U, 0x00000010U,                                       /* Pin mask */     \
454         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
455         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
456         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
457         IO_MUX_SCTIMER_MASK(0x80, 0), IO_MUX_SCTIMER_MASK(0, 0x80)  /* SCTimer mask */
458 
459 #define IO_MUX_CT0_MAT0_OUT                                                                \
460     0x00000001U, 0x00000000U,                                           /* Pin mask */     \
461         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x418), /* GPIO&FC mask */ \
462         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
463         IO_MUX_CTIMER_MASK(0, 0x1), IO_MUX_CTIMER_MASK(0x1, 0),         /* CTimer mask */  \
464         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
465 
466 #define IO_MUX_CT0_MAT1_OUT                                                            \
467     0x00000002U, 0x00000000U,                                       /* Pin mask */     \
468         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
469         0x00000000U, 0x00000000U,                                   /* FSEL mask */    \
470         IO_MUX_CTIMER_MASK(0, 0x2), IO_MUX_CTIMER_MASK(0x2, 0),     /* CTimer mask */  \
471         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
472 
473 #define IO_MUX_CT0_MAT2_OUT                                                                \
474     0x00001000U, 0x00000000U,                                           /* Pin mask */     \
475         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 1, 0x080), /* GPIO&FC mask */ \
476         0x00000000U, 0x00000020U,                                       /* FSEL mask */    \
477         IO_MUX_CTIMER_MASK(0, 0x4), IO_MUX_CTIMER_MASK(0x4, 0),         /* CTimer mask */  \
478         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
479 
480 #define IO_MUX_CT0_MAT3_OUT                                                                \
481     0x00002000U, 0x00000000U,                                           /* Pin mask */     \
482         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x3EE), /* GPIO&FC mask */ \
483         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
484         IO_MUX_CTIMER_MASK(0, 0x8), IO_MUX_CTIMER_MASK(0x8, 0),         /* CTimer mask */  \
485         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
486 
487 #define IO_MUX_CT1_MAT0_OUT                                                                \
488     0x00004000U, 0x00000000U,                                           /* Pin mask */     \
489         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x2EE), /* GPIO&FC mask */ \
490         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
491         IO_MUX_CTIMER_MASK(0, 0x10), IO_MUX_CTIMER_MASK(0x10, 0),       /* CTimer mask */  \
492         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
493 
494 #define IO_MUX_CT1_MAT1_OUT                                                                \
495     0x00200000U, 0x00000000U,                                           /* Pin mask */     \
496         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x040), /* GPIO&FC mask */ \
497         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
498         IO_MUX_CTIMER_MASK(0, 0x20), IO_MUX_CTIMER_MASK(0x20, 0),       /* CTimer mask */  \
499         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
500 
501 #define IO_MUX_CT1_MAT2_OUT                                                                \
502     0x01000000U, 0x00000000U,                                           /* Pin mask */     \
503         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x3EE), /* GPIO&FC mask */ \
504         0x00000000U, 0x40000000U,                                       /* FSEL mask */    \
505         IO_MUX_CTIMER_MASK(0, 0x40), IO_MUX_CTIMER_MASK(0x40, 0),       /* CTimer mask */  \
506         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
507 
508 #define IO_MUX_CT1_MAT3_OUT                                                                \
509     0x02000000U, 0x00000000U,                                           /* Pin mask */     \
510         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x0ED), /* GPIO&FC mask */ \
511         0x00000000U, 0x00010000U,                                       /* FSEL mask */    \
512         IO_MUX_CTIMER_MASK(0, 0x80), IO_MUX_CTIMER_MASK(0x80, 0),       /* CTimer mask */  \
513         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
514 
515 #define IO_MUX_CT2_MAT0_OUT                                                            \
516     0x00000000U, 0x00000020U,                                       /* Pin mask */     \
517         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
518         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
519         IO_MUX_CTIMER_MASK(0, 0x100), IO_MUX_CTIMER_MASK(0x100, 0), /* CTimer mask */  \
520         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
521 
522 #define IO_MUX_CT2_MAT1_OUT                                                            \
523     0x00000000U, 0x00000040U,                                       /* Pin mask */     \
524         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
525         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
526         IO_MUX_CTIMER_MASK(0, 0x200), IO_MUX_CTIMER_MASK(0x200, 0), /* CTimer mask */  \
527         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
528 
529 #define IO_MUX_CT2_MAT2_OUT                                                            \
530     0x00000000U, 0x00000080U,                                       /* Pin mask */     \
531         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
532         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
533         IO_MUX_CTIMER_MASK(0, 0x400), IO_MUX_CTIMER_MASK(0x400, 0), /* CTimer mask */  \
534         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
535 
536 #define IO_MUX_CT2_MAT3_OUT                                                                \
537     0x00000000U, 0x00080000U,                                           /* Pin mask */     \
538         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x040), /* GPIO&FC mask */ \
539         0x00000000U, 0x00040810U,                                       /* FSEL mask */    \
540         IO_MUX_CTIMER_MASK(0, 0x800), IO_MUX_CTIMER_MASK(0x800, 0),     /* CTimer mask */  \
541         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
542 
543 #define IO_MUX_CT3_MAT0_OUT                                                                \
544     0x00000000U, 0x00100000U,                                           /* Pin mask */     \
545         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x080), /* GPIO&FC mask */ \
546         0x00000000U, 0x00080810U,                                       /* FSEL mask */    \
547         IO_MUX_CTIMER_MASK(0, 0x1000), IO_MUX_CTIMER_MASK(0x1000, 0),   /* CTimer mask */  \
548         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
549 
550 #define IO_MUX_CT3_MAT1_OUT                                                                \
551     0x00000000U, 0x00200000U,                                           /* Pin mask */     \
552         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x418), /* GPIO&FC mask */ \
553         0x00000000U, 0x00100810U,                                       /* FSEL mask */    \
554         IO_MUX_CTIMER_MASK(0, 0x2000), IO_MUX_CTIMER_MASK(0x2000, 0),   /* CTimer mask */  \
555         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
556 
557 #define IO_MUX_CT3_MAT2_OUT                                                               \
558     0x00000000U, 0x00400000U,                                          /* Pin mask */     \
559         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0xED), /* GPIO&FC mask */ \
560         0x00000000U, 0x00200810U,                                      /* FSEL mask */    \
561         IO_MUX_CTIMER_MASK(0, 0x4000), IO_MUX_CTIMER_MASK(0x4000, 0),  /* CTimer mask */  \
562         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)           /* SCTimer mask */
563 
564 #define IO_MUX_CT_INP0                                                                     \
565     0x00000001U, 0x00000000U,                                           /* Pin mask */     \
566         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x418), /* GPIO&FC mask */ \
567         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
568         IO_MUX_CTIMER_MASK(0x1, 0), IO_MUX_CTIMER_MASK(0, 0x1),         /* CTimer mask */  \
569         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
570 
571 #define IO_MUX_CT_INP1                                                                 \
572     0x00000002U, 0x00000000U,                                       /* Pin mask */     \
573         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
574         0x00000000U, 0x00000000U,                                   /* FSEL mask */    \
575         IO_MUX_CTIMER_MASK(0x2, 0), IO_MUX_CTIMER_MASK(0, 0x2),     /* CTimer mask */  \
576         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
577 
578 #define IO_MUX_CT_INP2                                                                     \
579     0x00001000U, 0x00000000U,                                           /* Pin mask */     \
580         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 1, 0x080), /* GPIO&FC mask */ \
581         0x00000000U, 0x00000020U,                                       /* FSEL mask */    \
582         IO_MUX_CTIMER_MASK(0x4, 0), IO_MUX_CTIMER_MASK(0, 0x4),         /* CTimer mask */  \
583         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
584 
585 #define IO_MUX_CT_INP3                                                                     \
586     0x00002000U, 0x00000000U,                                           /* Pin mask */     \
587         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x3EE), /* GPIO&FC mask */ \
588         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
589         IO_MUX_CTIMER_MASK(0x8, 0), IO_MUX_CTIMER_MASK(0, 0x8),         /* CTimer mask */  \
590         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
591 
592 #define IO_MUX_CT_INP4                                                                     \
593     0x00004000U, 0x00000000U,                                           /* Pin mask */     \
594         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x2EE), /* GPIO&FC mask */ \
595         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
596         IO_MUX_CTIMER_MASK(0x10, 0), IO_MUX_CTIMER_MASK(0, 0x10),       /* CTimer mask */  \
597         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
598 
599 #define IO_MUX_CT_INP5                                                                     \
600     0x00200000U, 0x00000000U,                                           /* Pin mask */     \
601         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x040), /* GPIO&FC mask */ \
602         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
603         IO_MUX_CTIMER_MASK(0x20, 0), IO_MUX_CTIMER_MASK(0, 0x20),       /* CTimer mask */  \
604         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
605 
606 #define IO_MUX_CT_INP6                                                                     \
607     0x01000000U, 0x00000000U,                                           /* Pin mask */     \
608         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x3EE), /* GPIO&FC mask */ \
609         0x00000000U, 0x40000000U,                                       /* FSEL mask */    \
610         IO_MUX_CTIMER_MASK(0x40, 0), IO_MUX_CTIMER_MASK(0, 0x40),       /* CTimer mask */  \
611         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
612 
613 #define IO_MUX_CT_INP7                                                                     \
614     0x02000000U, 0x00000000U,                                           /* Pin mask */     \
615         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x0ED), /* GPIO&FC mask */ \
616         0x00000000U, 0x00010000U,                                       /* FSEL mask */    \
617         IO_MUX_CTIMER_MASK(0x80, 0), IO_MUX_CTIMER_MASK(0, 0x80),       /* CTimer mask */  \
618         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
619 
620 #define IO_MUX_CT_INP8                                                                 \
621     0x00000000U, 0x00000020U,                                       /* Pin mask */     \
622         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
623         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
624         IO_MUX_CTIMER_MASK(0x100, 0), IO_MUX_CTIMER_MASK(0, 0x100), /* CTimer mask */  \
625         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
626 
627 #define IO_MUX_CT_INP9                                                                 \
628     0x00000000U, 0x00000040U,                                       /* Pin mask */     \
629         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
630         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
631         IO_MUX_CTIMER_MASK(0x200, 0), IO_MUX_CTIMER_MASK(0, 0x200), /* CTimer mask */  \
632         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
633 
634 #define IO_MUX_CT_INP10                                                                \
635     0x00000000U, 0x00000080U,                                       /* Pin mask */     \
636         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
637         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
638         IO_MUX_CTIMER_MASK(0x400, 0), IO_MUX_CTIMER_MASK(0, 0x400), /* CTimer mask */  \
639         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
640 
641 #define IO_MUX_CT_INP11                                                                    \
642     0x00000000U, 0x00080000U,                                           /* Pin mask */     \
643         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x040), /* GPIO&FC mask */ \
644         0x00000000U, 0x00040810U,                                       /* FSEL mask */    \
645         IO_MUX_CTIMER_MASK(0x800, 0), IO_MUX_CTIMER_MASK(0, 0x800),     /* CTimer mask */  \
646         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
647 
648 #define IO_MUX_CT_INP12                                                                    \
649     0x00000000U, 0x00100000U,                                           /* Pin mask */     \
650         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x080), /* GPIO&FC mask */ \
651         0x00000000U, 0x00080810U,                                       /* FSEL mask */    \
652         IO_MUX_CTIMER_MASK(0x1000, 0), IO_MUX_CTIMER_MASK(0, 0x1000),   /* CTimer mask */  \
653         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
654 
655 #define IO_MUX_CT_INP13                                                                    \
656     0x00000000U, 0x00200000U,                                           /* Pin mask */     \
657         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x418), /* GPIO&FC mask */ \
658         0x00000000U, 0x00100810U,                                       /* FSEL mask */    \
659         IO_MUX_CTIMER_MASK(0x2000, 0), IO_MUX_CTIMER_MASK(0, 0x2000),   /* CTimer mask */  \
660         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
661 
662 #define IO_MUX_CT_INP14                                                                   \
663     0x00000000U, 0x00400000U,                                          /* Pin mask */     \
664         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0xED), /* GPIO&FC mask */ \
665         0x00000000U, 0x00200810U,                                      /* FSEL mask */    \
666         IO_MUX_CTIMER_MASK(0x4000, 0), IO_MUX_CTIMER_MASK(0, 0x4000),  /* CTimer mask */  \
667         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)           /* SCTimer mask */
668 
669 #define IO_MUX_MCLK                                                                        \
670     0x00000020U, 0x00000000U,                                           /* Pin mask */     \
671         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x430), /* GPIO&FC mask */ \
672         0x00000040U, 0x00000000U,                                       /* FSEL mask */    \
673         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
674         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
675 
676 #define IO_MUX_UTICK                                                                       \
677     0x00078000U, 0x00000000U,                                           /* Pin mask */     \
678         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x4FD), /* GPIO&FC mask */ \
679         0x00000200U, 0x0000C400U,                                       /* FSEL mask */    \
680         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
681         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
682 
683 #define IO_MUX_USIM                                                                        \
684     0x00078000U, 0x00000000U,                                           /* Pin mask */     \
685         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x4FD), /* GPIO&FC mask */ \
686         0x00000400U, 0x0000C200U,                                       /* FSEL mask */    \
687         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
688         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
689 
690 #define IO_MUX_LCD_8080                                                                    \
691     0x00000000U, 0x037BFC00U,                                           /* Pin mask */     \
692         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x7FF), /* GPIO&FC mask */ \
693         0x00000800U, 0x083C1010U,                                       /* FSEL mask */    \
694         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x7800, 0x7800),   /* CTimer mask */  \
695         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
696 
697 #define IO_MUX_LCD_SPI                                                                 \
698     0x00000000U, 0x0003F000U,                                       /* Pin mask */     \
699         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
700         0x00001000U, 0x00000800U,                                   /* FSEL mask */    \
701         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
702         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
703 
704 #define IO_MUX_FREQ_GPIO_CLK                                                           \
705     0x00000000U, 0x00040000U,                                       /* Pin mask */     \
706         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
707         0x00002000U, 0x00020000U,                                   /* FSEL mask */    \
708         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
709         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
710 
711 #define IO_MUX_GPIO_INT_BMATCH                                                             \
712     0x00040000U, 0x00000000U,                                           /* Pin mask */     \
713         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 2, 0x080), /* GPIO&FC mask */ \
714         0x00004000U, 0x00008600U,                                       /* FSEL mask */    \
715         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
716         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
717 
718 #define IO_MUX_GAU_TRIGGER0                                                            \
719     0x00000000U, 0x00040000U,                                       /* Pin mask */     \
720         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
721         0x00020000U, 0x00002000U,                                   /* FSEL mask */    \
722         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
723         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
724 
725 #define IO_MUX_ACOMP0_GPIO_OUT                                                             \
726     0x00000000U, 0x00080000U,                                           /* Pin mask */     \
727         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x040), /* GPIO&FC mask */ \
728         0x00040000U, 0x00000810U,                                       /* FSEL mask */    \
729         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x800, 0x800),     /* CTimer mask */  \
730         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
731 
732 #define IO_MUX_ACOMP0_EDGE_PULSE                                                           \
733     0x00000000U, 0x00100000U,                                           /* Pin mask */     \
734         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x080), /* GPIO&FC mask */ \
735         0x00080000U, 0x00000810U,                                       /* FSEL mask */    \
736         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1000, 0x1000),   /* CTimer mask */  \
737         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
738 
739 #define IO_MUX_ACOMP1_GPIO_OUT                                                             \
740     0x00000000U, 0x00200000U,                                           /* Pin mask */     \
741         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x418), /* GPIO&FC mask */ \
742         0x00100000U, 0x00000810U,                                       /* FSEL mask */    \
743         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x2000, 0x2000),   /* CTimer mask */  \
744         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
745 
746 #define IO_MUX_ACOMP1_EDGE_PULSE                                                           \
747     0x00000000U, 0x00400000U,                                           /* Pin mask */     \
748         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x0ED), /* GPIO&FC mask */ \
749         0x00200000U, 0x00000810U,                                       /* FSEL mask */    \
750         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4000, 0x4000),   /* CTimer mask */  \
751         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
752 
753 #define IO_MUX_GAU_TRIGGER1                                                                \
754     0x00000000U, 0x00800000U,                                           /* Pin mask */     \
755         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x430), /* GPIO&FC mask */ \
756         0x00400000U, 0x00000000U,                                       /* FSEL mask */    \
757         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
758         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0x200)        /* SCTimer mask */
759 
760 #define IO_MUX_SDIO                                                                      \
761     0x001F9000U, 0x00000000U,                                         /* Pin mask */     \
762         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0xF, 0), /* GPIO&FC mask */ \
763         0x00008000U, 0x00004620U,                                     /* FSEL mask */    \
764         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4, 0x4),       /* CTimer mask */  \
765         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)          /* SCTimer mask */
766 
767 #define IO_MUX_ENET_CLK                                                                    \
768     0x02000000U, 0x00000000U,                                           /* Pin mask */     \
769         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x0ED), /* GPIO&FC mask */ \
770         0x00010000U, 0x00000000U,                                       /* FSEL mask */    \
771         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x80, 0x80),       /* CTimer mask */  \
772         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
773 
774 #define IO_MUX_ENET_RX                                                                     \
775     0x00C00000U, 0xC0000000U,                                           /* Pin mask */     \
776         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x0C0), /* GPIO&FC mask */ \
777         0x04000000U, 0x00000000U,                                       /* FSEL mask */    \
778         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
779         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0xC, 0)          /* SCTimer mask */
780 
781 #define IO_MUX_ENET_TX                                                                 \
782     0x00000000U, 0x1C000000U,                                       /* Pin mask */     \
783         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
784         0x02000000U, 0x00000000U,                                   /* FSEL mask */    \
785         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
786         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
787 
788 #define IO_MUX_ENET_MDIO                                                                   \
789     0x00000000U, 0x03000000U,                                           /* Pin mask */     \
790         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 6, 0x3EE), /* GPIO&FC mask */ \
791         0x08000000U, 0x00000800U,                                       /* FSEL mask */    \
792         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
793         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
794 
795 #define IO_MUX_ENET_TIMER0                                                             \
796     0x08000000U, 0x00000000U,                                       /* Pin mask */     \
797         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
798         0x10000000U, 0x00000000U,                                   /* FSEL mask */    \
799         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
800         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x20, 0x20)  /* SCTimer mask */
801 
802 #define IO_MUX_ENET_TIMER1                                                             \
803     0x00000000U, 0x20000000U,                                       /* Pin mask */     \
804         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(3, 0, 0), /* GPIO&FC mask */ \
805         0x20000000U, 0x00000000U,                                   /* FSEL mask */    \
806         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
807         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
808 
809 #define IO_MUX_ENET_TIMER2                                                                 \
810     0x01000000U, 0x00000000U,                                           /* Pin mask */     \
811         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x3EE), /* GPIO&FC mask */ \
812         0x40000000U, 0x00000000U,                                       /* FSEL mask */    \
813         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40),       /* CTimer mask */  \
814         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
815 
816 #define IO_MUX_ENET_TIMER3                                                                 \
817     0x04000000U, 0x00000000U,                                           /* Pin mask */     \
818         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x2EE), /* GPIO&FC mask */ \
819         0x80000000U, 0x00000000U,                                       /* FSEL mask */    \
820         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
821         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)      /* SCTimer mask */
822 
823 #define IO_MUX_CLKIN_FRM_PD                                                                \
824     0x00000010U, 0x00000000U,                                           /* Pin mask */     \
825         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0x02D), /* GPIO&FC mask */ \
826         0x00800000U, 0x00000000U,                                       /* FSEL mask */    \
827         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
828         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x2, 0x2)        /* SCTimer mask */
829 
830 #define IO_MUX_GPIO0                                                                       \
831     0x00000001U, 0x00000000U,                                           /* Pin mask */     \
832         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0x418), /* GPIO&FC mask */ \
833         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
834         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1, 0x1),         /* CTimer mask */  \
835         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
836 
837 #define IO_MUX_GPIO1                                                                   \
838     0x00000002U, 0x00000000U,                                       /* Pin mask */     \
839         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
840         0x00000000U, 0x00000000U,                                   /* FSEL mask */    \
841         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x2, 0x2),     /* CTimer mask */  \
842         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
843 
844 #define IO_MUX_GPIO2                                                                       \
845     0x00000004U, 0x00000000U,                                           /* Pin mask */     \
846         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0x32E), /* GPIO&FC mask */ \
847         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
848         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
849         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
850 
851 #define IO_MUX_GPIO3                                                                       \
852     0x00000008U, 0x00000000U,                                           /* Pin mask */     \
853         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0x22E), /* GPIO&FC mask */ \
854         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
855         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
856         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x1, 0x1)        /* SCTimer mask */
857 
858 #define IO_MUX_GPIO4                                                                       \
859     0x00000010U, 0x00000000U,                                           /* Pin mask */     \
860         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0x02D), /* GPIO&FC mask */ \
861         0x00000000U, 0x00800000U,                                       /* FSEL mask */    \
862         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
863         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x2, 0x2)        /* SCTimer mask */
864 
865 #define IO_MUX_GPIO5                                                                       \
866     0x00000020U, 0x00000000U,                                           /* Pin mask */     \
867         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0x430), /* GPIO&FC mask */ \
868         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
869         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
870         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
871 
872 #define IO_MUX_GPIO6                                                                       \
873     0x00000040U, 0x00000000U,                                           /* Pin mask */     \
874         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x418), /* GPIO&FC mask */ \
875         0x00000000U, 0x01000000U,                                       /* FSEL mask */    \
876         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
877         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
878 
879 #define IO_MUX_GPIO7                                                                       \
880     0x00000080U, 0x00000000U,                                           /* Pin mask */     \
881         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x0ED), /* GPIO&FC mask */ \
882         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
883         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
884         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
885 
886 #define IO_MUX_GPIO8                                                                       \
887     0x00000100U, 0x00000000U,                                           /* Pin mask */     \
888         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x2EE), /* GPIO&FC mask */ \
889         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
890         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
891         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
892 
893 #define IO_MUX_GPIO9                                                                       \
894     0x00000200U, 0x00000000U,                                           /* Pin mask */     \
895         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x3EE), /* GPIO&FC mask */ \
896         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
897         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
898         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
899 
900 #define IO_MUX_GPIO10                                                                      \
901     0x00000400U, 0x00000000U,                                           /* Pin mask */     \
902         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x430), /* GPIO&FC mask */ \
903         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
904         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
905         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
906 
907 #define IO_MUX_GPIO11                                                                      \
908     0x00000800U, 0x00000000U,                                           /* Pin mask */     \
909         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x040), /* GPIO&FC mask */ \
910         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
911         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
912         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0x100)        /* SCTimer mask */
913 
914 #define IO_MUX_GPIO12                                                                      \
915     0x00001000U, 0x00000000U,                                           /* Pin mask */     \
916         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 1, 0x080), /* GPIO&FC mask */ \
917         0x00000000U, 0x00008020U,                                       /* FSEL mask */    \
918         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4, 0x4),         /* CTimer mask */  \
919         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
920 
921 #define IO_MUX_GPIO13                                                                      \
922     0x00002000U, 0x00000000U,                                           /* Pin mask */     \
923         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x3EE), /* GPIO&FC mask */ \
924         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
925         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x8, 0x8),         /* CTimer mask */  \
926         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
927 
928 #define IO_MUX_GPIO14                                                                      \
929     0x00004000U, 0x00000000U,                                           /* Pin mask */     \
930         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x2EE), /* GPIO&FC mask */ \
931         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
932         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x10, 0x10),       /* CTimer mask */  \
933         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
934 
935 #define IO_MUX_GPIO15                                                                      \
936     0x00008000U, 0x00000000U,                                           /* Pin mask */     \
937         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x0ED), /* GPIO&FC mask */ \
938         0x00000000U, 0x00008600U,                                       /* FSEL mask */    \
939         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
940         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
941 
942 #define IO_MUX_GPIO16                                                                      \
943     0x00010000U, 0x00000000U,                                           /* Pin mask */     \
944         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x418), /* GPIO&FC mask */ \
945         0x00000000U, 0x00008600U,                                       /* FSEL mask */    \
946         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
947         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
948 
949 #define IO_MUX_GPIO17                                                                      \
950     0x00020000U, 0x00000000U,                                           /* Pin mask */     \
951         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x430), /* GPIO&FC mask */ \
952         0x00000000U, 0x00008600U,                                       /* FSEL mask */    \
953         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
954         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
955 
956 #define IO_MUX_GPIO18                                                                      \
957     0x00040000U, 0x00000000U,                                           /* Pin mask */     \
958         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x080), /* GPIO&FC mask */ \
959         0x00000000U, 0x0000C600U,                                       /* FSEL mask */    \
960         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
961         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
962 
963 #define IO_MUX_GPIO19                                                                      \
964     0x00080000U, 0x00000000U,                                           /* Pin mask */     \
965         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x430), /* GPIO&FC mask */ \
966         0x00000000U, 0x00008000U,                                       /* FSEL mask */    \
967         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
968         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
969 
970 #define IO_MUX_GPIO20                                                                      \
971     0x00100000U, 0x00000000U,                                           /* Pin mask */     \
972         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x418), /* GPIO&FC mask */ \
973         0x00000000U, 0x00008000U,                                       /* FSEL mask */    \
974         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
975         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
976 
977 #define IO_MUX_GPIO21                                                                      \
978     0x00200000U, 0x00000000U,                                           /* Pin mask */     \
979         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 2, 0x040), /* GPIO&FC mask */ \
980         0x00000000U, 0x00000000U,                                       /* FSEL mask */    \
981         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x20, 0x20),       /* CTimer mask */  \
982         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
983 
984 #define IO_MUX_GPIO22                                                                      \
985     0x00400000U, 0x00000000U,                                           /* Pin mask */     \
986         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x040), /* GPIO&FC mask */ \
987         0x00000000U, 0x04000000U,                                       /* FSEL mask */    \
988         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
989         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x4, 0)          /* SCTimer mask */
990 
991 #define IO_MUX_GPIO23                                                                      \
992     0x00800000U, 0x00000000U,                                           /* Pin mask */     \
993         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x080), /* GPIO&FC mask */ \
994         0x00000000U, 0x04000000U,                                       /* FSEL mask */    \
995         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
996         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x8, 0)          /* SCTimer mask */
997 
998 #define IO_MUX_GPIO24                                                                      \
999     0x01000000U, 0x00000000U,                                           /* Pin mask */     \
1000         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x3EE), /* GPIO&FC mask */ \
1001         0x00000000U, 0x40000000U,                                       /* FSEL mask */    \
1002         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x40, 0x40),       /* CTimer mask */  \
1003         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1004 
1005 #define IO_MUX_GPIO25                                                                      \
1006     0x02000000U, 0x00000000U,                                           /* Pin mask */     \
1007         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x0ED), /* GPIO&FC mask */ \
1008         0x00000000U, 0x00010000U,                                       /* FSEL mask */    \
1009         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x80, 0x80),       /* CTimer mask */  \
1010         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1011 
1012 #define IO_MUX_GPIO26                                                                      \
1013     0x04000000U, 0x00000000U,                                           /* Pin mask */     \
1014         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 3, 0x2EE), /* GPIO&FC mask */ \
1015         0x00000000U, 0x80000000U,                                       /* FSEL mask */    \
1016         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1017         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)      /* SCTimer mask */
1018 
1019 #define IO_MUX_GPIO27                                                                  \
1020     0x08000000U, 0x00000000U,                                       /* Pin mask */     \
1021         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
1022         0x00000000U, 0x10000000U,                                   /* FSEL mask */    \
1023         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1024         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x20, 0x20)  /* SCTimer mask */
1025 
1026 #define IO_MUX_GPIO28                                                                  \
1027     0x10000000U, 0x00000000U,                                       /* Pin mask */     \
1028         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
1029         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1030         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1031         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1032 
1033 #define IO_MUX_GPIO29                                                                  \
1034     0x20000000U, 0x00000000U,                                       /* Pin mask */     \
1035         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
1036         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1037         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1038         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1039 
1040 #define IO_MUX_GPIO30                                                                  \
1041     0x40000000U, 0x00000000U,                                       /* Pin mask */     \
1042         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
1043         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1044         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1045         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1046 
1047 #define IO_MUX_GPIO31                                                                  \
1048     0x80000000U, 0x00000000U,                                       /* Pin mask */     \
1049         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(0, 0, 0), /* GPIO&FC mask */ \
1050         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1051         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1052         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1053 
1054 #define IO_MUX_GPIO32                                                                  \
1055     0x00000000U, 0x00000001U,                                       /* Pin mask */     \
1056         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1057         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1058         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1059         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1060 
1061 #define IO_MUX_GPIO33                                                                  \
1062     0x00000000U, 0x00000002U,                                       /* Pin mask */     \
1063         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1064         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1065         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1066         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1067 
1068 #define IO_MUX_GPIO34                                                                  \
1069     0x00000000U, 0x00000004U,                                       /* Pin mask */     \
1070         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1071         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1072         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1073         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1074 
1075 #define IO_MUX_GPIO35                                                                  \
1076     0x00000000U, 0x00000008U,                                       /* Pin mask */     \
1077         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1078         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1079         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1080         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x40, 0x40)  /* SCTimer mask */
1081 
1082 #define IO_MUX_GPIO36                                                                  \
1083     0x00000000U, 0x00000010U,                                       /* Pin mask */     \
1084         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1085         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1086         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1087         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x80, 0x80)  /* SCTimer mask */
1088 
1089 #define IO_MUX_GPIO37                                                                  \
1090     0x00000000U, 0x00000020U,                                       /* Pin mask */     \
1091         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1092         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1093         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x100, 0x100), /* CTimer mask */  \
1094         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1095 
1096 #define IO_MUX_GPIO38                                                                  \
1097     0x00000000U, 0x00000040U,                                       /* Pin mask */     \
1098         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1099         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1100         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x200, 0x200), /* CTimer mask */  \
1101         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1102 
1103 #define IO_MUX_GPIO39                                                                  \
1104     0x00000000U, 0x00000080U,                                       /* Pin mask */     \
1105         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1106         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1107         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x400, 0x400), /* CTimer mask */  \
1108         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1109 
1110 #define IO_MUX_GPIO40                                                                  \
1111     0x00000000U, 0x00000100U,                                       /* Pin mask */     \
1112         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1113         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1114         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1115         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1116 
1117 #define IO_MUX_GPIO41                                                                  \
1118     0x00000000U, 0x00000200U,                                       /* Pin mask */     \
1119         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1120         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1121         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1122         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1123 
1124 #define IO_MUX_GPIO42                                                                  \
1125     0x00000000U, 0x00000400U,                                       /* Pin mask */     \
1126         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1127         0x00000000U, 0x00000800U,                                   /* FSEL mask */    \
1128         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1129         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1130 
1131 #define IO_MUX_GPIO43                                                                  \
1132     0x00000000U, 0x00000800U,                                       /* Pin mask */     \
1133         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1134         0x00000000U, 0x00000800U,                                   /* FSEL mask */    \
1135         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1136         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1137 
1138 #define IO_MUX_GPIO44                                                                  \
1139     0x00000000U, 0x00001000U,                                       /* Pin mask */     \
1140         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1141         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1142         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1143         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1144 
1145 #define IO_MUX_GPIO45                                                                  \
1146     0x00000000U, 0x00002000U,                                       /* Pin mask */     \
1147         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1148         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1149         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1150         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1151 
1152 #define IO_MUX_GPIO46                                                                  \
1153     0x00000000U, 0x00004000U,                                       /* Pin mask */     \
1154         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1155         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1156         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1157         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1158 
1159 #define IO_MUX_GPIO47                                                                  \
1160     0x00000000U, 0x00008000U,                                       /* Pin mask */     \
1161         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1162         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1163         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1164         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1165 
1166 #define IO_MUX_GPIO48                                                                  \
1167     0x00000000U, 0x00010000U,                                       /* Pin mask */     \
1168         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1169         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1170         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1171         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1172 
1173 #define IO_MUX_GPIO49                                                                  \
1174     0x00000000U, 0x00020000U,                                       /* Pin mask */     \
1175         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1176         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1177         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1178         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1179 
1180 #define IO_MUX_GPIO50                                                                  \
1181     0x00000000U, 0x00040000U,                                       /* Pin mask */     \
1182         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1183         0x00000000U, 0x00022000U,                                   /* FSEL mask */    \
1184         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1185         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1186 
1187 #define IO_MUX_GPIO51                                                                      \
1188     0x00000000U, 0x00080000U,                                           /* Pin mask */     \
1189         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x040), /* GPIO&FC mask */ \
1190         0x00000000U, 0x00040810U,                                       /* FSEL mask */    \
1191         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x800, 0x800),     /* CTimer mask */  \
1192         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1193 
1194 #define IO_MUX_GPIO52                                                                      \
1195     0x00000000U, 0x00100000U,                                           /* Pin mask */     \
1196         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x080), /* GPIO&FC mask */ \
1197         0x00000000U, 0x00080810U,                                       /* FSEL mask */    \
1198         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1000, 0x1000),   /* CTimer mask */  \
1199         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1200 
1201 #define IO_MUX_GPIO53                                                                      \
1202     0x00000000U, 0x00200000U,                                           /* Pin mask */     \
1203         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x418), /* GPIO&FC mask */ \
1204         0x00000000U, 0x00100810U,                                       /* FSEL mask */    \
1205         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x2000, 0x2000),   /* CTimer mask */  \
1206         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1207 
1208 #define IO_MUX_GPIO54                                                                     \
1209     0x00000000U, 0x00400000U,                                          /* Pin mask */     \
1210         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0xED), /* GPIO&FC mask */ \
1211         0x00000000U, 0x00200810U,                                      /* FSEL mask */    \
1212         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4000, 0x4000),  /* CTimer mask */  \
1213         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)           /* SCTimer mask */
1214 
1215 #define IO_MUX_GPIO55                                                                      \
1216     0x00000000U, 0x00800000U,                                           /* Pin mask */     \
1217         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x430), /* GPIO&FC mask */ \
1218         0x00000000U, 0x00400000U,                                       /* FSEL mask */    \
1219         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1220         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0x200)        /* SCTimer mask */
1221 
1222 #define IO_MUX_GPIO56                                                                      \
1223     0x00000000U, 0x01000000U,                                           /* Pin mask */     \
1224         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x2EE), /* GPIO&FC mask */ \
1225         0x00000000U, 0x08000800U,                                       /* FSEL mask */    \
1226         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1227         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1228 
1229 #define IO_MUX_GPIO57                                                                      \
1230     0x00000000U, 0x02000000U,                                           /* Pin mask */     \
1231         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 6, 0x3EE), /* GPIO&FC mask */ \
1232         0x00000000U, 0x08000800U,                                       /* FSEL mask */    \
1233         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1234         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1235 
1236 #define IO_MUX_GPIO58                                                                  \
1237     0x00000000U, 0x04000000U,                                       /* Pin mask */     \
1238         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1239         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1240         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1241         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1242 
1243 #define IO_MUX_GPIO59                                                                  \
1244     0x00000000U, 0x08000000U,                                       /* Pin mask */     \
1245         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1246         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1247         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1248         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1249 
1250 #define IO_MUX_GPIO60                                                                  \
1251     0x00000000U, 0x10000000U,                                       /* Pin mask */     \
1252         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1253         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1254         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1255         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1256 
1257 #define IO_MUX_GPIO61                                                                  \
1258     0x00000000U, 0x20000000U,                                       /* Pin mask */     \
1259         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1260         0x00000000U, 0x20000000U,                                   /* FSEL mask */    \
1261         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1262         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1263 
1264 #define IO_MUX_GPIO62                                                                  \
1265     0x00000000U, 0x40000000U,                                       /* Pin mask */     \
1266         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1267         0x00000000U, 0x04000000U,                                   /* FSEL mask */    \
1268         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1269         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1270 
1271 #define IO_MUX_GPIO63                                                                  \
1272     0x00000000U, 0x80000000U,                                       /* Pin mask */     \
1273         IO_MUX_GPIO_FC_MASK(1, 0, 0), IO_MUX_GPIO_FC_MASK(2, 0, 0), /* GPIO&FC mask */ \
1274         0x00000000U, 0x04000000U,                                   /* FSEL mask */    \
1275         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1276         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1277 
1278 #define IO_MUX_SGPIO0                                                                  \
1279     0x00000000U, 0x00000001U,                                       /* Pin mask */     \
1280         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1281         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1282         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1283         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1284 
1285 #define IO_MUX_SGPIO1                                                                  \
1286     0x00000000U, 0x00000002U,                                       /* Pin mask */     \
1287         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1288         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1289         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1290         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1291 
1292 #define IO_MUX_SGPIO2                                                                  \
1293     0x00000000U, 0x00000004U,                                       /* Pin mask */     \
1294         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1295         0x00000000U, 0x00000002U,                                   /* FSEL mask */    \
1296         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1297         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1298 
1299 #define IO_MUX_SGPIO3                                                                  \
1300     0x00000000U, 0x00000008U,                                       /* Pin mask */     \
1301         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1302         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1303         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1304         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x40, 0x40)  /* SCTimer mask */
1305 
1306 #define IO_MUX_SGPIO4                                                                  \
1307     0x00000000U, 0x00000010U,                                       /* Pin mask */     \
1308         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1309         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1310         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1311         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x80, 0x80)  /* SCTimer mask */
1312 
1313 #define IO_MUX_SGPIO5                                                                  \
1314     0x00000000U, 0x00000020U,                                       /* Pin mask */     \
1315         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1316         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1317         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x100, 0x100), /* CTimer mask */  \
1318         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1319 
1320 #define IO_MUX_SGPIO6                                                                  \
1321     0x00000000U, 0x00000040U,                                       /* Pin mask */     \
1322         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1323         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1324         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x200, 0x200), /* CTimer mask */  \
1325         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1326 
1327 #define IO_MUX_SGPIO7                                                                  \
1328     0x00000000U, 0x00000080U,                                       /* Pin mask */     \
1329         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1330         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1331         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x400, 0x400), /* CTimer mask */  \
1332         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1333 
1334 #define IO_MUX_SGPIO8                                                                  \
1335     0x00000000U, 0x00000100U,                                       /* Pin mask */     \
1336         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1337         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1338         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1339         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1340 
1341 #define IO_MUX_SGPIO9                                                                  \
1342     0x00000000U, 0x00000200U,                                       /* Pin mask */     \
1343         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1344         0x00000000U, 0x00000008U,                                   /* FSEL mask */    \
1345         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1346         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1347 
1348 #define IO_MUX_SGPIO10                                                                 \
1349     0x00000000U, 0x00000400U,                                       /* Pin mask */     \
1350         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1351         0x00000000U, 0x00000800U,                                   /* FSEL mask */    \
1352         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1353         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1354 
1355 #define IO_MUX_SGPIO11                                                                 \
1356     0x00000000U, 0x00000800U,                                       /* Pin mask */     \
1357         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1358         0x00000000U, 0x00000800U,                                   /* FSEL mask */    \
1359         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1360         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1361 
1362 #define IO_MUX_SGPIO12                                                                 \
1363     0x00000000U, 0x00001000U,                                       /* Pin mask */     \
1364         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1365         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1366         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1367         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1368 
1369 #define IO_MUX_SGPIO13                                                                 \
1370     0x00000000U, 0x00002000U,                                       /* Pin mask */     \
1371         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1372         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1373         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1374         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1375 
1376 #define IO_MUX_SGPIO14                                                                 \
1377     0x00000000U, 0x00004000U,                                       /* Pin mask */     \
1378         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1379         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1380         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1381         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1382 
1383 #define IO_MUX_SGPIO15                                                                 \
1384     0x00000000U, 0x00008000U,                                       /* Pin mask */     \
1385         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1386         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1387         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1388         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1389 
1390 #define IO_MUX_SGPIO16                                                                 \
1391     0x00000000U, 0x00010000U,                                       /* Pin mask */     \
1392         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1393         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1394         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1395         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1396 
1397 #define IO_MUX_SGPIO17                                                                 \
1398     0x00000000U, 0x00020000U,                                       /* Pin mask */     \
1399         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1400         0x00000000U, 0x00001800U,                                   /* FSEL mask */    \
1401         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1402         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1403 
1404 #define IO_MUX_SGPIO18                                                                 \
1405     0x00000000U, 0x00040000U,                                       /* Pin mask */     \
1406         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1407         0x00000000U, 0x00022000U,                                   /* FSEL mask */    \
1408         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1409         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1410 
1411 #define IO_MUX_SGPIO19                                                                     \
1412     0x00000000U, 0x00080000U,                                           /* Pin mask */     \
1413         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x040), /* GPIO&FC mask */ \
1414         0x00000000U, 0x00040810U,                                       /* FSEL mask */    \
1415         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x800, 0x800),     /* CTimer mask */  \
1416         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1417 
1418 #define IO_MUX_SGPIO20                                                                     \
1419     0x00000000U, 0x00100000U,                                           /* Pin mask */     \
1420         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x080), /* GPIO&FC mask */ \
1421         0x00000000U, 0x00080810U,                                       /* FSEL mask */    \
1422         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x1000, 0x1000),   /* CTimer mask */  \
1423         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1424 
1425 #define IO_MUX_SGPIO21                                                                     \
1426     0x00000000U, 0x00200000U,                                           /* Pin mask */     \
1427         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x418), /* GPIO&FC mask */ \
1428         0x00000000U, 0x00100810U,                                       /* FSEL mask */    \
1429         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x2000, 0x2000),   /* CTimer mask */  \
1430         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1431 
1432 #define IO_MUX_SGPIO22                                                                    \
1433     0x00000000U, 0x00400000U,                                          /* Pin mask */     \
1434         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0xED), /* GPIO&FC mask */ \
1435         0x00000000U, 0x00200810U,                                      /* FSEL mask */    \
1436         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0x4000, 0x4000),  /* CTimer mask */  \
1437         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)           /* SCTimer mask */
1438 
1439 #define IO_MUX_SGPIO23                                                                     \
1440     0x00000000U, 0x00800000U,                                           /* Pin mask */     \
1441         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x430), /* GPIO&FC mask */ \
1442         0x00000000U, 0x00400000U,                                       /* FSEL mask */    \
1443         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1444         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0x200)        /* SCTimer mask */
1445 
1446 #define IO_MUX_SGPIO24                                                                     \
1447     0x00000000U, 0x01000000U,                                           /* Pin mask */     \
1448         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x2EE), /* GPIO&FC mask */ \
1449         0x00000000U, 0x08000800U,                                       /* FSEL mask */    \
1450         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1451         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1452 
1453 #define IO_MUX_SGPIO25                                                                     \
1454     0x00000000U, 0x02000000U,                                           /* Pin mask */     \
1455         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 6, 0x3EE), /* GPIO&FC mask */ \
1456         0x00000000U, 0x08000800U,                                       /* FSEL mask */    \
1457         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1458         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)            /* SCTimer mask */
1459 
1460 #define IO_MUX_SGPIO26                                                                 \
1461     0x00000000U, 0x04000000U,                                       /* Pin mask */     \
1462         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1463         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1464         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1465         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1466 
1467 #define IO_MUX_SGPIO27                                                                 \
1468     0x00000000U, 0x08000000U,                                       /* Pin mask */     \
1469         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1470         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1471         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1472         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1473 
1474 #define IO_MUX_SGPIO28                                                                 \
1475     0x00000000U, 0x10000000U,                                       /* Pin mask */     \
1476         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1477         0x00000000U, 0x02000000U,                                   /* FSEL mask */    \
1478         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1479         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1480 
1481 #define IO_MUX_SGPIO29                                                                 \
1482     0x00000000U, 0x20000000U,                                       /* Pin mask */     \
1483         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1484         0x00000000U, 0x20000000U,                                   /* FSEL mask */    \
1485         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1486         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1487 
1488 #define IO_MUX_SGPIO30                                                                 \
1489     0x00000000U, 0x40000000U,                                       /* Pin mask */     \
1490         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1491         0x00000000U, 0x04000000U,                                   /* FSEL mask */    \
1492         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1493         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1494 
1495 #define IO_MUX_SGPIO31                                                                 \
1496     0x00000000U, 0x80000000U,                                       /* Pin mask */     \
1497         IO_MUX_GPIO_FC_MASK(2, 0, 0), IO_MUX_GPIO_FC_MASK(1, 0, 0), /* GPIO&FC mask */ \
1498         0x00000000U, 0x04000000U,                                   /* FSEL mask */    \
1499         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),         /* CTimer mask */  \
1500         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0, 0)        /* SCTimer mask */
1501 
1502 #define IO_MUX_AON_CAPTURE                                                                 \
1503     0x04000000U, 0x00000000U,                                           /* Pin mask */     \
1504         IO_MUX_GPIO_FC_MASK(0, 0, 0), IO_MUX_GPIO_FC_MASK(1, 3, 0x2EE), /* GPIO&FC mask */ \
1505         0x00000000U, 0x80000000U,                                       /* FSEL mask */    \
1506         IO_MUX_CTIMER_MASK(0, 0), IO_MUX_CTIMER_MASK(0, 0),             /* CTimer mask */  \
1507         IO_MUX_SCTIMER_MASK(0, 0), IO_MUX_SCTIMER_MASK(0x10, 0x10)      /* SCTimer mask */
1508 
1509 /*! @brief IO MUX pin configuration.
1510       Bit [1:0] for pull configuration
1511       Bit [3:2] for drive strength configuration
1512  */
1513 typedef enum
1514 {
1515     IO_MUX_PinConfigNoPullDriveWeakest   = 0x0U,
1516     IO_MUX_PinConfigNoPullDriveWeak      = 0x4U,
1517     IO_MUX_PinConfigNoPullDriveStrong    = 0x8U,
1518     IO_MUX_PinConfigNoPullDriveStrongest = 0xCU,
1519 
1520     IO_MUX_PinConfigPullUpDriveWeakest   = 0x1U,
1521     IO_MUX_PinConfigPullUpDriveWeak      = 0x5U,
1522     IO_MUX_PinConfigPullUpDriveStrong    = 0x9U,
1523     IO_MUX_PinConfigPullUpDriveStrongest = 0xDU,
1524 
1525     IO_MUX_PinConfigPullDownDriveWeakest   = 0x2U,
1526     IO_MUX_PinConfigPullDownDriveWeak      = 0x6U,
1527     IO_MUX_PinConfigPullDownDriveStrong    = 0xAU,
1528     IO_MUX_PinConfigPullDownDriveStrongest = 0xEU,
1529 
1530     IO_MUX_PinConfigNoPull   = IO_MUX_PinConfigNoPullDriveStrongest,
1531     IO_MUX_PinConfigPullUp   = IO_MUX_PinConfigPullUpDriveStrongest,
1532     IO_MUX_PinConfigPullDown = IO_MUX_PinConfigPullDownDriveStrongest,
1533 } io_mux_pin_config_t;
1534 
1535 /*! @brief IO MUX sleep pin level */
1536 typedef enum
1537 {
1538     IO_MUX_SleepPinLevelLow       = 0U,
1539     IO_MUX_SleepPinLevelHigh      = 1U,
1540     IO_MUX_SleepPinLevelUnchanged = 2U,
1541 } io_mux_sleep_pin_level_t;
1542 
1543 /*@}*/
1544 /*******************************************************************************
1545  * API
1546  ******************************************************************************/
1547 #if defined(__cplusplus)
1548 extern "C" {
1549 #endif /*__cplusplus */
1550 
1551 /*! @name Configuration */
1552 /*@{*/
1553 
1554 /*!
1555  * @brief Sets the IO_MUX pin mux mode.
1556  * @note The parameters can be filled with the pin function ID macros.
1557  *
1558  * This is an example to set the GPIO2/GPIO3 as the Flexcomm0 UART RX/TX:
1559  * @code
1560  * IO_MUX_SetPinMux(IO_MUX_FC0_USART_DATA);
1561  * @endcode
1562  *
1563  * This is an example to set the GPIO6/GPIO10 as Flexcomm1 I2C SDA/SCL:
1564  * @code
1565  * IO_MUX_SetPinMux(IO_MUX_FC1_I2C_6_10);
1566  * @endcode
1567  *
1568  * @param pinLowMask     The GPIO0-31 pins mask.
1569  * @param pinHighMask    The GPIO32-63 pins mask.
1570  * @param gpioFcSetMask  The GPIO and Flexcomm registers mask to set, defined by IO_MUX_GPIO_FC_MASK()
1571  * @param gpioFcClrMask  The GPIO and Flexcomm registers mask to clear, defined by IO_MUX_GPIO_FC_MASK()
1572  * @param fselSetMask    The FSEL register mask to set
1573  * @param fselClrMask    The FSEL register mask to clear
1574  * @param ctimerSetMask  The C_TIMER_IN/C_TIMER_OUT register mask to set, defined by IO_MUX_CTIMER_MASK()
1575  * @param ctimerClrMask  The C_TIMER_IN/C_TIMER_OUT register mask to clear, defined by IO_MUX_CTIMER_MASK()
1576  * @param sctimerSetMask The SC_TIMER register mask to set
1577  * @param sctimerClrMask The SC_TIMER register mask to clear
1578  */
IO_MUX_SetPinMux(uint32_t pinLowMask,uint32_t pinHighMask,uint32_t gpioFcSetMask,uint32_t gpioFcClrMask,uint32_t fselSetMask,uint32_t fselClrMask,uint32_t ctimerSetMask,uint32_t ctimerClrMask,uint32_t sctimerSetMask,uint32_t sctimerClrMask)1579 static inline void IO_MUX_SetPinMux(uint32_t pinLowMask,
1580                                     uint32_t pinHighMask,
1581                                     uint32_t gpioFcSetMask,
1582                                     uint32_t gpioFcClrMask,
1583                                     uint32_t fselSetMask,
1584                                     uint32_t fselClrMask,
1585                                     uint32_t ctimerSetMask,
1586                                     uint32_t ctimerClrMask,
1587                                     uint32_t sctimerSetMask,
1588                                     uint32_t sctimerClrMask)
1589 {
1590     volatile uint32_t *fcBase = (volatile uint32_t *)&MCI_IO_MUX->FC0;
1591     uint32_t aonMask;
1592 
1593     /* Fist clear all conflicted io_mux function. */
1594     if (IO_MUX_SGPIO_FLAG(gpioFcClrMask) != 0U)
1595     {
1596         MCI_IO_MUX->S_GPIO &= ~pinHighMask;
1597     }
1598     if (IO_MUX_GPIO_FLAG(gpioFcClrMask) != 0U)
1599     {
1600         MCI_IO_MUX->GPIO_GRP0 &= ~pinLowMask;
1601         MCI_IO_MUX->GPIO_GRP1 &= ~pinHighMask;
1602     }
1603 
1604     if (IO_MUX_FC_OFFSET(gpioFcClrMask) == 0xFU) /* Special case for SDIO */
1605     {
1606         assert(fselSetMask == MCI_IO_MUX_FSEL_SEL_SDIO_MASK);
1607         MCI_IO_MUX->FC1 &= ~0x080UL;
1608         MCI_IO_MUX->FC2 &= ~0x4FDUL;
1609         MCI_IO_MUX->FC3 &= ~0x438UL;
1610     }
1611     else if (IO_MUX_FC_MASK(gpioFcClrMask) != 0U)
1612     {
1613         *(fcBase + IO_MUX_FC_OFFSET(gpioFcClrMask)) &= ~IO_MUX_FC_MASK(gpioFcClrMask);
1614     }
1615     else
1616     {
1617         /* FC register change not needed. */
1618     }
1619 
1620     if (fselClrMask != 0U)
1621     {
1622         MCI_IO_MUX->FSEL &= ~fselClrMask;
1623     }
1624     if (IO_MUX_CTIMER_IN_MASK(ctimerClrMask) != 0U)
1625     {
1626         MCI_IO_MUX->C_TIMER_IN &= ~IO_MUX_CTIMER_IN_MASK(ctimerClrMask);
1627     }
1628     if (IO_MUX_CTIMER_OUT_MASK(ctimerClrMask) != 0U)
1629     {
1630         MCI_IO_MUX->C_TIMER_OUT &= ~IO_MUX_CTIMER_OUT_MASK(ctimerClrMask);
1631     }
1632     if (sctimerClrMask != 0U)
1633     {
1634         MCI_IO_MUX->SC_TIMER &= ~sctimerClrMask;
1635     }
1636 
1637     /* Now set the IO_MUX for the function. */
1638     if (IO_MUX_SGPIO_FLAG(gpioFcSetMask) != 0U)
1639     {
1640         MCI_IO_MUX->S_GPIO |= pinHighMask;
1641     }
1642     if (IO_MUX_GPIO_FLAG(gpioFcSetMask) != 0U)
1643     {
1644         MCI_IO_MUX->GPIO_GRP0 |= pinLowMask;
1645         MCI_IO_MUX->GPIO_GRP1 |= pinHighMask;
1646     }
1647 
1648     if (IO_MUX_FC_MASK(gpioFcSetMask) != 0U)
1649     {
1650         *(fcBase + IO_MUX_FC_OFFSET(gpioFcSetMask)) |= IO_MUX_FC_MASK(gpioFcSetMask);
1651     }
1652 
1653     if (fselSetMask != 0U)
1654     {
1655         MCI_IO_MUX->FSEL |= fselSetMask;
1656     }
1657     if (IO_MUX_CTIMER_IN_MASK(ctimerSetMask) != 0U)
1658     {
1659         MCI_IO_MUX->C_TIMER_IN |= IO_MUX_CTIMER_IN_MASK(ctimerSetMask);
1660     }
1661     if (IO_MUX_CTIMER_OUT_MASK(ctimerSetMask) != 0U)
1662     {
1663         MCI_IO_MUX->C_TIMER_OUT |= IO_MUX_CTIMER_OUT_MASK(ctimerSetMask);
1664     }
1665     if (sctimerSetMask != 0U)
1666     {
1667         MCI_IO_MUX->SC_TIMER |= sctimerSetMask;
1668     }
1669 
1670     /* Last, enable IO function */
1671     aonMask = pinLowMask & AON_SOC_CIU_MCI_IOMUX_EN0_EN_27_22_MASK;
1672     SOCCTRL->MCI_IOMUX_EN0 |= (pinLowMask & ~aonMask);
1673     SOCCTRL->MCI_IOMUX_EN1 |= pinHighMask;
1674     AON_SOC_CIU->MCI_IOMUX_EN0 |= aonMask;
1675 }
1676 
1677 /*!
1678  * @brief Sets the IO_MUX pin mux pull up/down configuartion.
1679  *
1680  * This is an example to set the GPIO2 pin to pull down:
1681  * @code
1682  * IO_MUX_SetPinConfig(2U, IO_MUX_PinConfigPullDown);
1683  * @endcode
1684  *
1685  * @param pin The GPIO pin index to config.
1686  * @param config The pull up/down setting for the pin.
1687  */
IO_MUX_SetPinConfig(uint32_t pin,io_mux_pin_config_t config)1688 static inline void IO_MUX_SetPinConfig(uint32_t pin, io_mux_pin_config_t config)
1689 {
1690     __IO uint32_t *pullReg, *driveReg;
1691     uint32_t shift;
1692     uint32_t pullVal, driveVal;
1693 
1694     assert(pin < 64U);
1695 
1696     shift    = (pin % 16U) * 2U;
1697     pullVal  = (uint32_t)config & 0x3U;
1698     driveVal = ((uint32_t)config >> 2) & 0x3U;
1699     if (pin < 22U || pin > 27U)
1700     {
1701         pullReg  = &SOCCTRL->PAD_PU_PD_EN0 + pin / 16U;
1702         driveReg = &SOCCTRL->SR_CONFIG0 + pin / 16U;
1703     }
1704     else
1705     {
1706         pullReg  = &AON_SOC_CIU->PAD_PU_PD_EN1;
1707         driveReg = &AON_SOC_CIU->SR_CONFIG1;
1708     }
1709 
1710     *pullReg  = (*pullReg & ~(3UL << shift)) | (pullVal << shift);
1711     *driveReg = (*driveReg & ~(3UL << shift)) | (driveVal << shift);
1712 }
1713 
1714 /*!
1715  * @brief Sets IO output level in sleep mode. If level set to IO_MUX_SleepPinLevelUnchanged,
1716  *        the IO configuration is same as the active mode.
1717  *
1718  * This is an example to set the GPIO2 pin to output high during sleep:
1719  * @code
1720  * IO_MUX_SetPinOutLevelInSleep(2U, IO_MUX_SleepPinLevelHigh);
1721  * @endcode
1722  *
1723  * @param pin The GPIO pin index to config.
1724  * @param level Output level in sleep.
1725  */
IO_MUX_SetPinOutLevelInSleep(uint32_t pin,io_mux_sleep_pin_level_t level)1726 static inline void IO_MUX_SetPinOutLevelInSleep(uint32_t pin, io_mux_sleep_pin_level_t level)
1727 {
1728     __IO uint32_t *regEn, *regVal;
1729     uint32_t mask, shift;
1730 
1731     assert(pin < 64U);
1732 
1733     shift = pin % 32U;
1734     mask  = 1UL << shift;
1735 
1736     if (pin < 22U || pin > 27U)
1737     {
1738         if (pin < 32U)
1739         {
1740             regEn  = &SOCCTRL->PAD_SLP_EN0;
1741             regVal = &SOCCTRL->PAD_SLP_VAL0;
1742         }
1743         else
1744         {
1745             regEn  = &SOCCTRL->PAD_SLP_EN1;
1746             regVal = &SOCCTRL->PAD_SLP_VAL1;
1747         }
1748     }
1749     else
1750     {
1751         regEn  = &AON_SOC_CIU->PAD_SLP_EN0;
1752         regVal = &AON_SOC_CIU->PAD_SLP_VAL0;
1753     }
1754 
1755     if (level == IO_MUX_SleepPinLevelUnchanged)
1756     {
1757         *regEn &= ~mask;
1758     }
1759     else
1760     {
1761         *regEn |= mask;
1762         *regVal = ((*regVal) & ~mask) | (((uint32_t)level) << shift);
1763     }
1764 }
1765 
1766 /*!
1767  * @brief Sets RF Switch Pin 0-3 output level in sleep mode. If level set to
1768  *        IO_MUX_SleepPinLevelUnchanged, the IO configuration is same as the active mode.
1769  *
1770  * This is an example to set the RF_CNTL0 pin to output low during sleep:
1771  * @code
1772  * IO_MUX_SetRfPinOutLevelInSleep(0U, IO_MUX_SleepPinLevelLow);
1773  * @endcode
1774  *
1775  * @param pin The RF Switch pin index to config.
1776  * @param level Output level in sleep.
1777  */
IO_MUX_SetRfPinOutLevelInSleep(uint32_t pin,io_mux_sleep_pin_level_t level)1778 static inline void IO_MUX_SetRfPinOutLevelInSleep(uint32_t pin, io_mux_sleep_pin_level_t level)
1779 {
1780     uint32_t mask;
1781 
1782     assert(pin < 4U);
1783 
1784     mask = 0x10001UL << pin;
1785 
1786     if (level == IO_MUX_SleepPinLevelUnchanged)
1787     {
1788         SOCCTRL->PAD_RF_SW_SLP_CONFIG &= ~mask;
1789     }
1790     else
1791     {
1792         SOCCTRL->PAD_RF_SW_SLP_CONFIG =
1793             (SOCCTRL->PAD_RF_SW_SLP_CONFIG & ~mask) | (1UL << pin) | (((uint32_t)level) << (pin + 16U));
1794     }
1795 }
1796 
1797 /*@}*/
1798 
1799 #if defined(__cplusplus)
1800 }
1801 #endif /*__cplusplus */
1802 
1803 /*! @}*/
1804 
1805 #endif /* _FSL_IO_MUX_H_ */
1806