coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <commonlib/helpers.h>
4 #include <baseboard/variants.h>
5 
6 /*
7  * Pad configuration in ramstage. The order largely follows the 'GPIO Muxing'
8  * table found in EDS vol 1, but some pins aren't grouped functionally in
9  * the table so those were moved for more logical grouping.
10  */
11 static const struct pad_config gpio_table[] = {
12 
13  /* Southwest Community */
14 
15  /* EXT_WAKE0_1V8# */
16  PAD_CFG_NF_IOSSTATE(GPIO_205, UP_20K, DEEP, NF1, MASK),
17  /* EXT_WAKE1_1V8# */
18  PAD_CFG_NF_IOSSTATE(GPIO_206, UP_20K, DEEP, NF1, MASK),
19  /* LAN_WAKE_1V8# */
20  PAD_CFG_NF_IOSSTATE(GPIO_207, UP_20K, DEEP, NF1, MASK),
21  /* PCIE_WAKE3_1V8# */
22  PAD_CFG_NF_IOSSTATE(GPIO_208, UP_20K, DEEP, NF1, MASK),
23 
24  /* EMMC_CLK */
25  PAD_CFG_NF_IOSSTATE(GPIO_156, DN_20K, DEEP, NF1, Tx0RxDCRx0),
26  /* EMMC_D0 */
27  PAD_CFG_NF_IOSSTATE(GPIO_157, UP_20K, DEEP, NF1, HIZCRx1),
28  /* EMMC_D1 */
29  PAD_CFG_NF_IOSSTATE(GPIO_158, UP_20K, DEEP, NF1, HIZCRx1),
30  /* EMMC_D2 */
31  PAD_CFG_NF_IOSSTATE(GPIO_159, UP_20K, DEEP, NF1, HIZCRx1),
32  /* EMMC_D3 */
33  PAD_CFG_NF_IOSSTATE(GPIO_160, UP_20K, DEEP, NF1, HIZCRx1),
34  /* EMMC_D4 */
35  PAD_CFG_NF_IOSSTATE(GPIO_161, UP_20K, DEEP, NF1, HIZCRx1),
36  /* EMMC_D5 */
37  PAD_CFG_NF_IOSSTATE(GPIO_162, UP_20K, DEEP, NF1, HIZCRx1),
38  /* EMMC_D6 */
39  PAD_CFG_NF_IOSSTATE(GPIO_163, UP_20K, DEEP, NF1, HIZCRx1),
40  /* EMMC_D7 */
41  PAD_CFG_NF_IOSSTATE(GPIO_164, UP_20K, DEEP, NF1, HIZCRx1),
42  /* EMMC_CMD */
43  PAD_CFG_NF_IOSSTATE(GPIO_165, UP_20K, DEEP, NF1, HIZCRx1),
44  /* EMMC_RCLK */
45  PAD_CFG_NF_IOSSTATE(GPIO_182, DN_20K, DEEP, NF1, HIZCRx0),
46 
47  /* SDIO -- not connected */
48  PAD_CFG_NF_IOSSTATE(GPIO_166, DN_20K, DEEP, NF1, Tx0RxDCRx0),
49  PAD_CFG_NF_IOSSTATE(GPIO_167, UP_20K, DEEP, NF1, HIZCRx1),
50  PAD_CFG_NF_IOSSTATE(GPIO_168, UP_20K, DEEP, NF1, HIZCRx1),
51  PAD_CFG_NF_IOSSTATE(GPIO_169, UP_20K, DEEP, NF1, HIZCRx1),
52  PAD_CFG_NF_IOSSTATE(GPIO_170, UP_20K, DEEP, NF1, HIZCRx1),
53  PAD_CFG_NF_IOSSTATE(GPIO_171, UP_20K, DEEP, NF1, HIZCRx1),
54 
55  /* SDCARD_CLK */
56  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_172, DN_20K, DEEP, NF1, HIZCRx1, DISPUPD),
57  /* SDCARD_D0 */
58  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_173, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
59  /* SDCARD_D1 */
60  PAD_CFG_NF_IOSSTATE(GPIO_174, UP_20K, DEEP, NF1, HIZCRx1),
61  /* SDCARD_D2 */
62  PAD_CFG_NF_IOSSTATE(GPIO_175, UP_20K, DEEP, NF1, HIZCRx1),
63  /* SDCARD_D3 */
64  PAD_CFG_NF_IOSSTATE(GPIO_176, UP_20K, DEEP, NF1, HIZCRx1),
65  /* SDCARD_CD_1V8# */
66  PAD_CFG_NF(GPIO_177, NONE, DEEP, NF1),
67  /* SDCARD_CMD */
68  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_178, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
69  /* Not connected */
70  PAD_CFG_NF(GPIO_179, DN_20K, DEEP, NF1),
71  /* SDCARD_WP_1V8 */
72  PAD_CFG_GPI_GPIO_DRIVER(GPIO_186, DN_20K, DEEP),
73  /* SD_PWR_EN_1V8 - Always enabled SDCard. */
74  PAD_CFG_TERM_GPO(GPIO_183, 0, UP_20K, DEEP),
75 
76  /* West Community */
77 
78  /* I2C_PM_DATA_1V8 */
79  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_124, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
80  /* I2C_PM_CLK_1V8 */
81  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_125, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
82  /* I2C_CAM0_DATA_1V8 */
83  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_126, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
84  /* I2C_CAM0_CLK_1V8 */
85  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_127, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
86  /* I2C_CAM1_DATA_1V8 */
87  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_128, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
88  /* I2C_CAM1_CLK_1V8 */
89  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_129, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
90  /* I2C_GP_DATA_1V8 */
91  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_130, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
92  /* I2C_GP_CLK_1V8 */
93  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_131, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
94  /* I2C_LCD_DATA_1V8 */
95  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_132, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
96  /* I2C_LCD_CLK_1V8 */
97  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_133, UP_1K, DEEP, NF1, Tx1RxDCRx1, MASK),
98  /* Not connected */
99  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_134, UP_20K, DEEP, Tx0RxDCRx0, MASK),
100  /* Not connected */
101  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_135, UP_20K, DEEP, Tx0RxDCRx0, MASK),
102  /* GPIO_PWRBTN# */
103  PAD_CFG_GPI_SCI_IOS(GPIO_136, UP_20K, DEEP, EDGE_SINGLE, INVERT, TxDRxE, SAME),
104 
105  /* HDA_BCLK_1V8 */
106  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_146, DN_20K, DEEP, NF3, MASK, SAME),
107  /* HDA_WS_SYNC_1V8 */
108  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_147, DN_20K, DEEP, NF3, MASK, SAME),
109  /* HDA_SDI_1V8 */
110  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_148, DN_20K, DEEP, NF3, MASK, SAME),
111  /* HDA_SDO_1V8 */
112  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_149, DN_20K, DEEP, NF3, MASK, SAME),
113 
114  /* Not connected */
115  PAD_CFG_GPI_INT(GPIO_150, DN_20K, DEEP, OFF),
116  PAD_CFG_GPI_INT(GPIO_151, DN_20K, DEEP, OFF),
117  PAD_CFG_GPI_INT(GPIO_152, DN_20K, DEEP, OFF),
118  PAD_CFG_GPI_INT(GPIO_153, DN_20K, DEEP, OFF),
119  PAD_CFG_GPI_INT(GPIO_154, DN_20K, DEEP, OFF),
120  PAD_CFG_GPI_INT(GPIO_155, DN_20K, DEEP, OFF),
121 
122  /* PCIE_CLKREQ[0:3]_N */
123  PAD_CFG_NF(GPIO_209, UP_20K, DEEP, NF1),
124  PAD_CFG_NF(GPIO_210, UP_20K, DEEP, NF1),
125  PAD_CFG_NF(GPIO_211, UP_20K, DEEP, NF1),
126  PAD_CFG_NF(GPIO_212, UP_20K, DEEP, NF1),
127 
128  /* OSC_CLK_OUT_[0:4] -- not connected */
129  PAD_CFG_GPI_INT(OSC_CLK_OUT_0, DN_20K, DEEP, OFF),
130  PAD_CFG_GPI_INT(OSC_CLK_OUT_1, DN_20K, DEEP, OFF),
131  PAD_CFG_GPI_INT(OSC_CLK_OUT_2, DN_20K, DEEP, OFF),
132  PAD_CFG_GPI_INT(OSC_CLK_OUT_3, DN_20K, DEEP, OFF),
133  PAD_CFG_GPI_INT(OSC_CLK_OUT_4, DN_20K, DEEP, OFF),
134 
135  /* PM_CHARGER_PRSNT */
136  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_AC_PRESENT, DN_20K, DEEP, NF1, MASK, SAME),
137  /* PM_BATLOW# */
138  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_BATLOW_B, UP_20K, DEEP, NF1, MASK, SAME),
139  /* PMU_PLTRST# */
140  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_PLTRST_B, NONE, DEEP, NF1, MASK, SAME),
141  /* PMU_PWRBTN# */
142  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_PWRBTN_B, UP_20K, DEEP, NF1, MASK, SAME),
143  /* SYS_RESET# */
144  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_RESETBUTTON_B, NONE, DEEP, NF1, MASK, SAME),
145  /* PMU_SLP_S0# */
146  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_SLP_S0_B, NONE, DEEP, NF1, MASK, SAME),
147  /* PMU_SLP_S3# */
148  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_SLP_S3_B, NONE, DEEP, NF1, MASK, SAME),
149  /* PMU_SLP_S4# */
150  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_SLP_S4_B, NONE, DEEP, NF1, MASK, SAME),
151  /* CLK_32K_SUS */
152  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_SUSCLK, NONE, DEEP, NF1, MASK, SAME),
153  /* EMMC_PWR_EN# */
154  PAD_CFG_NF_IOSSTATE_IOSTERM(PMU_WAKE_B, DN_20K, DEEP, NF1, MASK, SAME),
155  /* SUS_STAT# */
156  PAD_CFG_NF_IOSSTATE_IOSTERM(SUS_STAT_B, NONE, DEEP, NF1, MASK, SAME),
157  /* SUSPWRDNACK */
158  PAD_CFG_NF_IOSSTATE_IOSTERM(SUSPWRDNACK, NONE, DEEP, NF1, MASK, SAME),
159 
160  /* Northwest Community */
161 
162  /* DDI0_DDC_DATA_1V8 - I2C Data for HDMI - Connected to a MUX SEL IC to
163  * choose between DDI0_AUXP (Port 0: Display Port Auxiliary Channel for
164  * DP/HDMI) controlled by resistor stuffing options.
165  */
166  PAD_CFG_NF(GPIO_187, UP_20K, DEEP, NF1),
167  /* DDI0_DDC_CLK_1V8 - I2C Clock for HDMI - Connected to a MUX SEL IC
168  * to choose between DDI0_AUXN controlled by resistor stuffing options.
169  */
170  PAD_CFG_NF(GPIO_188, UP_20K, DEEP, NF1),
171  /* DDI1_DDC_DATA_1V8 - I2C Data for HDMI - Connected to a MUX SEL IC to
172  * choose between DDI1_AUXN.
173  */
174  PAD_CFG_NF(GPIO_189, UP_20K, DEEP, NF1),
175  /* DDI1_DDC_CLK_1V8 - I2C Clock for HDMI - Connected to a MUX SEL IC
176  * to choose between DDI1_AUXP.
177  */
178  PAD_CFG_NF(GPIO_190, UP_20K, DEEP, NF1),
179 
180  /* Not connected */
181  PAD_CFG_NF(GPIO_191, DN_20K, DEEP, NF1),
182  PAD_CFG_NF(GPIO_192, DN_20K, DEEP, NF1),
183  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_193, DN_20K, DEEP, NF1, Tx0RxDCRx0, SAME),
184  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_194, DN_20K, DEEP, NF1, Tx0RxDCRx0, SAME),
185  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_195, DN_20K, DEEP, NF1, Tx0RxDCRx0, SAME),
186 
187  /* EDP_VDD_EN_1V8 (DNI) - Alternative stuffing option for
188  * PTN3460 LVDS_VDD_EN.
189  */
190  PAD_CFG_TERM_GPO(GPIO_196, 1, UP_20K, DEEP),
191  /* EDP_BKLT_EN_1V8 (DNI) - Alternative stuffing option for
192  * PTN3460 LVDS_BKLT_EN
193  */
194  PAD_CFG_TERM_GPO(GPIO_197, 1, UP_20K, DEEP),
195  /* EDP_BKLT_CTRL_1V8 - Alternative stuffing option for
196  * PTN3460 LVDS_BKLT_CTRL
197  */
198  PAD_CFG_TERM_GPO(GPIO_198, 1, UP_20K, DEEP),
199 
200  /* DDI1_HPD# - Connect to DP1_HPD Hot plug detection signal of SMARC
201  * Connector.
202  */
203  PAD_CFG_NF(GPIO_199, UP_20K, DEEP, NF2),
204  /* DDI0_HPD# - Connect to DP0_HPD Hot plug detection signal of SMARC
205  * Connector.
206  */
207  PAD_CFG_NF(GPIO_200, UP_20K, DEEP, NF2),
208 
209  /* Not connected */
210  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_201, DN_20K, DEEP, NF1, Tx0RxDCRx0, SAME),
211  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_202, DN_20K, DEEP, NF1, Tx0RxDCRx0, SAME),
212 
213  /* USB2_OC0_1V8# - Connected to (USB0_OC#:MUX_SEL[USB2_OTG_0/USB2_6]),
214  * (USB1_OC#:USB1), (USB2_OC#:USB2)
215  */
216  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_203, UP_20K, DEEP, NF1, MASK, SAME),
217  /* USB2_OC1_1V8# - Connected to (USB3_OC#:USB3), (USB4_OC#:USB4),
218  * (USB5_OC#:USB5). NOTE: USB2_7_WIBU do not have OC.
219  */
220  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_204, UP_20K, DEEP, NF1, MASK, SAME),
221 
222  /* Not connected */
223  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_FS0, UP_20K, DEEP, NF1, TxLASTRxE, SAME),
224  /* EDP_HPD# - from HPDRX pin of PTN3460 */
225  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_FS1, UP_20K, DEEP, NF2, TxLASTRxE, SAME),
226  /* Not connected */
227  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_FS2, UP_20K, DEEP, NF1, TxLASTRxE, SAME),
228  /* Not connected */
229  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_RXD, DN_20K, DEEP, NF1, TxLASTRxE, SAME),
230  /* Not connected */
231  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_TXD, DN_20K, DEEP, NF1, TxLASTRxE, SAME),
232  /* Not connected */
233  PAD_CFG_NF_IOSSTATE_IOSTERM(PMC_SPI_CLK, DN_20K, DEEP, NF1, TxLASTRxE, SAME),
234 
235  /* Not connected */
236  PAD_CFG_NF(PMIC_PWRGOOD, UP_20K, DEEP, NF1),
237  PAD_CFG_TERM_GPO(GPIO_214, 1, DN_20K, DEEP),
238  PAD_CFG_TERM_GPO(GPIO_215, 1, DN_20K, DEEP),
239  /* THERMTRIP_1V8# - Connected to CPLD */
240  PAD_CFG_NF_IOSSTATE_IOSTERM(PMIC_THERMTRIP_B, UP_20K, DEEP, NF1, TxLASTRxE, SAME),
241  /* PROCHOT_CPU# - Connected to CPLD */
242  PAD_CFG_NF_IOSSTATE_IOSTERM(PROCHOT_B, UP_20K, DEEP, NF1, HIZCRx1, SAME),
243 
244  /* Not connected */
245  PAD_CFG_GPI_INT(PMIC_I2C_SCL, DN_20K, DEEP, OFF),
246  PAD_CFG_GPI_INT(PMIC_I2C_SDA, DN_20K, DEEP, OFF),
247 
248  /* I2S_MCLK - Connected to SMARC Connector I2S0_CLK - Digital audio
249  * clock
250  */
251  PAD_CFG_NF(GPIO_74, DN_20K, DEEP, NF1),
252  /* I2S_BCLK - Connected to SMARC Connector I2S0_LRCK - Left & Right
253  * audio synchronization clock
254  */
255  PAD_CFG_NF(GPIO_75, DN_20K, DEEP, NF1),
256  /* Not connected */
257  PAD_CFG_GPI_INT(GPIO_76, DN_20K, DEEP, OFF),
258  /* I2S_SDI - Connected to SMARC Connector I2S0_SDI - Digital audio
259  * Input
260  */
261  PAD_CFG_NF(GPIO_77, DN_20K, DEEP, NF1),
262  /* I2S_SD0 & STRAP_GPIO_78 (int. PU) - Connected to SMARC Connector
263  * I2S0_SDO - Digital audio Output
264  */
265  PAD_CFG_NF(GPIO_78, DN_20K, DEEP, NF1),
266 
267  /* Not connected */
268  PAD_CFG_GPI_INT(GPIO_79, DN_20K, DEEP, OFF),
269  PAD_CFG_GPI_INT(GPIO_80, DN_20K, DEEP, OFF),
270  PAD_CFG_GPI_INT(GPIO_81, DN_20K, DEEP, OFF),
271  /* STRAP_GPIO_82 (int. PD) */
272  PAD_CFG_GPI_INT(GPIO_82, DN_20K, DEEP, OFF),
273  /* Not connected */
274  PAD_CFG_GPI_INT(GPIO_83, DN_20K, DEEP, OFF),
275 
276  /* HDA_RST_1V8# - MUX SEL with CPLD pin and then goto GPIO4/HDA_RST#
277  * pin of SMARC connector
278  */
279  PAD_CFG_NF(GPIO_84, UP_20K, DEEP, NF2),
280  /* Not connected */
281  PAD_CFG_GPI_INT(GPIO_85, DN_20K, DEEP, OFF),
282  PAD_CFG_GPI_INT(GPIO_86, DN_20K, DEEP, OFF),
283  PAD_CFG_GPI_INT(GPIO_87, DN_20K, DEEP, OFF),
284  /* STRAP_GPIO_88 (int. PU) */
285  PAD_CFG_GPI_INT(GPIO_88, DN_20K, DEEP, OFF),
286 
287  /* Not connected */
288  PAD_CFG_GPI_INT(GPIO_89, DN_20K, DEEP, OFF),
289  PAD_CFG_GPI_INT(GPIO_90, DN_20K, DEEP, OFF),
290  PAD_CFG_GPI_INT(GPIO_91, DN_20K, DEEP, OFF),
291  /* STRAP_GPIO_92 (int. PD) */
292  PAD_CFG_GPI_INT(GPIO_92, DN_20K, DEEP, OFF),
293 
294  /* CS0 for BIOS SPI. Connected to CPLD. CPLD then MUX SEL to either SPI
295  * FLASH CHIP on module (SPI_CS_MODULE_1V8#) or to the carrier board
296  * SPI FLASH Chip (SPI_CS_EXT_1V8#).
297  */
298  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_97, NATIVE, DEEP, NF1, MASK, SAME),
299  /* CS1 for BIOS SPI. Connected to CPLD. Not used, because we use 1x16MB
300  * Flash and not 2x8MB Flash.
301  */
302  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_98, NATIVE, DEEP, NF1, MASK, SAME),
303  /* FST_SPI_MISO_1V8 */
304  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_99, NATIVE, DEEP, NF1, MASK, SAME),
305  /* FST_SPI_MOSI_1V8. Support dual mode. */
306  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_100, NATIVE, DEEP, NF1, MASK, SAME),
307  /* FST_SPI_IO2. Not support quad mode, external pulled-up. */
308  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_101, NATIVE, DEEP, NF1, MASK, SAME),
309  /* FST_SPI_IO3. Not support quad mode, external pulled-up. */
310  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_102, NATIVE, DEEP, NF1, MASK, SAME),
311  /* FST_SPI_CLK_1V8. Goes to both module SPI chip and carrier board. */
312  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_103, NATIVE, DEEP, NF1, MASK, SAME),
313  /* FST_SPI_CLK_FB */
314  PAD_CFG_NF_IOSSTATE_IOSTERM(FST_SPI_CLK_FB, NONE, DEEP, NF1, MASK, SAME),
315 
316  /* SIO_SPI_CLK_1V8 - Connected to ESPI_CK of SMARC connector. */
317  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_104, DN_20K, DEEP, NF1, HIZCRx0, ENPD),
318  /* SIO_SPI_FS0_1V8 - Connected to ESPI_CS0# of SMARC connector. */
319  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_105, DN_20K, DEEP, NF1, HIZCRx0, ENPD),
320  /* SIO_SPI_FS1_1V8 - Connected to FST_SPI_CS2_N of SMARC connector. */
321  PAD_CFG_NF(GPIO_106, NATIVE, DEEP, NF3),
322  /* SIO_SPI_MISO_1V8 - Connected to ESPI_IO_0 of SMARC connector. */
323  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_109, DN_20K, DEEP, NF1, HIZCRx0, ENPD),
324  /* SIO_SPI_MOSI_1V8 - Connected to ESPI_IO_1 of SMARC connector. */
325  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_110, DN_20K, DEEP, NF1, HIZCRx0, ENPD),
326 
327  /* STRAP_GPIO_111 */
328  PAD_CFG_GPI_INT(GPIO_111, DN_20K, DEEP, OFF),
329  /* STRAP_GPIO_112 */
330  PAD_CFG_GPI_INT(GPIO_112, DN_20K, DEEP, OFF),
331  /* STRAP_GPIO_113 */
332  PAD_CFG_GPI_INT(GPIO_113, DN_20K, DEEP, OFF),
333  /* Not connected */
334  PAD_CFG_GPI_INT(GPIO_116, DN_20K, DEEP, OFF),
335  /* STRAP_GPIO_117 */
336  PAD_CFG_GPI_INT(GPIO_117, DN_20K, DEEP, OFF),
337  /* STRAP_GPIO_118 */
338  PAD_CFG_GPI_INT(GPIO_118, DN_20K, DEEP, OFF),
339  /* STRAP_GPIO_119 */
340  PAD_CFG_GPI_INT(GPIO_119, DN_20K, DEEP, OFF),
341  /* STRAP_GPIO_120 */
342  PAD_CFG_GPI_INT(GPIO_120, DN_20K, DEEP, OFF),
343  /* STRAP_GPIO_121 */
344  PAD_CFG_GPI_INT(GPIO_121, DN_20K, DEEP, OFF),
345  /* Not connected */
346  PAD_CFG_GPI_INT(GPIO_122, DN_20K, DEEP, OFF),
347  /* STRAP_GPIO_123 */
348  PAD_CFG_GPI_INT(GPIO_123, UP_20K, DEEP, OFF),
349 
350  /* North Community */
351 
352  /* Debug tracing. */
353  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_5, DN_20K, DEEP, NF1, HIZCRx0, SAME),
354  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_6, DN_20K, DEEP, NF1, HIZCRx0, SAME),
355  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_7, DN_20K, DEEP, NF1, HIZCRx0, SAME),
356  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_8, DN_20K, DEEP, NF1, HIZCRx0, SAME),
357 
358  /* OTG_SEL_1V8 - Connected to a USB MUX to select between USB2_DP0 (OTG)
359  * and USB2_DP6. 1:OTG, 0:USB
360  */
361  PAD_CFG_TERM_GPO(GPIO_9, 1, UP_20K, DEEP),
362  /* EN_I2CPM_EXT_1V8 - Connected to OE pin of I2C Re-driver.
363  * Allow/Disallow I2C signal to pass through to SMARC Connector.
364  */
365  PAD_CFG_TERM_GPO(GPIO_10, 1, UP_20K, DEEP),
366  /* EN_SMB_EXT_1V8 - Connected to OE pin of I2C Re-driver.
367  * Allow/Disallow SMBUS signal to pass through to SMARC Connector.
368  */
369  PAD_CFG_TERM_GPO(GPIO_11, 0, UP_20K, DEEP),
370  /* BOOT_SEL2_1V8# - Three Module pins allow the Carrier board user to
371  * select from eight possible boot devices.
372  */
373  PAD_CFG_GPI_INT(GPIO_12, UP_20K, DEEP, OFF),
374  /* BOOT_SEL1_1V8# - BOOT_SEL pins shall be weakly pulled up on the
375  * Module and the pin states decoded by Module logic.
376  */
377  PAD_CFG_GPI_INT(GPIO_13, UP_20K, DEEP, OFF),
378  /* BOOT_SEL0_1V8# - For details refer to
379  * SMARC_Hardware_Specification_V200.pdf page 38 chapter 4.17 Boot
380  * Select
381  */
382  PAD_CFG_GPI_INT(GPIO_14, UP_20K, DEEP, OFF),
383  /* GPIO_CPLD_TCK_1V8 */
384  PAD_CFG_TERM_GPO(GPIO_15, 0, DN_20K, DEEP),
385  /* GPIO_CPLD_TMS_1V8 */
386  PAD_CFG_TERM_GPO(GPIO_16, 0, DN_20K, DEEP),
387  /* GPIO_CPLD_TDI_1V8 */
388  PAD_CFG_GPI_INT(GPIO_17, DN_20K, DEEP, OFF),
389  /* GPIO_CPLD_TDO_1V8 */
390  PAD_CFG_TERM_GPO(GPIO_18, 0, DN_20K, DEEP),
391  /* PM_TEST_1V8# connect to the SMARC Connector TEST# pin.
392  * Held low by Carrier to invoke Module vendor specific test function.
393  * Pulled up on Module. Driven by OD part on Carrier.
394  */
395  PAD_CFG_GPI_INT(GPIO_19, UP_20K, DEEP, OFF),
396  /* MCERR_1V8 - ICT Test Point */
397  PAD_CFG_GPI_INT(GPIO_20, DN_20K, DEEP, OFF),
398  /* IERR_1V8 - ICT Test Point */
399  PAD_CFG_GPI_INT(GPIO_21, DN_20K, DEEP, OFF),
400  /* SLEEP_CPU_1V8# - Connect to the SMARC Connector SLEEP# pin.
401  * Sleep indicator from Carrier board. May be sourced from user Sleep
402  * button or Carrier logic. Carrier to float the line in in-active
403  * state. Active low, level sensitive. Should be de-bounced on the
404  * Module. Pulled up on Module. Driven by Open Drain (OD) part on
405  * Carrier.
406  */
407  PAD_CFG_GPI_SCI_IOS(GPIO_22, UP_20K, DEEP, EDGE_SINGLE, INVERT, TxDRxE, SAME),
408  /* LID_CPU_1V8# - Connect to the SMARC Connector LID# pin.
409  * Lid open/close indication to Module. Low indicates lid closure
410  * (which system may use to initiate a sleep state). Carrier to float
411  * the line in in-active state. Active low, level sensitive. Should be
412  * de-bounced on the Module Pulled up on Module. Driven by OD part on
413  * Carrier.
414  */
415  PAD_CFG_GPI_SCI_IOS(GPIO_23, UP_20K, DEEP, EDGE_BOTH, INVERT, TxDRxE, SAME),
416  /* WDT_IRQ1_1V8# (NMI) - Trigger by CPLD Watchdog module when enabled
417  * and timeout.
418  */
419  PAD_CFG_GPI_NMI(GPIO_24, UP_20K, DEEP, LEVEL, INVERT),
420  /* WDT_IRQ0_1V8# (SCI) - Refer to Kontron_CPLD.pdf Chapter 6 Watchdog
421  * Module Description, for how to use it.
422  */
423  PAD_CFG_GPI_SCI(GPIO_25, UP_20K, DEEP, LEVEL, INVERT),
424  /* SATA_LED# - Connect to the SMARC Connector SATA_ACT# pin.
425  * Active low SATA activity indicator. If implemented, shall be able to
426  * sink 24mA or more Carrier LED current.
427  */
428  PAD_CFG_NF(GPIO_26, DN_20K, DEEP, NF5),
429 
430  /* SMB_ALERT_GPIO# */
431  PAD_CFG_GPI_INT(GPIO_27, UP_20K, DEEP, OFF),
432  /* GPIO_28_DEBUG - Connect to HOOK5 (ClkOut#) pin of XDP connector */
433  PAD_CFG_TERM_GPO(GPIO_28, 1, UP_20K, DEEP),
434  /* GPIO_29_DEBUG - Connect to HOOK4 (ClkOut) pin of XDP connector */
435  PAD_CFG_TERM_GPO(GPIO_29, 0, DN_20K, DEEP),
436 
437  /* Not connected */
438  PAD_CFG_GPI_INT(GPIO_30, DN_20K, DEEP, OFF),
439  /* CPU_GPIO_1_1V8 (DNI) - Connect to CPLD PIN_K6 (Unused in CPLD) */
440  PAD_CFG_GPI_INT(GPIO_31, DN_20K, DEEP, OFF),
441  /* CPU_GPIO_2_1V8 (DNI) - Connect to CPLD PIN_J6 (Unused in CPLD) */
442  PAD_CFG_GPI_INT(GPIO_32, DN_20K, DEEP, OFF),
443  /* Not connected */
444  PAD_CFG_GPI_INT(GPIO_33, DN_20K, DEEP, OFF),
445 
446  /* STRAP_GPIO_34 (int. PD) */
447  PAD_CFG_GPI_INT(GPIO_34, DN_20K, DEEP, OFF),
448  /* STRAP_GPIO_35 (int. PD) */
449  PAD_CFG_GPI_INT(GPIO_35, DN_20K, DEEP, OFF),
450  /* STRAP_GPIO_36 (int. PD) */
451  PAD_CFG_GPI_INT(GPIO_36, DN_20K, DEEP, OFF),
452  /* Not connected */
453  PAD_CFG_TERM_GPO(GPIO_37, 0, DN_20K, DEEP),
454 
455  /* GPIO_VALID (CPLD=gpio_valid/pi_gpio_en)- This pin Enable the CPLD
456  * GPIO to the SMARC Connector.
457  */
458  PAD_CFG_TERM_GPO(GPIO_62, 1, UP_20K, DEEP),
459  /* LVDS_ENABLE_1V8# connect to PTN3460 DP to LVDS converter chip. */
460  PAD_CFG_TERM_GPO(GPIO_63, 0, DN_20K, DEEP),
461  /* Not connected */
462  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_64, DN_20K, DEEP, HIZCRx0, SAME),
463  /* Not connected */
464  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_65, DN_20K, DEEP, HIZCRx0, SAME),
465  /* CAM_CS0_CS1_SEL - Serial Cameras interfaces Select - to select
466  * between the two MIPI CSI camera interfaces on the SMARC connector. */
467  PAD_CFG_TERM_GPO(GPIO_66, 0, DN_20K, DEEP),
468  /* MCSI0_RST_1V8# - Reset the MIPI CSI camera interfaces 0 */
469  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_67, 0, DEEP, DN_20K, HIZCRx0, SAME),
470  /* MCSI1_RST_1V8# - Reset the MIPI CSI camera interfaces 1 */
471  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_68, 0, DEEP, DN_20K, HIZCRx0, SAME),
472  /* MCSI0_PWR_1V8# - Power for the MIPI CSI camera interfaces 0 */
473  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_69, 0, DEEP, DN_20K, Tx1RxDCRx1, SAME),
474  /* MCSI1_PWR_1V8# - Power for the MIPI CSI camera interfaces 1 */
475  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_70, 0, DEEP, DN_20K, Tx1RxDCRx1, SAME),
476  /* Not connected */
477  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_71, 0, DEEP, DN_20K, HIZCRx0, SAME),
478  /* Not connected */
479  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_72, 0, DEEP, DN_20K, HIZCRx0, SAME),
480  /* Not connected */
481  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_73, 0, DEEP, DN_20K, HIZCRx0, SAME),
482 
483  /* JTAG_TCK to XDP Header TCK0 */
484  PAD_CFG_NF_IOSSTATE_IOSTERM(TCK, DN_20K, DEEP, NF1, MASK, SAME),
485  /* JTAG_TRST# to XDP Header TRST# */
486  PAD_CFG_NF_IOSSTATE_IOSTERM(TRST_B, DN_20K, DEEP, NF1, MASK, SAME),
487  /* JTAG_TMS to XDP Header TMS */
488  PAD_CFG_NF_IOSSTATE_IOSTERM(TMS, UP_20K, DEEP, NF1, MASK, SAME),
489  /* JTAG_TDI to XDP Header TDI */
490  PAD_CFG_NF_IOSSTATE_IOSTERM(TDI, UP_20K, DEEP, NF1, MASK, SAME),
491  /* Not connected */
492  PAD_CFG_NF_IOSSTATE_IOSTERM(CX_PMODE, NONE, DEEP, NF1, MASK, SAME),
493  /* TAG_PREQ# to XDP Header OBSFN_A0 */
494  PAD_CFG_NF_IOSSTATE_IOSTERM(CX_PREQ_B, UP_20K, DEEP, NF1, MASK, SAME),
495  /* Not connected */
496  PAD_CFG_NF_IOSSTATE_IOSTERM(JTAGX, UP_20K, DEEP, NF1, MASK, SAME),
497  /* JTAG_PRDY# to XDP Header OBSFN_A1 */
498  PAD_CFG_NF_IOSSTATE_IOSTERM(CX_PRDY_B, UP_20K, DEEP, NF1, MASK, SAME),
499  /* JTAG_TDO to XDP Header TDO */
500  PAD_CFG_NF_IOSSTATE_IOSTERM(TDO, UP_20K, DEEP, NF1, MASK, SAME),
501 
502  /* Not connected */
503  PAD_CFG_GPIO_DRIVER_HI_Z(CNV_BRI_DT, DN_20K, DEEP, MASK, SAME),
504  /* PM_FORCE_RECOV_1V8# from SMARC Connector FORCE_RECOV#.
505  * A low on the Module FORCE_RECOV# pin may invoke the SOC native Force
506  * Recovery mode.
507  * For x86 systems this signal may be used to load BIOS defaults.
508  */
509  PAD_CFG_GPIO_DRIVER_HI_Z(CNV_BRI_RSP, UP_20K, DEEP, MASK, SAME),
510  /* Not connected */
511  PAD_CFG_GPIO_DRIVER_HI_Z(CNV_RGI_DT, DN_20K, DEEP, MASK, SAME),
512  /* EMMC_RST# to EMMC IC's RST# pin */
513  PAD_CFG_NF_IOSSTATE_IOSTERM(CNV_RGI_RSP, UP_20K, DEEP, NF1, MASK, SAME),
514 
515  /* SVID0_ALERT# - Connect to the SVID VR chip. */
516  PAD_CFG_NF_IOSSTATE_IOSTERM(SVID0_ALERT_B, NONE, DEEP, NF1, MASK, SAME),
517  /* SVID0_DATA */
518  PAD_CFG_NF_IOSSTATE_IOSTERM(SVID0_DATA, UP_20K, DEEP, NF1, MASK, SAME),
519  /* SVID0_CLK */
520  PAD_CFG_NF_IOSSTATE_IOSTERM(SVID0_CLK, UP_20K, DEEP, NF1, MASK, SAME),
521 };
522 
523 const struct pad_config *variant_gpio_table(size_t *num)
524 {
525  *num = ARRAY_SIZE(gpio_table);
526  return gpio_table;
527 }
528 
529 /* GPIOs needed prior to ramstage. */
530 static const struct pad_config early_gpio_table[] = {
531  /* UART */
532  PAD_CFG_NF(GPIO_46, NATIVE, DEEP, NF1), /* LPSS_UART2_RXD */
533  PAD_CFG_NF_IOSSTATE(GPIO_47, NATIVE, DEEP, NF1, Tx1RxDCRx0), /* LPSS_UART2_TXD */
534 
535  /* Not connected */
536  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_0, DN_20K, PWROK, NF1, HIZCRx0, SAME),
537  /* OBSDATA_A0 */
538  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_1, DN_20K, PWROK, NF1, HIZCRx0, SAME),
539  /* OBSDATA_A1 */
540  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_2, DN_20K, PWROK, NF1, HIZCRx0, SAME),
541  /* OBSDATA_A2 */
542  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_3, DN_20K, PWROK, NF1, HIZCRx0, SAME),
543  /* OBSDATA_A3 */
544  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_4, DN_20K, PWROK, NF1, HIZCRx0, SAME),
545 
546  /* Not connected */
547  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_38, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
548  /* STRAP_GPIO_39 */
549  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_39, DN_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
550  /* STRAP_GPIO_40 */
551  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_40, DN_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
552  /* Not connected */
553  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_41, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
554  /* CPU_UART1_RX to SMARC Connector SER0_RX */
555  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_42, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
556  /* CPU_UART1_TX to SMARC Connector SER0_TX */
557  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_43, DN_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
558  /* CPU_UART1_RTS_1V8# to SMARC Connector SER0_RTS# */
559  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_44, UP_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
560  /* CPU_UART1_CTS_1V8# to SMARC Connector SER0_CTS# */
561  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_45, UP_20K, DEEP, NF1, HIZCRx0, DISPUPD),
562  /* CPU_UART2_RX_1V8 to SMARC Connector SER2_RX */
563  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_46, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
564  /* CPU_UART2_TX_1V8 to SMARC Connector SER2_TX */
565  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_47, DN_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
566  /* CPU_UART2_RTS_1V8# to SMARC Connector SER2_RTS# */
567  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_48, DN_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
568  /* CPU_UART2_CTS_1V8# to SMARC Connector SER2_CTS# */
569  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_49, UP_20K, DEEP, NF1, HIZCRx0, DISPUPD),
570 
571  /* Board ID - GPIO_223 */
572  PAD_CFG_GPI_INT(PMIC_RESET_B, DN_20K, DEEP, OFF),
573  /* Board ID - GPIO_213 */
574  PAD_CFG_GPI_INT(GPIO_213, DN_20K, DEEP, OFF),
575  /* Board ID - GPIO_224 */
576  PAD_CFG_GPI_INT(PMIC_STDBY, DN_20K, DEEP, OFF),
577 
578  /* CPU_GPIO_137 - Kontron config : 0:ECC, 1:no ECC (default) */
579  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_137, UP_20K, DEEP, Tx0RxDCRx0, ENPU),
580  /* CPU_GPIO_138 - Kontron config - RAM Type BIT0 */
581  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_138, UP_20K, DEEP, Tx0RxDCRx0, ENPU),
582  /* CPU_GPIO_139 - Kontron config - RAM Type BIT1 */
583  PAD_CFG_GPIO_DRIVER_HI_Z(GPIO_139, UP_20K, DEEP, Tx0RxDCRx0, ENPU),
584 
585  /* SMB_ALERT_CPU# */
586  PAD_CFG_NF_IOSSTATE_IOSTERM(SMB_ALERTB, UP_20K, DEEP, NF1, MASK, SAME),
587  /* SMB_CLK_S5 */
588  PAD_CFG_NF_IOSSTATE_IOSTERM(SMB_CLK, UP_20K, DEEP, NF1, MASK, SAME),
589  /* SMB_DATA_S5 */
590  PAD_CFG_NF_IOSSTATE_IOSTERM(SMB_DATA, UP_20K, DEEP, NF1, MASK, SAME),
591 
592  /* LPC_SERIRQ_CPU */
593  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_ILB_SERIRQ, UP_20K, DEEP, NF1, MASK, SAME),
594  /* CLK_25M_LPC_TPM_CPU */
595  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_CLKOUT0, NONE, DEEP, NF1, HIZCRx1, DISPUPD),
596  /* CLK_25M_LPC_CPLD_CPU */
597  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_CLKOUT1, NONE, DEEP, NF1, HIZCRx1, DISPUPD),
598  /* LPC_AD0_CPU */
599  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_AD0, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
600  /* LPC_AD1_CPU */
601  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_AD1, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
602  /* LPC_AD2_CPU */
603  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_AD2, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
604  /* LPC_AD3_CPU */
605  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_AD3, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
606  /* LPC_CLKRUN# */
607  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_CLKRUNB, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
608  /* LPC_FRAME_CPU# */
609  PAD_CFG_NF_IOSSTATE_IOSTERM(LPC_FRAMEB, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
610 };
611 
612 const struct pad_config *variant_early_gpio_table(size_t *num)
613 {
615  return early_gpio_table;
616 }
#define GPIO_10
Definition: gpio_ftns.h:12
#define GPIO_191
Definition: gpio_ftns.h:21
#define GPIO_18
Definition: gpio_ftns.h:17
#define GPIO_17
Definition: gpio_ftns.h:16
#define GPIO_16
Definition: gpio_ftns.h:15
#define GPIO_189
Definition: gpio_ftns.h:19
#define GPIO_11
Definition: gpio_ftns.h:13
#define GPIO_190
Definition: gpio_ftns.h:20
#define GPIO_187
Definition: gpio_ftns.h:18
#define GPIO_15
Definition: gpio_ftns.h:14
#define GPIO_49
Definition: gpio_ftns.h:17
#define GPIO_66
Definition: gpio_ftns.h:25
#define GPIO_64
Definition: gpio_ftns.h:24
#define GPIO_71
Definition: gpio_ftns.h:27
#define GPIO_22
Definition: gpio_ftns.h:14
#define GPIO_32
Definition: gpio_ftns.h:15
#define GPIO_68
Definition: gpio_ftns.h:26
#define GPIO_33
Definition: gpio_ftns.h:16
#define ARRAY_SIZE(a)
Definition: helpers.h:12
#define GPIO_195
Definition: gpio_apl.h:153
#define PMU_SLP_S3_B
Definition: gpio_apl.h:265
#define GPIO_82
Definition: gpio_apl.h:187
#define GPIO_37
Definition: gpio_apl.h:102
#define GPIO_202
Definition: gpio_apl.h:160
#define PMU_SUSCLK
Definition: gpio_apl.h:267
#define PROCHOT_B
Definition: gpio_apl.h:176
#define GPIO_34
Definition: gpio_apl.h:99
#define SVID0_CLK
Definition: gpio_apl.h:142
#define TRST_B
Definition: gpio_apl.h:128
#define PMC_SPI_RXD
Definition: gpio_apl.h:166
#define CNV_RGI_RSP
Definition: gpio_apl.h:139
#define GPIO_214
Definition: gpio_apl.h:172
#define GPIO_178
Definition: gpio_apl.h:300
#define LPC_AD2
Definition: gpio_apl.h:312
#define PMU_PWRBTN_B
Definition: gpio_apl.h:262
#define GPIO_183
Definition: gpio_apl.h:303
#define GPIO_161
Definition: gpio_apl.h:282
#define PMIC_RESET_B
Definition: gpio_apl.h:170
#define FST_SPI_CLK_FB
Definition: gpio_apl.h:205
#define PMU_WAKE_B
Definition: gpio_apl.h:268
#define PMU_PLTRST_B
Definition: gpio_apl.h:261
#define GPIO_152
Definition: gpio_apl.h:246
#define TDI
Definition: gpio_apl.h:130
#define GPIO_48
Definition: gpio_apl.h:113
#define GPIO_213
Definition: gpio_apl.h:171
#define GPIO_169
Definition: gpio_apl.h:290
#define GPIO_201
Definition: gpio_apl.h:159
#define GPIO_210
Definition: gpio_apl.h:251
#define PMC_SPI_CLK
Definition: gpio_apl.h:168
#define LPC_AD0
Definition: gpio_apl.h:310
#define GPIO_127
Definition: gpio_apl.h:227
#define GPIO_207
Definition: gpio_apl.h:275
#define PMIC_I2C_SCL
Definition: gpio_apl.h:177
#define GPIO_165
Definition: gpio_apl.h:286
#define PMC_SPI_FS0
Definition: gpio_apl.h:163
#define GPIO_41
Definition: gpio_apl.h:106
#define GPIO_173
Definition: gpio_apl.h:295
#define OSC_CLK_OUT_1
Definition: gpio_apl.h:255
#define TCK
Definition: gpio_apl.h:127
#define GPIO_197
Definition: gpio_apl.h:155
#define GPIO_175
Definition: gpio_apl.h:297
#define GPIO_206
Definition: gpio_apl.h:274
#define GPIO_209
Definition: gpio_apl.h:250
#define GPIO_83
Definition: gpio_apl.h:188
#define PMU_BATLOW_B
Definition: gpio_apl.h:260
#define GPIO_198
Definition: gpio_apl.h:156
#define SMB_ALERTB
Definition: gpio_apl.h:304
#define GPIO_208
Definition: gpio_apl.h:276
#define GPIO_203
Definition: gpio_apl.h:161
#define GPIO_164
Definition: gpio_apl.h:285
#define PMIC_THERMTRIP_B
Definition: gpio_apl.h:174
#define CNV_BRI_RSP
Definition: gpio_apl.h:137
#define GPIO_151
Definition: gpio_apl.h:245
#define GPIO_168
Definition: gpio_apl.h:289
#define GPIO_111
Definition: gpio_apl.h:211
#define OSC_CLK_OUT_0
Definition: gpio_apl.h:254
#define GPIO_46
Definition: gpio_apl.h:111
#define GPIO_44
Definition: gpio_apl.h:109
#define PMU_RESETBUTTON_B
Definition: gpio_apl.h:263
#define GPIO_199
Definition: gpio_apl.h:157
#define SVID0_DATA
Definition: gpio_apl.h:141
#define TMS
Definition: gpio_apl.h:129
#define GPIO_159
Definition: gpio_apl.h:280
#define GPIO_43
Definition: gpio_apl.h:108
#define GPIO_128
Definition: gpio_apl.h:228
#define GPIO_158
Definition: gpio_apl.h:279
#define GPIO_182
Definition: gpio_apl.h:302
#define GPIO_110
Definition: gpio_apl.h:210
#define SUSPWRDNACK
Definition: gpio_apl.h:270
#define GPIO_174
Definition: gpio_apl.h:296
#define LPC_AD1
Definition: gpio_apl.h:311
#define GPIO_167
Definition: gpio_apl.h:288
#define GPIO_45
Definition: gpio_apl.h:110
#define GPIO_186
Definition: gpio_apl.h:301
#define GPIO_125
Definition: gpio_apl.h:225
#define PMIC_PWRGOOD
Definition: gpio_apl.h:169
#define SVID0_ALERT_B
Definition: gpio_apl.h:140
#define GPIO_47
Definition: gpio_apl.h:112
#define LPC_CLKOUT1
Definition: gpio_apl.h:309
#define GPIO_123
Definition: gpio_apl.h:221
#define GPIO_171
Definition: gpio_apl.h:292
#define GPIO_166
Definition: gpio_apl.h:287
#define SMB_DATA
Definition: gpio_apl.h:306
#define PMU_SLP_S4_B
Definition: gpio_apl.h:266
#define GPIO_194
Definition: gpio_apl.h:152
#define PMIC_I2C_SDA
Definition: gpio_apl.h:178
#define GPIO_62
Definition: gpio_apl.h:115
#define GPIO_73
Definition: gpio_apl.h:126
#define GPIO_177
Definition: gpio_apl.h:299
#define PMC_SPI_FS2
Definition: gpio_apl.h:165
#define SMB_CLK
Definition: gpio_apl.h:305
#define GPIO_172
Definition: gpio_apl.h:293
#define LPC_AD3
Definition: gpio_apl.h:313
#define GPIO_193
Definition: gpio_apl.h:151
#define GPIO_204
Definition: gpio_apl.h:162
#define GPIO_211
Definition: gpio_apl.h:252
#define GPIO_200
Definition: gpio_apl.h:158
#define GPIO_150
Definition: gpio_apl.h:244
#define SUS_STAT_B
Definition: gpio_apl.h:269
#define TDO
Definition: gpio_apl.h:135
#define OSC_CLK_OUT_3
Definition: gpio_apl.h:257
#define JTAGX
Definition: gpio_apl.h:133
#define GPIO_63
Definition: gpio_apl.h:116
#define GPIO_149
Definition: gpio_apl.h:243
#define GPIO_205
Definition: gpio_apl.h:273
#define PMU_SLP_S0_B
Definition: gpio_apl.h:264
#define GPIO_196
Definition: gpio_apl.h:154
#define GPIO_162
Definition: gpio_apl.h:283
#define GPIO_163
Definition: gpio_apl.h:284
#define CNV_RGI_DT
Definition: gpio_apl.h:138
#define GPIO_160
Definition: gpio_apl.h:281
#define GPIO_215
Definition: gpio_apl.h:173
#define PMC_SPI_TXD
Definition: gpio_apl.h:167
#define GPIO_188
Definition: gpio_apl.h:146
#define GPIO_192
Definition: gpio_apl.h:150
#define PMC_SPI_FS1
Definition: gpio_apl.h:164
#define GPIO_212
Definition: gpio_apl.h:253
#define PMU_AC_PRESENT
Definition: gpio_apl.h:259
#define LPC_CLKRUNB
Definition: gpio_apl.h:314
#define LPC_FRAMEB
Definition: gpio_apl.h:315
#define LPC_ILB_SERIRQ
Definition: gpio_apl.h:307
#define OSC_CLK_OUT_4
Definition: gpio_apl.h:258
#define GPIO_112
Definition: gpio_apl.h:212
#define GPIO_170
Definition: gpio_apl.h:291
#define CX_PRDY_B
Definition: gpio_apl.h:134
#define GPIO_176
Definition: gpio_apl.h:298
#define GPIO_36
Definition: gpio_apl.h:101
#define GPIO_35
Definition: gpio_apl.h:100
#define CNV_BRI_DT
Definition: gpio_apl.h:136
#define CX_PMODE
Definition: gpio_apl.h:131
#define GPIO_28
Definition: gpio_apl.h:93
#define CX_PREQ_B
Definition: gpio_apl.h:132
#define LPC_CLKOUT0
Definition: gpio_apl.h:308
#define PMIC_STDBY
Definition: gpio_apl.h:175
#define GPIO_179
Definition: gpio_apl.h:294
#define GPIO_124
Definition: gpio_apl.h:224
#define OSC_CLK_OUT_2
Definition: gpio_apl.h:256
const struct pad_config * variant_early_gpio_table(size_t *num)
Definition: gpio.c:204
const struct pad_config *__weak variant_gpio_table(size_t *num)
Definition: gpio.c:406
const struct pad_config early_gpio_table[]
Definition: gpio.c:373
static const struct pad_config gpio_table[]
Definition: gpio.c:11
#define GPIO_91
Definition: gpio.h:67
#define GPIO_30
Definition: gpio.h:46
#define GPIO_121
Definition: gpio.h:80
#define GPIO_76
Definition: gpio.h:59
#define GPIO_27
Definition: gpio.h:44
#define GPIO_0
Definition: gpio.h:21
#define GPIO_7
Definition: gpio.h:28
#define GPIO_90
Definition: gpio.h:66
#define GPIO_89
Definition: gpio.h:65
#define GPIO_69
Definition: gpio.h:55
#define GPIO_12
Definition: gpio.h:33
#define GPIO_1
Definition: gpio.h:22
#define GPIO_5
Definition: gpio.h:26
#define GPIO_113
Definition: gpio.h:75
#define GPIO_104
Definition: gpio.h:69
#define GPIO_130
Definition: gpio.h:84
#define GPIO_88
Definition: gpio.h:64
#define GPIO_84
Definition: gpio.h:60
#define GPIO_105
Definition: gpio.h:70
#define GPIO_8
Definition: gpio.h:29
#define GPIO_67
Definition: gpio.h:53
#define GPIO_24
Definition: gpio.h:42
#define GPIO_132
Definition: gpio.h:86
#define GPIO_147
Definition: gpio.h:94
#define GPIO_4
Definition: gpio.h:25
#define GPIO_129
Definition: gpio.h:83
#define GPIO_148
Definition: gpio.h:95
#define GPIO_20
Definition: gpio.h:38
#define GPIO_92
Definition: gpio.h:68
#define GPIO_19
Definition: gpio.h:37
#define GPIO_70
Definition: gpio.h:56
#define GPIO_116
Definition: gpio.h:78
#define GPIO_109
Definition: gpio.h:74
#define GPIO_31
Definition: gpio.h:47
#define GPIO_9
Definition: gpio.h:30
#define GPIO_26
Definition: gpio.h:43
#define GPIO_131
Definition: gpio.h:85
#define GPIO_29
Definition: gpio.h:45
#define GPIO_75
Definition: gpio.h:58
#define GPIO_86
Definition: gpio.h:62
#define GPIO_87
Definition: gpio.h:63
#define GPIO_3
Definition: gpio.h:24
#define GPIO_146
Definition: gpio.h:93
#define GPIO_120
Definition: gpio.h:79
#define GPIO_106
Definition: gpio.h:71
#define GPIO_85
Definition: gpio.h:61
#define GPIO_2
Definition: gpio.h:23
#define GPIO_21
Definition: gpio.h:39
#define GPIO_40
Definition: gpio.h:49
#define GPIO_42
Definition: gpio.h:50
#define GPIO_23
Definition: gpio.h:41
#define GPIO_74
Definition: gpio.h:57
#define GPIO_6
Definition: gpio.h:27
#define GPIO_139
Definition: gpio.h:94
#define GPIO_14
Definition: gpio.h:35
#define GPIO_136
Definition: gpio.h:91
#define GPIO_137
Definition: gpio.h:92
#define GPIO_138
Definition: gpio.h:93
#define GPIO_103
Definition: gpio.h:71
#define GPIO_13
Definition: gpio.h:34
#define GPIO_135
Definition: gpio.h:90
#define GPIO_153
Definition: gpio.h:103
#define GPIO_156
Definition: gpio.h:106
#define GPIO_79
Definition: gpio.h:66
#define GPIO_81
Definition: gpio.h:68
#define GPIO_77
Definition: gpio.h:64
#define GPIO_39
Definition: gpio.h:52
#define GPIO_155
Definition: gpio.h:105
#define GPIO_157
Definition: gpio.h:107
#define GPIO_80
Definition: gpio.h:67
#define GPIO_154
Definition: gpio.h:104
#define GPIO_38
Definition: gpio.h:51
#define GPIO_78
Definition: gpio.h:65
#define GPIO_72
Definition: gpio.h:58
#define GPIO_133
Definition: gpio.h:97
#define GPIO_99
Definition: gpio.h:76
#define GPIO_25
Definition: gpio.h:43
#define GPIO_117
Definition: gpio.h:84
#define GPIO_126
Definition: gpio.h:90
#define GPIO_98
Definition: gpio.h:75
#define GPIO_102
Definition: gpio.h:79
#define GPIO_122
Definition: gpio.h:89
#define GPIO_134
Definition: gpio.h:98
#define GPIO_97
Definition: gpio.h:74
#define GPIO_65
Definition: gpio.h:51
#define GPIO_100
Definition: gpio.h:77
#define GPIO_119
Definition: gpio.h:86
#define GPIO_118
Definition: gpio.h:85
#define GPIO_101
Definition: gpio.h:78
#define PAD_CFG_NF_IOSSTATE_IOSTERM(pad, pull, rst, func, iosstate, iosterm)
Definition: gpio_defs.h:234
#define PAD_CFG_TERM_GPO(pad, val, pull, rst)
Definition: gpio_defs.h:262
#define PAD_CFG_NF(pad, pull, rst, func)
Definition: gpio_defs.h:197
#define PAD_CFG_NF_IOSSTATE(pad, pull, rst, func, iosstate)
Definition: gpio_defs.h:220
#define PAD_CFG_GPI_INT(pad, pull, rst, trig)
Definition: gpio_defs.h:348
#define PAD_CFG_GPO_IOSSTATE_IOSTERM(pad, val, rst, pull, iosstate, ioterm)
Definition: gpio_defs.h:277
#define PAD_CFG_GPI_NMI(pad, pull, rst, trig, inv)
Definition: gpio_defs.h:477
#define PAD_CFG_GPIO_DRIVER_HI_Z(pad, pull, rst, iosstate, iosterm)
Definition: gpio_defs.h:336
#define PAD_CFG_GPI_SCI(pad, pull, rst, trig, inv)
Definition: gpio_defs.h:432
#define PAD_CFG_GPI_GPIO_DRIVER(pad, pull, rst)
Definition: gpio_defs.h:323
#define PAD_CFG_GPI_SCI_IOS(pad, pull, rst, trig, inv, iosstate, iosterm)
Definition: gpio_defs.h:446