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