mb/google/nissa/var/rull: add ssd timing and modify ssd GPIO pins of rtd3
[coreboot2.git] / src / mainboard / clevo / kbl-u / variants / n13xwu / gpio.c
blob4b25993843076a492c32c40aff553393ee542f6a
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <soc/gpio.h>
4 #include <variant/gpio.h>
6 static const struct pad_config gpio_table[] = {
7 // RCIN#
8 _PAD_CFG_STRUCT(GPP_A0, 0x44000502, 0x0),
10 // LAD0
11 _PAD_CFG_STRUCT(GPP_A1, 0x44000402, 0x0),
13 // LAD1
14 _PAD_CFG_STRUCT(GPP_A2, 0x44000402, 0x0),
16 // LAD2
17 _PAD_CFG_STRUCT(GPP_A3, 0x44000402, 0x0),
19 // LAD3
20 _PAD_CFG_STRUCT(GPP_A4, 0x44000402, 0x0),
22 // LFRAME#
23 _PAD_CFG_STRUCT(GPP_A5, 0x44000600, 0x0),
25 // SERIRQ
26 _PAD_CFG_STRUCT(GPP_A6, 0x44000402, 0x0),
28 // PIRQA#
29 _PAD_CFG_STRUCT(GPP_A7, 0x44000102, 0x0),
31 // CLKRUN#
32 _PAD_CFG_STRUCT(GPP_A8, 0x44000700, 0x0),
34 // CLKOUT_LPC0
35 _PAD_CFG_STRUCT(GPP_A9, 0x44000600, 0x0),
37 // CLKOUT_LPC1
38 _PAD_CFG_STRUCT(GPP_A10, 0x44000600, 0x1000),
40 // PME#
41 _PAD_CFG_STRUCT(GPP_A11, 0x44000200, 0x0),
43 // BM_BUSY#
44 _PAD_CFG_STRUCT(GPP_A12, 0x44000200, 0x0),
46 // SUSWARN#/SUSPWRDNACK
47 _PAD_CFG_STRUCT(GPP_A13, 0x44000200, 0x0),
49 // SUS_STAT#/ESPI_RESET#
50 _PAD_CFG_STRUCT(GPP_A14, 0x44000600, 0x0),
52 // SUS_ACK#
53 _PAD_CFG_STRUCT(GPP_A15, 0x44000502, 0x0),
55 // SD_1P8_SEL
56 _PAD_CFG_STRUCT(GPP_A16, 0x44000200, 0x0),
58 // SD_PWR_EN#
59 _PAD_CFG_STRUCT(GPP_A17, 0x44000200, 0x0),
61 // ISH_GP0
62 _PAD_CFG_STRUCT(GPP_A18, 0x44000201, 0x0),
64 // ISH_GP1
65 _PAD_CFG_STRUCT(GPP_A19, 0x44000603, 0x0),
67 // ISH_GP2
68 _PAD_CFG_STRUCT(GPP_A20, 0x44000200, 0x0),
70 // ISH_GP3
71 _PAD_CFG_STRUCT(GPP_A21, 0x84000200, 0x1000),
73 // ISH_GP4
74 _PAD_CFG_STRUCT(GPP_A22, 0x4000200, 0x0),
76 // ISH_GP5
77 _PAD_CFG_STRUCT(GPP_A23, 0x4000200, 0x0),
79 // CORE_VID0
80 _PAD_CFG_STRUCT(GPP_B0, 0x44000700, 0x0),
82 // CORE_VID1
83 _PAD_CFG_STRUCT(GPP_B1, 0x44000700, 0x0),
85 // VRALERT#
86 _PAD_CFG_STRUCT(GPP_B2, 0x44000200, 0x0),
88 // CPU_GP2
89 _PAD_CFG_STRUCT(GPP_B3, 0x44000200, 0x0),
91 // CPU_GP3
92 _PAD_CFG_STRUCT(GPP_B4, 0x44000200, 0x0),
94 // SRCCLKREQ0#
95 _PAD_CFG_STRUCT(GPP_B5, 0x44000200, 0x0),
97 // SRCCLKREQ1#
98 _PAD_CFG_STRUCT(GPP_B6, 0x44000200, 0x0),
100 // SRCCLKREQ2#
101 _PAD_CFG_STRUCT(GPP_B7, 0x44000700, 0x0),
103 // SRCCLKREQ3#
104 _PAD_CFG_STRUCT(GPP_B8, 0x44000700, 0x0),
106 // SRCCLKREQ4#
107 _PAD_CFG_STRUCT(GPP_B9, 0x44000702, 0x0),
109 // SRCCLKREQ5#
110 _PAD_CFG_STRUCT(GPP_B10, 0x44000702, 0x0),
112 // EXT_PWR_GATE#
113 _PAD_CFG_STRUCT(GPP_B11, 0x44000700, 0x0),
115 // SLP_S0#
116 _PAD_CFG_STRUCT(GPP_B12, 0x44000200, 0x0),
118 // PLTRST#
119 _PAD_CFG_STRUCT(GPP_B13, 0x44000700, 0x0),
121 // SPKR
122 _PAD_CFG_STRUCT(GPP_B14, 0x44000600, 0x1000),
124 // GSPI0_CS#
125 _PAD_CFG_STRUCT(GPP_B15, 0x44000200, 0x0),
127 // GSPI0_CLK
128 _PAD_CFG_STRUCT(GPP_B16, 0x44000200, 0x0),
130 // GSPI0_MISO
131 _PAD_CFG_STRUCT(GPP_B17, 0x44000200, 0x0),
133 // GSPI0_MOSI
134 _PAD_CFG_STRUCT(GPP_B18, 0x44000600, 0x3000),
136 // GSPI1_CS#
137 _PAD_CFG_STRUCT(GPP_B19, 0x44000200, 0x0),
139 // GSPI1_CLK
140 _PAD_CFG_STRUCT(GPP_B20, 0x44000200, 0x0),
142 // GSPI1_MISO
143 _PAD_CFG_STRUCT(GPP_B21, 0x44000200, 0x0),
145 // GSPI1_MOSI
146 _PAD_CFG_STRUCT(GPP_B22, 0x44000700, 0x1000),
148 // SML1ALERT#/PCHHOT#
149 _PAD_CFG_STRUCT(GPP_B23, 0x44000200, 0x0),
151 // SMBCLK
152 _PAD_CFG_STRUCT(GPP_C0, 0x44000702, 0x0),
154 // SMBDATA
155 _PAD_CFG_STRUCT(GPP_C1, 0x44000702, 0x1000),
157 // SMBALERT#
158 _PAD_CFG_STRUCT(GPP_C2, 0x44000201, 0x1000),
160 // SML0CLK
161 _PAD_CFG_STRUCT(GPP_C3, 0x44000200, 0x0),
163 // SML0DATA
164 _PAD_CFG_STRUCT(GPP_C4, 0x44000200, 0x0),
166 // SML0ALERT#
167 _PAD_CFG_STRUCT(GPP_C5, 0x44000200, 0x0),
169 // SML1CLK
170 // _PAD_CFG_STRUCT(GPP_C6, 0xffffffff, 0xffffff00),
172 // SML1DATA
173 // _PAD_CFG_STRUCT(GPP_C7, 0xffffffff, 0xffffff00),
175 // UART0_RXD
176 _PAD_CFG_STRUCT(GPP_C8, 0x44000700, 0x0),
178 // UART0_TXD
179 _PAD_CFG_STRUCT(GPP_C9, 0x44000700, 0x0),
181 // UART0_RTS#
182 _PAD_CFG_STRUCT(GPP_C10, 0x44000700, 0x0),
184 // UART0_CTS#
185 _PAD_CFG_STRUCT(GPP_C11, 0x44000700, 0x0),
187 // UART1_RXD
188 _PAD_CFG_STRUCT(GPP_C12, 0x44000702, 0x0),
190 // UART1_TXD
191 _PAD_CFG_STRUCT(GPP_C13, 0x82880102, 0x0),
193 // UART1_RTS#
194 _PAD_CFG_STRUCT(GPP_C14, 0x44000700, 0x0),
196 // UART1_CTS#
197 _PAD_CFG_STRUCT(GPP_C15, 0x44000700, 0x0),
199 // I2C0_SDA
200 _PAD_CFG_STRUCT(GPP_C16, 0x44000200, 0x0),
202 // I2C0_SCL
203 _PAD_CFG_STRUCT(GPP_C17, 0x44000200, 0x0),
205 // I2C1_SDA
206 _PAD_CFG_STRUCT(GPP_C18, 0x44000200, 0x0),
208 // I2C1_SCL
209 _PAD_CFG_STRUCT(GPP_C19, 0x40880102, 0x0),
211 // UART2_RXD
212 _PAD_CFG_STRUCT(GPP_C20, 0x44000702, 0x0),
214 // UART2_TXD
215 _PAD_CFG_STRUCT(GPP_C21, 0x44000700, 0x0),
217 // UART2_RTS#
218 _PAD_CFG_STRUCT(GPP_C22, 0x44000700, 0x0),
220 // UART2_CTS#
221 _PAD_CFG_STRUCT(GPP_C23, 0x44000700, 0x0),
223 // SPI1_CS#
224 _PAD_CFG_STRUCT(GPP_D0, 0x44000200, 0x0),
226 // SPI1_CLK
227 _PAD_CFG_STRUCT(GPP_D1, 0x44000200, 0x0),
229 // SPI1_MISO
230 _PAD_CFG_STRUCT(GPP_D2, 0x44000200, 0x0),
232 // SPI1_MOSI
233 _PAD_CFG_STRUCT(GPP_D3, 0x44000200, 0x0),
235 // FLASHTRIG
236 _PAD_CFG_STRUCT(GPP_D4, 0x44000200, 0x0),
238 // ISH_I2C0_SDA
239 _PAD_CFG_STRUCT(GPP_D5, 0x44000700, 0x0),
241 // ISH_I2C0_SCL
242 _PAD_CFG_STRUCT(GPP_D6, 0x44000700, 0x0),
244 // ISH_I2C1_SDA
245 _PAD_CFG_STRUCT(GPP_D7, 0x44000700, 0x0),
247 // ISH_I2C1_SCL
248 _PAD_CFG_STRUCT(GPP_D8, 0x44000201, 0x0),
250 // GPIO
251 _PAD_CFG_STRUCT(GPP_D9, 0x44000200, 0x0),
253 // GPIO
254 _PAD_CFG_STRUCT(GPP_D10, 0x44000200, 0x0),
256 // GPIO
257 _PAD_CFG_STRUCT(GPP_D11, 0x44000200, 0x0),
259 // GPIO
260 _PAD_CFG_STRUCT(GPP_D12, 0x44000200, 0x0),
262 // ISH_UART0_RXD
263 _PAD_CFG_STRUCT(GPP_D13, 0x44000200, 0x0),
265 // ISH_UART0_TXD
266 _PAD_CFG_STRUCT(GPP_D14, 0x44000200, 0x0),
268 // ISH_UART0_RTS#
269 _PAD_CFG_STRUCT(GPP_D15, 0x44000700, 0x0),
271 // ISH_UART0_CTS#
272 _PAD_CFG_STRUCT(GPP_D16, 0x44000700, 0x0),
274 // DMIC_CLK1
275 _PAD_CFG_STRUCT(GPP_D17, 0x44000700, 0x0),
277 // DMIC_DATA1
278 _PAD_CFG_STRUCT(GPP_D18, 0x44000700, 0x0),
280 // DMIC_CLK0
281 _PAD_CFG_STRUCT(GPP_D19, 0x44000700, 0x0),
283 // DMIC_DATA0
284 _PAD_CFG_STRUCT(GPP_D20, 0x44000700, 0x0),
286 // SPI1_IO2
287 _PAD_CFG_STRUCT(GPP_D21, 0x44000102, 0x0),
289 // SPI1_IO3
290 _PAD_CFG_STRUCT(GPP_D22, 0x44000700, 0x0),
292 // I2S_MCLK
293 _PAD_CFG_STRUCT(GPP_D23, 0x44000700, 0x0),
295 // SATAXPCIE0/SATAGP0
296 _PAD_CFG_STRUCT(GPP_E0, 0x42100100, 0x1000),
298 // SATAXPCIE1/SATAGP1
299 _PAD_CFG_STRUCT(GPP_E1, 0x44000702, 0x0),
301 // SATAXPCIE2/SATAGP2
302 _PAD_CFG_STRUCT(GPP_E2, 0x44000502, 0x0),
304 // CPU_GP0
305 _PAD_CFG_STRUCT(GPP_E3, 0x40000000, 0x0),
307 // DEVSLP0
308 _PAD_CFG_STRUCT(GPP_E4, 0x4000700, 0x0),
310 // DEVSLP1
311 _PAD_CFG_STRUCT(GPP_E5, 0x4000700, 0x0),
313 // DEVSLP2
314 _PAD_CFG_STRUCT(GPP_E6, 0x44000200, 0x0),
316 // CPU_GP1
317 _PAD_CFG_STRUCT(GPP_E7, 0x44000100, 0x0),
319 // SATALED#
320 _PAD_CFG_STRUCT(GPP_E8, 0x44000700, 0x0),
322 // USB2_OC0#
323 _PAD_CFG_STRUCT(GPP_E9, 0x44000200, 0x0),
325 // USB2_OC1#
326 _PAD_CFG_STRUCT(GPP_E10, 0x44000200, 0x0),
328 // USB2_OC2#
329 _PAD_CFG_STRUCT(GPP_E11, 0x44000200, 0x0),
331 // USB2_OC3#
332 _PAD_CFG_STRUCT(GPP_E12, 0x44000200, 0x0),
334 // DDPB_HPD0
335 _PAD_CFG_STRUCT(GPP_E13, 0x44000700, 0x0),
337 // DDPC_HPD1
338 _PAD_CFG_STRUCT(GPP_E14, 0x44000700, 0x0),
340 // DDPD_HPD2
341 _PAD_CFG_STRUCT(GPP_E15, 0x42840102, 0x0),
343 // DDPE_HPD3
344 _PAD_CFG_STRUCT(GPP_E16, 0x80880102, 0x0),
346 // EDP_HPD
347 _PAD_CFG_STRUCT(GPP_E17, 0x44000702, 0x0),
349 // DDPB_CTRLCLK
350 _PAD_CFG_STRUCT(GPP_E18, 0x44000700, 0x0),
352 // DDPB_CTRLDATA
353 _PAD_CFG_STRUCT(GPP_E19, 0x44000700, 0x1000),
355 // DDPC_CTRLCLK
356 _PAD_CFG_STRUCT(GPP_E20, 0x44000702, 0x0),
358 // DDPC_CTRLDATA
359 _PAD_CFG_STRUCT(GPP_E21, 0x44000702, 0x1000),
361 // DDPD_CTRLCLK
362 _PAD_CFG_STRUCT(GPP_E22, 0x40100000, 0x0),
364 // DDPD_CTRLDATA
365 _PAD_CFG_STRUCT(GPP_E23, 0x44000201, 0x1000),
367 // BATLOW#
368 _PAD_CFG_STRUCT(GPD0, 0x4000702, 0x0),
370 // LANPHYPC
371 _PAD_CFG_STRUCT(GPD1, 0x4000700, 0x0),
373 // LAN_WAKE#
374 _PAD_CFG_STRUCT(GPD2, 0x880502, 0x0),
376 // PWRBTN#
377 _PAD_CFG_STRUCT(GPD3, 0x4000702, 0x3000),
379 // SLP_S3#
380 _PAD_CFG_STRUCT(GPD4, 0x4000700, 0x0),
382 // SLP_S4#
383 _PAD_CFG_STRUCT(GPD5, 0x4000700, 0x0),
385 // SLP_A#
386 _PAD_CFG_STRUCT(GPD6, 0x4000700, 0x0),
388 // RSVD
389 _PAD_CFG_STRUCT(GPD7, 0x4000301, 0x0),
391 // SUSCLK
392 _PAD_CFG_STRUCT(GPD8, 0x4000700, 0x0),
394 // SLP_WLAN#
395 _PAD_CFG_STRUCT(GPD9, 0x4000700, 0x0),
397 // SLP_S5#
398 _PAD_CFG_STRUCT(GPD10, 0x4000700, 0x0),
400 // LANPHYPC
401 _PAD_CFG_STRUCT(GPD11, 0x4000500, 0x0),
403 // I2S2_SCLK
404 _PAD_CFG_STRUCT(GPP_F0, 0x44000702, 0x0),
406 // I2S2_SFRM
407 _PAD_CFG_STRUCT(GPP_F1, 0x44000702, 0x0),
409 // I2S2_TXD
410 _PAD_CFG_STRUCT(GPP_F2, 0x44000700, 0x0),
412 // I2S2_RXD
413 _PAD_CFG_STRUCT(GPP_F3, 0x44000702, 0x0),
415 // I2C2_SDA
416 _PAD_CFG_STRUCT(GPP_F4, 0x44000702, 0x2000000),
418 // I2C2_SCL
419 _PAD_CFG_STRUCT(GPP_F5, 0x44000702, 0x2000000),
421 // I2C3_SDA
422 _PAD_CFG_STRUCT(GPP_F6, 0x44000702, 0x2000000),
424 // I2C3_SCL
425 _PAD_CFG_STRUCT(GPP_F7, 0x44000702, 0x2000000),
427 // I2C4_SDA
428 _PAD_CFG_STRUCT(GPP_F8, 0x44000702, 0x2000000),
430 // I2C4_SCL
431 _PAD_CFG_STRUCT(GPP_F9, 0x44000702, 0x2000000),
433 // I2C5_SDA/ISH_I2C2_SDA
434 _PAD_CFG_STRUCT(GPP_F10, 0x44000b02, 0x2000000),
436 // I2C5_SCL/ISH_I2C2_SCL
437 _PAD_CFG_STRUCT(GPP_F11, 0x44000b02, 0x2000000),
439 // EMMC_CMD
440 _PAD_CFG_STRUCT(GPP_F12, 0x44000702, 0x0),
442 // EMMC_DATA0
443 _PAD_CFG_STRUCT(GPP_F13, 0x44000702, 0x0),
445 // EMMC_DATA1
446 _PAD_CFG_STRUCT(GPP_F14, 0x44000702, 0x0),
448 // EMMC_DATA2
449 _PAD_CFG_STRUCT(GPP_F15, 0x44000702, 0x0),
451 // EMMC_DATA3
452 _PAD_CFG_STRUCT(GPP_F16, 0x44000702, 0x0),
454 // EMMC_DATA4
455 _PAD_CFG_STRUCT(GPP_F17, 0x44000702, 0x0),
457 // EMMC_DATA5
458 _PAD_CFG_STRUCT(GPP_F18, 0x44000702, 0x0),
460 // EMMC_DATA6
461 _PAD_CFG_STRUCT(GPP_F19, 0x44000702, 0x0),
463 // EMMC_DATA7
464 _PAD_CFG_STRUCT(GPP_F20, 0x44000702, 0x0),
466 // EMMC_RCLK
467 _PAD_CFG_STRUCT(GPP_F21, 0x44000702, 0x0),
469 // EMMC_CLK
470 _PAD_CFG_STRUCT(GPP_F22, 0x44000700, 0x0),
472 // GPIO
473 _PAD_CFG_STRUCT(GPP_F23, 0x40100100, 0x0),
475 // SD_CMD
476 _PAD_CFG_STRUCT(GPP_G0, 0x44000700, 0x0),
478 // SD_DATA0
479 _PAD_CFG_STRUCT(GPP_G1, 0x44000102, 0x0),
481 // SD_DATA1
482 _PAD_CFG_STRUCT(GPP_G2, 0x44000700, 0x0),
484 // SD_DATA2
485 _PAD_CFG_STRUCT(GPP_G3, 0x44000700, 0x0),
487 // SD_DATA3
488 _PAD_CFG_STRUCT(GPP_G4, 0x44000700, 0x0),
490 // SD_CD#
491 _PAD_CFG_STRUCT(GPP_G5, 0x44000702, 0x0),
493 // SD_CLK
494 _PAD_CFG_STRUCT(GPP_G6, 0x44000700, 0x0),
496 // SD_WP
497 _PAD_CFG_STRUCT(GPP_G7, 0x44000702, 0x0)
500 void variant_configure_gpios(void)
502 gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table));