soc/mediatek/mt8196: Add GPUEB support
[coreboot2.git] / src / mainboard / intel / coffeelake_rvp / variants / baseboard / gpio.c
blob1be950c529e77d316c60b343d7a2da46ab669266
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <baseboard/gpio.h>
4 #include <baseboard/variants.h>
5 #include <types.h>
6 #include <vendorcode/google/chromeos/chromeos.h>
8 #if !CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
9 static const struct pad_config gpio_table[] = {
10 /* GPPC */
11 /* A0 : RCINB_TIME_SYNC_1 */
12 /* A1 : ESPI_IO_0 */
13 /* A2 : ESPI_IO_1 */
14 /* A3 : ESPI_IO_2 */
15 /* A4 : ESPI_IO_3 */
16 /* A5 : ESPI_CSB */
17 /* A6 : SERIRQ */
18 /* A7 : PRIQAB_GSP10_CS1B */
19 PAD_CFG_GPI_SCI_HIGH(GPP_A7, UP_20K, DEEP, EDGE_SINGLE),
20 /* A8 : CLKRUNB */
21 PAD_CFG_GPO(GPP_A8, 1, PLTRST),
22 /* A9 : CLKOUT_LPC_0_ESPI_CLK */
23 /* A10 : CLKOUT_LPC_1 */
24 /* A11 : PMEB_GSP11_CS1B */
25 PAD_CFG_GPI_SCI_LOW(GPP_A11, UP_20K, DEEP, LEVEL),
26 /* A12 : BM_BUSYB_ISH__GP_6 */
27 /* A13 : SUSWARNB_SUSPWRDNACK */
28 PAD_CFG_GPO(GPP_A13, 1, PLTRST),
29 /* A14 : SUS_STATB_ESPI_RESETB */
30 /* A15 : SUSACKB */
31 PAD_CFG_GPO(GPP_A15, 1, PLTRST),
32 /* A16 : SD_1P8_SEL */
33 PAD_CFG_TERM_GPO(GPP_A16, 1, UP_20K, PLTRST),
34 /* A17 : SD_VDD1_PWR_EN_B_ISH_GP_7 */
35 /* A18 : ISH_GP_0 */
36 PAD_CFG_NF(GPP_A18, UP_20K, DEEP, NF1),
37 /* A19 : ISH_GP_1 */
38 PAD_CFG_NF(GPP_A19, UP_20K, DEEP, NF1),
39 /* A20 : ISH_GP_2 */
40 PAD_CFG_NF(GPP_A20, UP_20K, DEEP, NF1),
41 /* A21 : ISH_GP_3 */
42 PAD_CFG_NF(GPP_A21, UP_20K, DEEP, NF1),
43 /* A22 : ISH_GP_4 */
44 PAD_CFG_NF(GPP_A22, UP_20K, DEEP, NF1),
45 /* A23 : ISH_GP_5 */
46 PAD_CFG_NF(GPP_A23, UP_20K, DEEP, NF1),
48 /* B0 : CORE_VID_0 */
49 /* B1 : CORE_VID_1 */
50 /* B2 : VRALERTB */
51 PAD_CFG_GPI_APIC(GPP_B2, NONE, DEEP, LEVEL, NONE),
52 /* B3 : CPU_GP_2 */
53 PAD_CFG_GPI_APIC(GPP_B3, NONE, PLTRST, LEVEL, NONE),
54 /* B4 : CPU_GP_3 */
55 PAD_CFG_GPO(GPP_B4, 1, DEEP),
56 /* B5 : SRCCLKREQB_0 */
57 /* B6 : SRCCLKREQB_1 */
58 /* B7 : SRCCLKREQB_2 */
59 /* B8 : SRCCLKREQB_3 */
60 /* B9 : SRCCLKREQB_4 */
61 /* B10 : SRCCLKREQB_5 */
62 /* B11 : EXT_PWR_GATEB */
63 PAD_CFG_NF(GPP_B11, NONE, DEEP, NF1),
64 /* B12 : SLP_S0B */
65 /* B13 : PLTRSTB */
66 /* B14 : SPKR */
67 PAD_CFG_GPO(GPP_B14, 1, PLTRST),
68 /* B15 : GSPI0_CS0B */
69 PAD_CFG_GPO(GPP_B15, 0, DEEP),
70 /* B16 : GSPI0_CLK */
71 PAD_CFG_GPI_APIC(GPP_B16, NONE, PLTRST, LEVEL, NONE),
72 /* B17 : GSPI0_MISO */
73 PAD_CFG_GPO(GPP_B17, 1, PLTRST),
74 /* B18 : GSPI0_MOSI */
75 PAD_CFG_GPO(GPP_B18, 1, PLTRST),
76 /* B19 : GSPI1_CS0B */
77 /* B20 : GSPI1_CLK_NFC_CLK */
78 /* B21 : GSPI1_MISO_NFC_CLKREQ */
79 /* B22 : GSP1_MOSI */
80 /* B23 : SML1ALERTB_PCHHOTB */
81 PAD_CFG_GPO(GPP_B23, 1, DEEP),
83 /* C0 : SMBCLK */
84 /* C1 : SMBDATA */
85 /* C2 : SMBALERTB */
86 PAD_CFG_GPO(GPP_C2, 1, DEEP),
87 /* C3 : SML0CLK */
88 /* C4 : SML0DATA */
89 /* C5 : SML0ALERTB */
90 PAD_CFG_GPI_SCI_LOW(GPP_C5, NONE, DEEP, LEVEL),
91 /* C6 : SML1CLK */
92 /* C7 : SML1DATA */
93 /* C8 : UART0_RXD */
94 PAD_CFG_GPI_APIC(GPP_C8, UP_20K, DEEP, LEVEL, INVERT),
95 /* C9 : UART0_TXD */
96 PAD_CFG_GPI_SCI_LOW(GPP_C9, UP_20K, PLTRST, EDGE_SINGLE),
97 /* C10 : UART0_RTSB */
98 PAD_CFG_GPO(GPP_C10, 0, PLTRST),
99 /* C11 : UART0_CTSB */
100 PAD_CFG_TERM_GPO(GPP_C11, 1, UP_20K, DEEP),
101 /* C12 : UART1_RXD_ISH_UART1_RXD */
102 PAD_CFG_GPO(GPP_C12, 1, PLTRST),
103 /* C13 : UART1_RXD_ISH_UART1_TXD */
104 /* C14 : UART1_RXD_ISH_UART1_RTSB */
105 /* C15 : UART1_RXD_ISH_UART1_CTSB */
106 PAD_CFG_GPO(GPP_C15, 1, PLTRST),
107 /* C16 : I2C0_SDA */
108 /* C17 : I2C0_SCL */
109 /* C18 : I2C1_SDA */
110 /* C19 : I2C1_SCL */
113 * Note: It's unconfirmed if this redundancy to the bootblock table is necessary.
115 /* C20 : UART2_RXD */
116 PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
117 /* C21 : UART2_TXD */
118 PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
119 /* C22 : UART2_RTSB */
120 /* C23 : UART2_CTSB */
122 /* D0 : SPI1_CSB_BK_0 */
123 /* D1 : SPI1_CLK_BK_1 */
124 /* D2 : SPI1_MISO_IO_1_BK_2 */
125 /* D3 : SPI1_MOSI_IO_0_BK_3 */
126 /* D4 : IMGCLKOUT_0_BK_4 */
127 /* D5 : ISH_I2C0_SDA */
128 /* D6 : ISH_I2C0_SCL */
129 /* D7 : ISH_I2C1_SDA */
130 /* D8 : ISH_I2C1_SCL */
131 /* D9 : ISH_SPI_CSB */
132 PAD_CFG_GPO(GPP_D9, 1, PLTRST),
133 /* D10 : ISH_SPI_CLK */
134 PAD_CFG_GPI_APIC(GPP_D10, UP_20K, PLTRST, LEVEL, INVERT),
135 /* D11 : ISH_SPI_MISO_GP_BSSB_CLK */
136 PAD_CFG_GPI_SCI_LOW(GPP_D11, NONE, DEEP, LEVEL),
137 /* D12 : ISH_SPI_MOSI_GP_BSSB_DI */
138 /* D13 : ISH_UART0_RXD_SML0BDATA */
139 PAD_CFG_GPO(GPP_D13, 1, DEEP),
140 /* D14 : ISH_UART0_TXD_SML0BCLK */
141 PAD_CFG_GPO(GPP_D14, 1, PLTRST),
142 /* D15 : ISH_UART0_RTSB_GPSPI2_CS1B */
143 /* D16 : ISH_UART0_CTSB_SML0BALERTB */
144 PAD_CFG_GPI_SCI_HIGH(GPP_D16, NONE, DEEP, LEVEL),
145 /* D17 : DMIC_CLK_1_SNDW3_CLK */
146 /* D18 : DMIC_DATA_1_SNDW3_DATA */
147 /* D19 : DMIC_CLK_0_SNDW4_CLK */
148 /* D20 : DMIC_DATA_0_SNDW4_DATA */
149 /* D21 : SPI1_IO_2 */
150 PAD_CFG_NF(GPP_D21, NONE, PLTRST, NF1),
151 /* D22 : SPI1_IO_3 */
152 PAD_CFG_NF(GPP_D22, NONE, PLTRST, NF1),
153 /* D23 : SPP_MCLK */
155 /* E1 : SATAXPCIE_1_SATAGP_1 */
156 /* E2 : SATAXPCIE_2_SATAGP_2 */
157 PAD_CFG_GPI(GPP_E2, UP_20K, PLTRST),
158 /* E3 : CPU_GP_0 */
159 PAD_CFG_GPI_SMI(GPP_E3, NONE, PLTRST, EDGE_SINGLE, NONE),
160 /* E4 : SATA_DEVSLP_0 */
161 PAD_CFG_NF(GPP_E4, NONE, DEEP, NF1),
162 /* E5 : SATA_DEVSLP_1 */
163 /* E6 : SATA_DEVSLP_2 */
164 PAD_CFG_GPI_SCI(GPP_E6, NONE, DEEP, OFF, NONE),
165 /* E7 : CPU_GP_1 */
166 PAD_CFG_GPI_INT(GPP_E7, NONE, PLTRST, EDGE_SINGLE),
167 /* E8 : SATA_LEDB */
168 /* E9 : USB2_OCB_0_GP_BSSB_CLK */
169 /* E10 : USB2_OCB_1_GP_BSSB_DI */
170 /* E11 : USB2_OCB_2 */
171 /* E12 : USB2_OCB_3 */
172 /* E13 : DDSP_HPD_0_DISP_MISC_0 */
173 /* E14 : DDSP_HPD_0_DISP_MISC_1 */
174 /* E15 : DDSP_HPD_0_DISP_MISC_2 */
175 /* E16 : EMMC_EN */
176 PAD_CFG_GPO(GPP_E16, 1, PLTRST),
177 /* E17 : EDP_HPD_DISP_MISC_4 */
178 /* E18 : DDPB_CTRLCLK */
179 /* E19 : DDPB_CTRLDATA */
180 /* E20 : DDPC_CTRLCLK */
181 /* E21 : DDPC_CTRLDATA */
182 /* E22 : DDPD_CTRLCLK */
183 /* E23 : DDPD_CTRLDATA */
185 /* F0 : CNV_GNSS_PA_BLANKING */
186 PAD_CFG_GPI(GPP_F0, NONE, PLTRST),
187 /* F1 : CNV_GNSS_FAT */
188 PAD_CFG_TERM_GPO(GPP_F1, 1, UP_20K, DEEP),
189 /* F2 : CNV_GNSS_SYSCK */
190 PAD_CFG_TERM_GPO(GPP_F2, 1, UP_20K, PLTRST),
191 /* F3 : GPP_F_3 */
192 PAD_CFG_TERM_GPO(GPP_F3, 0, UP_20K, PLTRST),
193 /* F4 : CNV_BRI_DT_UART0_RTSB */
194 /* F5 : CNV_BRI_RSP_UART0_RXD */
195 /* F6 : CNV_RGI_DT_UART0_TXD */
196 /* F7 : CNV_RGI_DT_RSP_UART9_CTSB */
197 /* F8 : CNV_MFUART2_RXD */
198 PAD_CFG_NF(GPP_F8, UP_20K, DEEP, NF1),
199 /* F9 : CNV_MFUART2_TXD */
200 PAD_CFG_NF(GPP_F9, UP_20K, DEEP, NF1),
201 /* F10 : GPP_F_10 */
202 PAD_CFG_GPO(GPP_F10, 1, PLTRST),
203 /* F11 : EMMC_CMD */
204 /* F12 : EMMC_DATA0 */
205 /* F13 : EMMC_DATA1 */
206 /* F14 : EMMC_DATA2 */
207 /* F15 : EMMC_DATA3 */
208 /* F16 : EMMC_DATA4 */
209 /* F17 : EMMC_DATA5 */
210 /* F18 : EMMC_DATA6 */
211 /* F19 : EMMC_DATA9 */
212 /* F20 : EMMC_RCLK */
213 /* F21 : EMMC_CLK */
214 /* F22 : EMMC_RESETB */
215 /* F23 : BIOS_REC */
216 PAD_CFG_GPI(GPP_F23, UP_20K, DEEP),
217 /* G0 : SD3_D2 */
218 /* G1 : SD3_D0_SD4_RCLK_P */
219 /* G2 : SD3_D1_SD4_RCLK_N */
220 /* G3 : SD3_D2 */
221 /* G4 : SD3_D3 */
222 /* G5 : SD3_CDB */
223 PAD_CFG_NF(GPP_G5, UP_20K, DEEP, NF1),
224 /* G6 : SD3_CLK */
225 /* G7 : SD3_WP */
226 PAD_CFG_NF(GPP_G7, DN_20K, DEEP, NF1),
228 /* H0 : SSP2_SCLK */
229 /* H1 : SSP2_SFRM */
230 /* H2 : SSP2_TXD */
231 /* H3 : SSP2_RXD */
232 /* H4 : I2C2_SDA */
233 /* H5 : I2C2_SCL */
234 /* H6 : I2C3_SDA */
235 /* H7 : I2C3_SCL */
236 /* H8 : I2C4_SDA */
237 /* H9 : I2C4_SCL */
238 /* H10 : I2C5_SDA_ISH_I2C2_SDA */
239 PAD_CFG_GPO(GPP_H10, 1, PLTRST),
240 /* H11 : I2C5_SCL_ISH_I2C2_SCL */
241 PAD_CFG_GPO(GPP_H11, 1, PLTRST),
242 /* H12 : M2_SKT2_CFG_0_DFLEXIO_0 */
243 PAD_CFG_GPO(GPP_H12, 1, PLTRST),
244 /* H13 : M2_SKT2_CFG_1_DFLEXIO_1 */
245 PAD_CFG_GPO(GPP_H13, 1, PLTRST),
246 /* H14 : M2_SKT2_CFG_2 */
247 PAD_CFG_GPO(GPP_H14, 1, PLTRST),
248 /* H15 : M2_SKT2_CFG_3 */
249 PAD_CFG_GPO(GPP_H15, 1, PLTRST),
250 /* H16 : CAM5_PWR_EN */
251 PAD_CFG_GPO(GPP_H16, 1, PLTRST),
252 /* H17 : CAM5_FLASH_STROBE */
253 PAD_CFG_GPO(GPP_H17, 1, PLTRST),
254 /* H18 : BOOTMPC */
255 /* H19 : TIMESYNC_0 */
256 PAD_CFG_GPO(GPP_H19, 1, PLTRST),
257 /* H20 : IMGCLKOUT_1 */
258 /* H21 : GPPC_H_21 */
259 /* H22 : GPPC_H_22 */
260 PAD_CFG_GPI(GPP_H22, NONE, DEEP),
261 #if CONFIG(BOARD_INTEL_WHISKEYLAKE_RVP) || CONFIG(BOARD_INTEL_COMETLAKE_RVPU)
262 PAD_CFG_GPO(GPP_H22, 1, PLTRST),
263 #else
264 PAD_CFG_GPI(GPP_H22, NONE, DEEP),
265 #endif
266 /* H23 : GPPC_H_23 */
268 /* GPD */
269 /* GPD_0 : BATLOWB */
270 /* GPD_1 : ACPRESENT */
271 /* GPD_2 : LAN_WAKEB */
272 /* GPD_3 : PWRBTNB */
273 /* GPD_4 : SLP_S3B */
274 /* GPD_5 : SLP_S4B */
275 /* GPD_6 : SLP_AB */
276 /* GPD_7 : GPD_7 */
277 /* GPD-8 : SUSCLK */
278 /* GPD-9 : SLP_WLANB */
279 /* GPD-10 : SLP_5B */
280 /* GPD_11 : LANPHYPC */
283 #else
284 static const struct pad_config gpio_table[] = {
285 /* GPPC */
286 /* A0 : RCIN_ESPI_ALERT1 */
287 /* A1 : ESPI_IO_0 */
288 /* A2 : ESPI_IO_1 */
289 /* A3 : ESPI_IO_2 */
290 /* A4 : ESPI_IO_3 */
291 /* A5 : ESPI_CSB */
292 /* A6 : SERIRQ */
293 /* A7 : PRIQAB_ESPI_ALERT0 */
294 /* A8 : CLKRUNB */
295 PAD_CFG_GPO(GPP_A8, 1, PLTRST),
296 /* A9 : CLKOUT_LPC_0_ESPI_CLK */
297 /* A10 : CLKOUT_LPC_1 */
298 /* A11 : I2S_CODEC_INT */
299 PAD_CFG_GPI_APIC_LOW(GPP_A11, UP_20K, PLTRST),
300 /* A12 : BM_BUSYB_ISH__GP_6 */
301 /* A13 : SUSWARNB_SUSPWRDNACK */
302 PAD_CFG_GPO(GPP_A13, 1, PLTRST),
303 /* A14 : SUS_STATB_ESPI_RESETB */
304 /* A15 : SUSACKB */
305 PAD_CFG_GPO(GPP_A15, 1, PLTRST),
306 /* A16 : TCH_PAD_INT_N */
307 PAD_CFG_GPI_APIC(GPP_A16, NONE, PLTRST, LEVEL, INVERT),
308 /* A17 : SD_VDD1_PWR_EN_B_ISH_GP_7 */
309 /* A18 : ISH_GP_0 */
310 /* A19 : ISH_GP_1 */
311 /* A20 : ISH_GP_2 */
312 /* A21 : ISH_GP_3 */
313 /* A22 : ISH_GP_4 */
314 /* A23 : ISH_GP_5 */
316 /* B0 : SPI_TPM_INIT */
317 PAD_CFG_GPI_SCI_LOW(GPP_B0, UP_20K, DEEP, EDGE_SINGLE),
318 /* B1 : GSPI1_CS1 */
319 /* B2 : VRALERTB */
320 PAD_CFG_GPI_APIC(GPP_B2, NONE, DEEP, LEVEL, NONE),
321 /* B3 : BT_RF_KILL */
322 PAD_CFG_GPO(GPP_B3, 1, DEEP),
323 /* B4 : WIFI_RF_KILL */
324 PAD_CFG_GPO(GPP_B4, 1, DEEP),
325 /* B5 : SRCCLKREQB_0 */
326 /* B6 : SRCCLKREQB_1 */
327 /* B7 : SRCCLKREQB_2 */
328 /* B8 : SRCCLKREQB_3 */
329 /* B9 : SRCCLKREQB_4 */
330 /* B10 : SRCCLKREQB_5 */
331 /* B11 : I2S_MCLK */
332 /* B12 : SLP_S0B */
333 /* B13 : PLTRSTB */
334 /* B14 : SPKR */
335 PAD_CFG_GPO(GPP_B14, 1, PLTRST),
336 /* B15 : GSPI0_CS0B */
337 PAD_CFG_GPO(GPP_B15, 0, DEEP),
338 /* B16 : GSPI0_CLK */
339 PAD_CFG_GPI_APIC(GPP_B16, NONE, PLTRST, LEVEL, NONE),
340 /* B17 : GSPI0_MISO */
341 PAD_CFG_GPO(GPP_B17, 1, PLTRST),
342 /* B18 : I2C_TCH_PNL_PWREN */
343 PAD_CFG_GPO(GPP_B18, 1, PLTRST),
344 /* B19 : GSPI1_CS0B */
345 /* B20 : GSPI1_CLK */
346 /* B21 : GSPI1_MISO */
347 /* B22 : GSP1_MOSI */
348 /* B23 : EC_SLP_S0_CS_N */
349 PAD_CFG_GPO(GPP_B23, 1, PLTRST),
351 /* C0 : SMBCLK */
352 /* C1 : SMBDATA */
353 /* C2 : SMBALERTB */
354 PAD_CFG_GPO(GPP_C2, 1, DEEP),
355 /* C3 : SML0CLK */
356 /* C4 : SML0DATA */
357 /* C5 : WIFI_WAKE_N */
358 PAD_CFG_GPI_SCI_LOW(GPP_C5, NONE, DEEP, LEVEL),
359 /* C6 : SML1CLK */
360 /* C7 : SML1DATA */
361 /* C8 : UART0_RXD */
362 PAD_CFG_GPI_APIC(GPP_C8, UP_20K, DEEP, LEVEL, INVERT),
363 /* C9 : UART0_TXD */
364 PAD_CFG_GPI_SCI_LOW(GPP_C9, UP_20K, PLTRST, EDGE_SINGLE),
365 /* C10 : UART0_RTSB */
366 PAD_CFG_GPO(GPP_C10, 0, PLTRST),
367 /* C11 : UART0_CTSB */
368 PAD_CFG_TERM_GPO(GPP_C11, 1, UP_20K, DEEP),
369 /* C12 : UART1_RXD_ISH_UART1_RXD */
370 PAD_CFG_GPO(GPP_C12, 1, PLTRST),
371 /* C13 : UART1_RXD_ISH_UART1_TXD */
372 /* C14 : SSD1_RESET */
373 PAD_CFG_GPO(GPP_C14, 1, PLTRST),
374 /* C15 : SSD2_RESET */
375 PAD_CFG_GPO(GPP_C15, 1, PLTRST),
376 /* C16 : I2C0_SDA */
377 /* C17 : I2C0_SCL */
378 /* C18 : I2C1_SDA */
379 /* C19 : I2C1_SCL */
380 /* C20 : UART2_RXD */
381 /* C21 : UART2_TXD */
382 /* C22 : UART2_RTSB */
383 /* C23 : UART2_CTSB */
385 /* D0 : SPI1_CSB_BK_0 */
386 /* D1 : SPI1_CLK_BK_1 */
387 /* D2 : SPI1_MISO_IO_1_BK_2 */
388 /* D3 : SPI1_MOSI_IO_0_BK_3 */
389 /* D4 : IMGCLKOUT_0_BK_4 */
390 /* D5 : ISH_I2C0_SDA */
391 /* D6 : ISH_I2C0_SCL */
392 /* D7 : SSP2_RXD */
393 PAD_CFG_GPI_INT(GPP_D7, NONE, PLTRST, LEVEL),
394 /* D8 : SSP2_SCLK */
395 PAD_CFG_GPI_INT(GPP_D8, NONE, PLTRST, LEVEL),
396 /* D9 : ISH_SPI_CSB */
397 PAD_CFG_GPO(GPP_D9, 1, PLTRST),
398 /* D10 : ISH_SPI_CLK */
399 PAD_CFG_GPI_APIC(GPP_D10, UP_20K, PLTRST, LEVEL, INVERT),
400 /* D11 : ISH_SPI_MISO_GP_BSSB_CLK */
401 PAD_CFG_GPI_SCI_LOW(GPP_D11, NONE, DEEP, LEVEL),
402 /* D12 : ISH_SPI_MOSI_GP_BSSB_DI */
403 /* D13 : ISH_UART0_RXD_SML0BDATA */
404 PAD_CFG_GPO(GPP_D13, 1, DEEP),
405 /* D14 : ISH_UART0_TXD_SML0BCLK */
406 PAD_CFG_GPO(GPP_D14, 1, PLTRST),
407 /* D15 : ISH_UART0_RTSB_GPSPI2_CS1B */
408 /* D16 : ISH_UART0_CTSB_SML0BALERTB */
409 PAD_CFG_GPI_SCI_HIGH(GPP_D16, NONE, DEEP, LEVEL),
410 /* D17 : DMIC_CLK_1_SNDW3_CLK */
411 /* D18 : DMIC_DATA_1_SNDW3_DATA */
412 /* D19 : DMIC_CLK_0_SNDW4_CLK */
413 /* D20 : DMIC_DATA_0_SNDW4_DATA */
414 /* D21 : SPI1_IO_2 */
415 PAD_CFG_NF(GPP_D21, NONE, PLTRST, NF1),
416 /* D22 : SPI1_IO_3 */
417 PAD_CFG_NF(GPP_D22, NONE, PLTRST, NF1),
418 /* D23 : ISH_I2C2_SCL_I2C3_SCL */
420 /* E0 : SATAXPCIE_0_SATAGP_0 */
421 /* E1 : SATAXPCIE_1_SATAGP_1 */
422 /* E2 : SATAXPCIE_2_SATAGP_2 */
423 PAD_CFG_GPI(GPP_E2, UP_20K, PLTRST),
424 /* E3 : EC_SMI_N */
425 PAD_CFG_GPI_SMI(GPP_E3, NONE, PLTRST, EDGE_SINGLE, NONE),
426 /* E4 : SATA_DEVSLP_0 */
427 PAD_CFG_NF(GPP_E4, NONE, DEEP, NF1),
428 /* E5 : SATA_DEVSLP_1 */
429 /* E6 : SATA_DEVSLP_2 */
430 PAD_CFG_GPI_SCI(GPP_E6, NONE, DEEP, OFF, NONE),
431 /* E7 : CPU_GP_1 */
432 PAD_CFG_GPI_INT(GPP_E7, NONE, PLTRST, EDGE_SINGLE),
433 /* E8 : SATA_LEDB */
434 /* E9 : USB2_OCB_0 */
435 /* E10 : USB2_OCB_1 */
436 /* E11 : USB2_OCB_2 */
437 /* E12 : USB2_OCB_3 */
439 /* F0 : SATAXPCIE_3_SATAGP_3 */
440 /* F1 : SATAXPCIE_4_SATAGP_4 */
441 /* F2 : SATAXPCIE_5_SATAGP_5 */
442 /* F3 : SATAXPCIE_6_SATAGP_6 */
443 /* F4 : SLOT2_RST_N */
444 PAD_CFG_GPO(GPP_F4, 1, PLTRST),
445 /* F5 : SATA_DEVSLP_3 */
446 /* F6 : SATA_DEVSLP_4 */
447 /* F7 : ME_PG_LED */
448 PAD_CFG_GPI_INT(GPP_F7, NONE, PLTRST, LEVEL),
449 /* F8 : SATA_DEVSLP_6 */
450 /* F9 : PEG_SLOT_RST */
451 PAD_CFG_GPO(GPP_F9, 1, PLTRST),
452 /* F10 : BIOS_RECOVERY */
453 PAD_CFG_GPI_INT(GPP_F10, NONE, PLTRST, LEVEL),
454 /* F11 : SATA_SLOAD */
455 /* F12 : SATA_S-DATA_OUT1 */
456 /* F13 : SATA_S-DATA_OUT0 */
457 /* F14 : PS_ON */
458 /* F15 : USB2_OC_4 */
459 /* F16 : USB2_OC_5 */
460 /* F17 : USB2_OC_6 */
461 /* F18 : USB2_OC_7 */
462 /* F19 : EDP_VDDEN */
463 /* F20 : EDP_BKLTEN */
464 /* F21 : EDP_BKLTCTL */
465 /* F22 : DDPF_C_TRLCLK */
466 /* F23 : DDPF_C_TRLDATA */
468 /* G0 : SD_DATA */
469 /* G1 : SD_DATA0 */
470 /* G2 : SD_DATA1 */
471 /* G3 : SD_DATA2 */
472 /* G4 : SD_DATA3 */
473 /* G5 : GPP_G_5_SD3_CDB */
474 PAD_CFG_NF(GPP_G5, UP_20K, DEEP, GPIO),
475 /* G6 : SD_CLK */
476 /* G7 : GPP_G_7_SD3_WP */
477 PAD_CFG_NF(GPP_G7, UP_20K, DEEP, GPIO),
479 /* H0 : SRCCLKREQB_6 */
480 /* H1 : SRCCLKREQB_7 */
481 /* H2 : SRCCLKREQB_8 */
482 /* H3 : SRCCLKREQB_9 */
483 /* H4 : SRCCLKREQB_10 */
484 /* H5 : SRCCLKREQB_11 */
485 /* H6 : SRCCLKREQB_12 */
486 /* H7 : SRCCLKREQB_13 */
487 /* H8 : SRCCLKREQB_14 */
488 /* H9 : SRCCLKREQB_15 */
489 /* H10 : Audio Power Enable */
490 PAD_CFG_GPO(GPP_H10, 1, PLTRST),
491 /* H11 : SML_2_DATA */
492 /* H12 : SML_2_ALERT */
493 /* H13 : SML_3_CLK */
494 /* H14 : SML_3_DATA */
495 /* H15 : SML_3_ALERT */
496 /* H16 : TBT_CIO_PWREN */
497 PAD_CFG_GPO(GPP_H16, 1, PLTRST),
498 /* H17 : TBT_FORCE_PWR */
499 PAD_CFG_GPO(GPP_H17, 0, PLTRST),
500 /* H18 : SML_4_ALERT */
501 /* H19 : ISH_I2C0_SDA */
502 /* H20 : ISH_I2C0_SCL */
503 /* H21 : ISH_I2C1_SDA */
504 /* H22 : ISH_I2C1_SCL */
505 /* H23 : TBT_CIO_PLUG_EVENT_N */
506 PAD_CFG_GPI_SCI_LOW(GPP_H23, NONE, PLTRST, EDGE_SINGLE),
508 /* I0 : DDPB_HPD_0 */
509 /* I1 : DDPC_HPD_1 */
510 /* I2 : DPPD_HPD_2 */
511 /* I3 : DPPE_HPD_3 */
512 /* I4 : EDP_HPD */
513 /* I5 : DDPB_C_TRLCLK */
514 /* I6 : DDPB_C_TRLDATA */
515 /* I7 : DDPC_C_TRLCLK */
516 /* I8 : DDPC_C_TRLDATA */
517 /* I9 : DDPD_C_TRLCLK */
518 /* I10 : DDPD_C_TRLDATA */
519 /* I11 : M2_SKT2_C_FG0 */
520 /* I12 : M2_SKT2_CFG1 */
521 /* I13 : M2_SKT2_C_FG2 */
522 /* I14 : M2_SKT2_C_FG3 */
524 /* J0 : I2C_TCH_PNL_INT */
525 PAD_CFG_GPI_APIC(GPP_J0, UP_20K, PLTRST, EDGE_SINGLE, INVERT),
526 /* J1 : CPU_C10_GATE */
527 /* J2 : FPS_INT_N */
528 PAD_CFG_GPI_APIC(GPP_J2, NONE, PLTRST, EDGE_SINGLE, NONE),
529 /* J3 : FPS_RST_N */
530 PAD_CFG_GPO(GPP_J3, 1, PLTRST),
531 /* J4 : CNV_BRI_DT_UART0_RTS */
532 /* J5 : CNV_BRI_RSP_UART0_RXD */
533 /* J6 : CNV_RGI_DT_UART0_TXD */
534 /* J7 : CNV_RGI_RSP_UART0_CTS */
535 /* J8 : CNV_M_FUART2_RXD */
536 /* J9 : CNV_M_FUART2_TXD */
537 /* J10 : I2C_TCH_PNL_RST_N */
538 PAD_CFG_GPO(GPP_J10, 1, PLTRST),
539 /* J11 : SPEAKER_PD */
540 PAD_CFG_GPO(GPP_J11, 1, PLTRST),
542 /* K0 : GPP_K0 */
543 /* K1 : SATA_ODD_PWRGT_R */
544 PAD_CFG_GPO(GPP_K1, 1, PLTRST),
545 /* K2 : SATA_ODD_DA_N */
546 PAD_CFG_GPI_SCI_HIGH(GPP_K2, NONE, PLTRST, EDGE_SINGLE),
547 /* K3 : GPP_K3 */
548 /* K4 : GPP_K4 */
549 /* K5 : GPP_K5 */
550 /* K6 : GPP_K6 */
551 /* K7 : GPP_K7 */
552 /* K8 : GPP_K8 */
553 /* K9 : GPP_K9 */
554 /* K10 : GPP_K10 */
555 /* K11 : RUNTIME_SCI */
556 PAD_CFG_GPI_SCI_LOW(GPP_K11, UP_20K, PLTRST, LEVEL),
557 /* K12 : GSXDOUT */
558 /* K13 : GSXSLOAD */
559 /* K14 : GSXDIN */
560 /* K15 : GSXSRESET */
561 /* K16 : GSXCLK */
562 /* K17 : ADR_COMPLETE */
563 /* K18 : SLOT2_WAKE_N */
564 PAD_CFG_GPI_SCI_LOW(GPP_K18, NONE, PLTRST, LEVEL),
565 /* K19 : SMI */
566 /* K20 : GPP_K20 */
567 /* K21 : GPP_K21 */
568 /* K22 : IMGCLKOUT_0 */
569 /* K23 : IMGCLKOUT_1 */
571 /* GPD */
572 /* GPD_0 : BATLOWB */
573 /* GPD_1 : ACPRESENT */
574 /* GPD_2 : LAN_WAKEB */
575 /* GPD_3 : PWRBTNB */
576 /* GPD_4 : SLP_S3B */
577 /* GPD_5 : SLP_S4B */
578 /* GPD_6 : SLP_AB */
579 /* GPD_7 : GPD_7 */
580 /* GPD-8 : SUSCLK */
581 /* GPD-9 : SLP_WLANB */
582 /* GPD-10 : SLP_5B */
583 /* GPD_11 : LANPHYPC */
585 #endif
587 /* Early pad configuration in bootblock */
588 static const struct pad_config early_gpio_table[] = {
589 /* C20 : UART2_RXD */
590 PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1),
591 /* C21 : UART2_TXD */
592 PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1),
595 const struct pad_config *__weak variant_gpio_table(size_t *num)
597 *num = ARRAY_SIZE(gpio_table);
598 return gpio_table;
601 const struct pad_config *__weak
602 variant_early_gpio_table(size_t *num)
604 *num = ARRAY_SIZE(early_gpio_table);
605 return early_gpio_table;
608 static const struct cros_gpio cros_gpios[] = {
609 CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME),
612 DECLARE_WEAK_CROS_GPIOS(cros_gpios);