1 /**
2  * @file mxc_pins.c
3  * @brief      This file contains constant pin configurations for the peripherals.
4  */
5 
6 /******************************************************************************
7  *
8  * Copyright (C) 2022-2023 Maxim Integrated Products, Inc. (now owned by
9  * Analog Devices, Inc.),
10  * Copyright (C) 2023-2024 Analog Devices, Inc.
11  *
12  * Licensed under the Apache License, Version 2.0 (the "License");
13  * you may not use this file except in compliance with the License.
14  * You may obtain a copy of the License at
15  *
16  *     http://www.apache.org/licenses/LICENSE-2.0
17  *
18  * Unless required by applicable law or agreed to in writing, software
19  * distributed under the License is distributed on an "AS IS" BASIS,
20  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  * See the License for the specific language governing permissions and
22  * limitations under the License.
23  *
24  ******************************************************************************/
25 
26 #include "gpio.h"
27 #include "mxc_device.h"
28 
29 /***** Definitions *****/
30 
31 /***** Global Variables *****/
32 
33 // clang-format off
34 const mxc_gpio_cfg_t gpio_cfg_i2c0 = { MXC_GPIO0, (MXC_GPIO_PIN_0 | MXC_GPIO_PIN_1),
35                                        MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
36                                        MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
37 const mxc_gpio_cfg_t gpio_cfg_i2c1 = { MXC_GPIO2, (MXC_GPIO_PIN_18 | MXC_GPIO_PIN_19),
38                                        MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
39                                        MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
40 const mxc_gpio_cfg_t gpio_cfg_i2c2 = { MXC_GPIO0, (MXC_GPIO_PIN_6 | MXC_GPIO_PIN_7),
41                                        MXC_GPIO_FUNC_ALT4, MXC_GPIO_PAD_NONE,
42                                        MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
43 const mxc_gpio_cfg_t gpio_cfg_i2c2b = { MXC_GPIO1, (MXC_GPIO_PIN_20 | MXC_GPIO_PIN_21),
44                                         MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
45                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
46 const mxc_gpio_cfg_t gpio_cfg_i2c2c = { MXC_GPIO1, (MXC_GPIO_PIN_30 | MXC_GPIO_PIN_31),
47                                         MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE,
48                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
49 
50 const mxc_gpio_cfg_t gpio_cfg_uart0 = { MXC_GPIO1, (MXC_GPIO_PIN_8 | MXC_GPIO_PIN_9),
51                                         MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
52                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
53 const mxc_gpio_cfg_t gpio_cfg_uart0_flow = { MXC_GPIO1, (MXC_GPIO_PIN_6 | MXC_GPIO_PIN_7),
54                                              MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
55                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
56 const mxc_gpio_cfg_t gpio_cfg_uart1 = { MXC_GPIO1, (MXC_GPIO_PIN_12 | MXC_GPIO_PIN_13),
57                                         MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
58                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
59 const mxc_gpio_cfg_t gpio_cfg_uart1_flow = { MXC_GPIO1, (MXC_GPIO_PIN_10 | MXC_GPIO_PIN_11),
60                                              MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
61                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
62 const mxc_gpio_cfg_t gpio_cfg_uart2 = { MXC_GPIO1, (MXC_GPIO_PIN_16 | MXC_GPIO_PIN_17),
63                                         MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
64                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
65 const mxc_gpio_cfg_t gpio_cfg_uart2_flow = { MXC_GPIO1, (MXC_GPIO_PIN_14 | MXC_GPIO_PIN_15),
66                                              MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
67                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
68 const mxc_gpio_cfg_t gpio_cfg_uart3 = { MXC_GPIO1, (MXC_GPIO_PIN_20 | MXC_GPIO_PIN_21),
69                                         MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
70                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
71 const mxc_gpio_cfg_t gpio_cfg_uart3_flow = { MXC_GPIO1, (MXC_GPIO_PIN_18 | MXC_GPIO_PIN_19),
72                                              MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
73                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
74 const mxc_gpio_cfg_t gpio_cfg_uart4 = { MXC_GPIO1, (MXC_GPIO_PIN_28 | MXC_GPIO_PIN_29),
75                                         MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
76                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
77 const mxc_gpio_cfg_t gpio_cfg_uart4b = { MXC_GPIO2, (MXC_GPIO_PIN_26 | MXC_GPIO_PIN_27),
78                                          MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE,
79                                          MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
80 const mxc_gpio_cfg_t gpio_cfg_uart4c = { MXC_GPIO1, (MXC_GPIO_PIN_1 | MXC_GPIO_PIN_2),
81                                          MXC_GPIO_FUNC_ALT4, MXC_GPIO_PAD_NONE,
82                                          MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
83 const mxc_gpio_cfg_t gpio_cfg_uart4_flow = { MXC_GPIO2, (MXC_GPIO_PIN_0 | MXC_GPIO_PIN_1),
84                                              MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
85                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
86 const mxc_gpio_cfg_t gpio_cfg_uart4b_flow = { MXC_GPIO2, (MXC_GPIO_PIN_28 | MXC_GPIO_PIN_29),
87                                               MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE,
88                                               MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
89 const mxc_gpio_cfg_t gpio_cfg_uart4c_flow = { MXC_GPIO1, (MXC_GPIO_PIN_3 | MXC_GPIO_PIN_4),
90                                               MXC_GPIO_FUNC_ALT4, MXC_GPIO_PAD_NONE,
91                                               MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
92 const mxc_gpio_cfg_t gpio_cfg_uart5 = { MXC_GPIO1, (MXC_GPIO_PIN_30 | MXC_GPIO_PIN_31),
93                                         MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
94                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
95 const mxc_gpio_cfg_t gpio_cfg_uart5b = { MXC_GPIO2, (MXC_GPIO_PIN_30 | MXC_GPIO_PIN_31),
96                                          MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE,
97                                          MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
98 const mxc_gpio_cfg_t gpio_cfg_uart5_flow = { MXC_GPIO2, (MXC_GPIO_PIN_8 | MXC_GPIO_PIN_9),
99                                              MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
100                                              MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
101 const mxc_gpio_cfg_t gpio_cfg_uart5b_flow = { MXC_GPIO2, (MXC_GPIO_PIN_4 | MXC_GPIO_PIN_5),
102                                               MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE,
103                                               MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
104 // NOTE: uart5b flow control is split across port pins 0.31 and 1.0
105 const mxc_gpio_cfg_t gpio_cfg_uart5c_P1_flow = { MXC_GPIO1, MXC_GPIO_PIN_0, MXC_GPIO_FUNC_ALT4,
106                                                  MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
107 const mxc_gpio_cfg_t gpio_cfg_uart5c_P0_flow = { MXC_GPIO0, MXC_GPIO_PIN_31, MXC_GPIO_FUNC_ALT4,
108                                                  MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
109 
110 const mxc_gpio_cfg_t gpio_cfg_spi0 = {
111     MXC_GPIO0, (MXC_GPIO_PIN_2 | MXC_GPIO_PIN_3 | MXC_GPIO_PIN_4 | MXC_GPIO_PIN_5),
112     MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0
113 };
114 // NOTE: SPI1 definied here with SS1 only, SS0 is on port0 by itself.
115 const mxc_gpio_cfg_t gpio_cfg_spi1 = {
116     MXC_GPIO1, (MXC_GPIO_PIN_0 | MXC_GPIO_PIN_3 | MXC_GPIO_PIN_4 | MXC_GPIO_PIN_5),
117     MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0
118 };
119 // NOTE: SPI2 defined here with SS0 only, and NOT SS1 and SS2
120 const mxc_gpio_cfg_t gpio_cfg_spi2 = {
121     MXC_GPIO2, (MXC_GPIO_PIN_14 | MXC_GPIO_PIN_15 | MXC_GPIO_PIN_16 | MXC_GPIO_PIN_17),
122     MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0
123 };
124 const mxc_gpio_cfg_t gpio_cfg_spi2b = {
125     MXC_GPIO2, (MXC_GPIO_PIN_22 | MXC_GPIO_PIN_23 | MXC_GPIO_PIN_24 | MXC_GPIO_PIN_25),
126     MXC_GPIO_FUNC_ALT3, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0
127 };
128 // NOTE: SPI3 defined here with SS0 only, and NOT SS1, SS2, or SS3
129 const mxc_gpio_cfg_t gpio_cfg_spi3 = { MXC_GPIO0,
130                                        (MXC_GPIO_PIN_6 | MXC_GPIO_PIN_10 | MXC_GPIO_PIN_11 |
131                                         MXC_GPIO_PIN_12 | MXC_GPIO_PIN_13 | MXC_GPIO_PIN_14),
132                                        MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
133                                        MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
134 
135 // Timers are only defined once, depending on package, each timer could be mapped to other pins
136 const mxc_gpio_cfg_t gpio_cfg_tmr0 = { MXC_GPIO1, MXC_GPIO_PIN_14, MXC_GPIO_FUNC_ALT3,
137                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
138 const mxc_gpio_cfg_t gpio_cfg_tmr1 = { MXC_GPIO1, MXC_GPIO_PIN_15, MXC_GPIO_FUNC_ALT3,
139                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
140 const mxc_gpio_cfg_t gpio_cfg_tmr2 = { MXC_GPIO2, MXC_GPIO_PIN_24, MXC_GPIO_FUNC_ALT2,
141                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
142 const mxc_gpio_cfg_t gpio_cfg_tmr3 = { MXC_GPIO2, MXC_GPIO_PIN_25, MXC_GPIO_FUNC_ALT2,
143                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
144 const mxc_gpio_cfg_t gpio_cfg_tmr4 = { MXC_GPIO1, MXC_GPIO_PIN_12, MXC_GPIO_FUNC_ALT3,
145                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
146 const mxc_gpio_cfg_t gpio_cfg_tmr5 = { MXC_GPIO1, MXC_GPIO_PIN_13, MXC_GPIO_FUNC_ALT3,
147                                        MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
148 
149 // Pulse trains are only defined once, depending on package, each PT could be mapped to other pins
150 const mxc_gpio_cfg_t gpio_cfg_pt0 = { MXC_GPIO2, MXC_GPIO_PIN_28, MXC_GPIO_FUNC_ALT2,
151                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
152 const mxc_gpio_cfg_t gpio_cfg_pt1 = { MXC_GPIO1, MXC_GPIO_PIN_11, MXC_GPIO_FUNC_ALT4,
153                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
154 const mxc_gpio_cfg_t gpio_cfg_pt2 = { MXC_GPIO0, MXC_GPIO_PIN_11, MXC_GPIO_FUNC_ALT4,
155                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
156 const mxc_gpio_cfg_t gpio_cfg_pt3 = { MXC_GPIO0, MXC_GPIO_PIN_12, MXC_GPIO_FUNC_ALT4,
157                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
158 const mxc_gpio_cfg_t gpio_cfg_pt4 = { MXC_GPIO0, MXC_GPIO_PIN_13, MXC_GPIO_FUNC_ALT4,
159                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
160 const mxc_gpio_cfg_t gpio_cfg_pt5 = { MXC_GPIO1, MXC_GPIO_PIN_7, MXC_GPIO_FUNC_ALT3,
161                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
162 const mxc_gpio_cfg_t gpio_cfg_pt6 = { MXC_GPIO1, MXC_GPIO_PIN_0, MXC_GPIO_FUNC_ALT3,
163                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
164 const mxc_gpio_cfg_t gpio_cfg_pt7 = { MXC_GPIO0, MXC_GPIO_PIN_31, MXC_GPIO_FUNC_ALT3,
165                                       MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
166 
167 const mxc_gpio_cfg_t gpio_cfg_owm = { MXC_GPIO0, (MXC_GPIO_PIN_0 | MXC_GPIO_PIN_1),
168                                       MXC_GPIO_FUNC_ALT4, MXC_GPIO_PAD_NONE,
169                                       MXC_GPIO_VSSEL_VDDIOH };
170 const mxc_gpio_cfg_t gpio_cfg_owmb = { MXC_GPIO1, (MXC_GPIO_PIN_18 | MXC_GPIO_PIN_19),
171                                        MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
172                                        MXC_GPIO_VSSEL_VDDIOH };
173 
174 // Port 0 Pins 6-14, Port 1 Pins 1-5 and 16-19, Port 2 Pins 10-19
175 // Other configurations are available, depending on package, to allow the use of EMAC or SDHC
176 // Note that both P1a and P1b must be configured for proper operation
177 const mxc_gpio_cfg_t gpio_cfg_P0_clcd = { MXC_GPIO0, 0x00007FC0, MXC_GPIO_FUNC_ALT3,
178                                           MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
179 const mxc_gpio_cfg_t gpio_cfg_P1a_clcd = { MXC_GPIO1, 0x000F003E, MXC_GPIO_FUNC_ALT3,
180                                            MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
181 const mxc_gpio_cfg_t gpio_cfg_P1b_clcd = { MXC_GPIO1, 0x00300000, MXC_GPIO_FUNC_ALT4,
182                                            MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
183 const mxc_gpio_cfg_t gpio_cfg_P2_clcd = { MXC_GPIO2, 0x000FFC00, MXC_GPIO_FUNC_ALT3,
184                                           MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
185 
186 const mxc_gpio_cfg_t gpio_cfg_rtcsqw = { MXC_GPIO0, MXC_GPIO_PIN_8, MXC_GPIO_FUNC_ALT4,
187                                          MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
188 const mxc_gpio_cfg_t gpio_cfg_rtcsqwb = { MXC_GPIO1, MXC_GPIO_PIN_11, MXC_GPIO_FUNC_ALT2,
189                                           MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
190 
191 const mxc_gpio_cfg_t gpio_cfg_sdhc = { MXC_GPIO2,
192                                        (MXC_GPIO_PIN_10 | MXC_GPIO_PIN_11 | MXC_GPIO_PIN_12 |
193                                         MXC_GPIO_PIN_13 | MXC_GPIO_PIN_14 | MXC_GPIO_PIN_15 |
194                                         MXC_GPIO_PIN_16 | MXC_GPIO_PIN_17),
195                                        MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
196                                        MXC_GPIO_VSSEL_VDDIOH };
197 const mxc_gpio_cfg_t gpio_cfg_sdhcb = { MXC_GPIO1,
198                                         (MXC_GPIO_PIN_14 | MXC_GPIO_PIN_15 | MXC_GPIO_PIN_22 |
199                                          MXC_GPIO_PIN_23 | MXC_GPIO_PIN_24 | MXC_GPIO_PIN_25 |
200                                          MXC_GPIO_PIN_26 | MXC_GPIO_PIN_27),
201                                         MXC_GPIO_FUNC_ALT4, MXC_GPIO_PAD_NONE,
202                                         MXC_GPIO_VSSEL_VDDIOH };
203 
204 const mxc_gpio_cfg_t gpio_cfg_sc0 = { MXC_GPIO0,
205                                       (MXC_GPIO_PIN_15 | MXC_GPIO_PIN_16 | MXC_GPIO_PIN_17 |
206                                        MXC_GPIO_PIN_18 | MXC_GPIO_PIN_19 | MXC_GPIO_PIN_20),
207                                       MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
208 const mxc_gpio_cfg_t gpio_cfg_sc1 = { MXC_GPIO0,
209                                       (MXC_GPIO_PIN_22 | MXC_GPIO_PIN_23 | MXC_GPIO_PIN_24 |
210                                        MXC_GPIO_PIN_25 | MXC_GPIO_PIN_26 | MXC_GPIO_PIN_27),
211                                       MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
212 
213 // Note that both P0 and P1 must be configured for proper operation
214 const mxc_gpio_cfg_t gpio_cfg_spixf = { MXC_GPIO1,
215                                         (MXC_GPIO_PIN_22 | MXC_GPIO_PIN_23 | MXC_GPIO_PIN_24 |
216                                          MXC_GPIO_PIN_25 | MXC_GPIO_PIN_26 | MXC_GPIO_PIN_27),
217                                         MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_NONE,
218                                         MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
219 const mxc_gpio_cfg_t gpio_cfg_spixr_P0 = {
220     MXC_GPIO1, (MXC_GPIO_PIN_28 | MXC_GPIO_PIN_29 | MXC_GPIO_PIN_30 | MXC_GPIO_PIN_31),
221     MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_PULL_UP
222 };
223 const mxc_gpio_cfg_t gpio_cfg_spixr_P1 = { MXC_GPIO2, (MXC_GPIO_PIN_0 | MXC_GPIO_PIN_1),
224                                            MXC_GPIO_FUNC_ALT1, MXC_GPIO_PAD_PULL_UP };
225 
226 // Note that both P2a and P2b must be configured for proper operation
227 const mxc_gpio_cfg_t gpio_cfg_emac_P2a = { MXC_GPIO2, 0x000003FC, MXC_GPIO_FUNC_ALT4,
228                                            MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
229 const mxc_gpio_cfg_t gpio_cfg_emac_P2b = { MXC_GPIO2, 0xFFE00000, MXC_GPIO_FUNC_ALT1,
230                                            MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIO, MXC_GPIO_DRVSTR_0 };
231 
232 // Note that all of the following must be configured for proper operation
233 const mxc_gpio_cfg_t gpio_cfg_kbd_P2 = { MXC_GPIO2, 0x000003FC, MXC_GPIO_FUNC_ALT1,
234                                          MXC_GPIO_PAD_PULL_UP };
235 
236 // Note that both P0 and P1 must be configured for proper operation
237 const mxc_gpio_cfg_t gpio_cfg_pcif_P0_BITS_0_7 = {
238     MXC_GPIO0,
239     (MXC_GPIO_PIN_6 | MXC_GPIO_PIN_7 | MXC_GPIO_PIN_8 | MXC_GPIO_PIN_9 | MXC_GPIO_PIN_10 |
240      MXC_GPIO_PIN_11 | MXC_GPIO_PIN_12 | MXC_GPIO_PIN_13),
241     MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH
242 };
243 const mxc_gpio_cfg_t gpio_cfg_pcif_P0_BITS_8 = { MXC_GPIO0, (MXC_GPIO_PIN_14), MXC_GPIO_FUNC_ALT2,
244                                                  MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
245 const mxc_gpio_cfg_t gpio_cfg_pcif_P1_BITS_9 = { MXC_GPIO1, (MXC_GPIO_PIN_14), MXC_GPIO_FUNC_ALT2,
246                                                  MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
247 const mxc_gpio_cfg_t gpio_cfg_pcif_P1_BITS_10_11 = { MXC_GPIO1, (MXC_GPIO_PIN_1 | MXC_GPIO_PIN_15),
248                                                      MXC_GPIO_FUNC_ALT2, MXC_GPIO_PAD_NONE,
249                                                      MXC_GPIO_VSSEL_VDDIOH };
250 const mxc_gpio_cfg_t gpio_cfg_pcif_hsync = { MXC_GPIO1, MXC_GPIO_PIN_2, MXC_GPIO_FUNC_ALT2,
251                                              MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
252 const mxc_gpio_cfg_t gpio_cfg_pcif_vsync = { MXC_GPIO1, MXC_GPIO_PIN_18, MXC_GPIO_FUNC_ALT4,
253                                              MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
254 const mxc_gpio_cfg_t gpio_cfg_pcif_pclk = { MXC_GPIO1, MXC_GPIO_PIN_19, MXC_GPIO_FUNC_ALT4,
255                                             MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
256 const mxc_gpio_cfg_t gpio_cfg_pcif_pwrdwn = { MXC_GPIO1, MXC_GPIO_PIN_21, MXC_GPIO_FUNC_OUT,
257                                               MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH, MXC_GPIO_DRVSTR_0};
258