1 /* SPDX-License-Identifier: GPL-2.0-only */
7 * As a rule of thumb, GPIO pins used by coreboot should be initialized at
8 * bootblock while GPIO pins used only by the OS should be initialized at
11 static const struct soc_amd_gpio gpio_set_stage_ram
[] = {
13 PAD_NF(GPIO_0
, PWR_BTN_L
, PULL_NONE
),
15 PAD_NF(GPIO_1
, SYS_RESET_L
, PULL_NONE
),
17 PAD_NF_SCI(GPIO_2
, WAKE_L
, PULL_NONE
, EDGE_LOW
),
19 PAD_GPI(GPIO_3
, PULL_UP
),
20 /* UART_WAKE_L_M2_APU */
21 PAD_SCI(GPIO_4
, PULL_UP
, EDGE_LOW
),
22 /* MPM_EVENT_L, input or OD output */
23 PAD_GPI(GPIO_5
, PULL_UP
),
25 PAD_SCI(GPIO_6
, PULL_UP
, EDGE_LOW
),
27 PAD_SCI(GPIO_7
, PULL_UP
, EDGE_LOW
),
29 PAD_SCI(GPIO_8
, PULL_UP
, EDGE_LOW
),
31 PAD_SCI(GPIO_9
, PULL_UP
, EDGE_LOW
),
35 PAD_GPI(GPIO_11
, PULL_UP
),
37 PAD_GPO(GPIO_12
, HIGH
),
38 /* GPIO_13 - GPIO_15: Not available */
40 PAD_NF(GPIO_16
, USB_OC0_L
, PULL_NONE
),
42 PAD_SCI(GPIO_17
, PULL_UP
, EDGE_LOW
),
43 /* PCIE_WLAN_WAKE_L */
44 PAD_SCI(GPIO_18
, PULL_UP
, EDGE_LOW
),
46 PAD_NF(GPIO_19
, I2C3_SCL
, PULL_NONE
),
48 PAD_NF(GPIO_20
, I2C3_SDA
, PULL_NONE
),
50 PAD_NF(GPIO_21
, KBRST_L
, PULL_NONE
),
52 PAD_NF(GPIO_22
, ESPI_ALERT_D1
, PULL_NONE
),
54 PAD_NF(GPIO_23
, AC_PRES
, PULL_NONE
),
56 PAD_SCI(GPIO_24
, PULL_UP
, EDGE_LOW
),
57 /* GPIO_25: Not available */
59 PAD_NFO(GPIO_26
, PCIE_RST0_L
, HIGH
),
61 PAD_NFO(GPIO_27
, PCIE_RST1_L
, HIGH
),
62 /* GPIO_28: Not available */
64 PAD_NF(GPIO_29
, SPI_TPM_CS_L
, PULL_NONE
),
66 PAD_NF(GPIO_30
, ESPI_CS_L
, PULL_NONE
),
67 /* GPIO_31: Not available */
69 PAD_NF(GPIO_32
, LPC_RST_L
, PULL_NONE
),
70 /* GPIO_33 - GPIO_39: Not available */
71 /* USB2_HDR_P0/1_SMI */
72 PAD_SCI(GPIO_40
, PULL_UP
, EDGE_LOW
),
73 /* GPIO_41: Not available */
75 PAD_GPO(GPIO_42
, HIGH
),
76 /* GPIO_43 - GPIO_66: Not available */
78 PAD_NF(GPIO_67
, SPI_ROM_REQ
, PULL_NONE
),
80 PAD_NF(GPIO_68
, SPI1_DAT2
, PULL_NONE
),
82 PAD_NF(GPIO_69
, SPI1_DAT3
, PULL_NONE
),
83 /* GPIO_70 - GPIO_73: Not available */
85 PAD_NF(GPIO_74
, SPI1_CS1_L
, PULL_NONE
),
86 /* GPIO_75: Not available */
88 PAD_NF(GPIO_76
, SPI_ROM_GNT
, PULL_NONE
),
90 PAD_NF(GPIO_77
, SPI1_CLK
, PULL_NONE
),
92 PAD_NF(GPIO_78
, SPI1_CS2_L
, PULL_NONE
),
93 /* GPIO_79: Not available */
95 PAD_NF(GPIO_80
, SPI1_DAT1
, PULL_NONE
),
97 PAD_NF(GPIO_81
, SPI1_DAT0
, PULL_NONE
),
98 /* GPIO_82 - GPIO_83: Not available */
100 PAD_NF(GPIO_84
, FANIN0
, PULL_NONE
),
102 PAD_NF(GPIO_85
, FANOUT0
, PULL_NONE
),
103 /* GPIO_86 - GPIO_88: Not available */
105 PAD_SCI(GPIO_89
, PULL_UP
, EDGE_LOW
),
106 /* ALERT_L_M2_SSD0 */
107 PAD_SCI(GPIO_90
, PULL_UP
, EDGE_LOW
),
108 /* PC beep to codec */
109 PAD_NF(GPIO_91
, SPKR
, PULL_NONE
),
111 PAD_NF(GPIO_92
, CLK_REQ0_L
, PULL_NONE
),
112 /* GPIO_93 - GPIO_112: Not available */
114 PAD_NF(GPIO_113
, I2C2_SCL
, PULL_NONE
),
116 PAD_NF(GPIO_114
, I2C2_SDA
, PULL_NONE
),
118 PAD_NF(GPIO_115
, CLK_REQ1_L
, PULL_NONE
),
120 PAD_NF(GPIO_116
, CLK_REQ2_L
, PULL_NONE
),
121 /* GPIO_117 - GPIO_129: Not available */
123 PAD_SCI(GPIO_130
, PULL_UP
, EDGE_LOW
),
125 PAD_NF(GPIO_131
, CLK_REQ3_L
, PULL_NONE
),
126 /* GPIO_132 - GPIO_135: Not available */
128 PAD_NF(GPIO_136
, UART2_RXD
, PULL_NONE
),
129 /* GPIO_137: Not available */
131 PAD_NF(GPIO_138
, UART2_TXD
, PULL_NONE
),
132 /* ALERT_L_M2_WWAN */
133 PAD_SCI(GPIO_139
, PULL_UP
, EDGE_LOW
),
135 PAD_NF(GPIO_140
, UART0_CTS_L
, PULL_NONE
),
137 PAD_NF(GPIO_141
, UART0_RXD
, PULL_NONE
),
139 PAD_NF(GPIO_142
, UART0_RTS_L
, PULL_NONE
),
141 PAD_NF(GPIO_143
, UART0_TXD
, PULL_NONE
),
142 /* CAM_FW_UPDATE_WP_L */
143 PAD_GPO(GPIO_144
, LOW
),
145 PAD_NF(GPIO_145
, I2C0_SCL
, PULL_NONE
),
147 PAD_NF(GPIO_146
, I2C0_SDA
, PULL_NONE
),
149 PAD_NF(GPIO_147
, I2C1_SCL
, PULL_NONE
),
151 PAD_NF(GPIO_148
, I2C1_SDA
, PULL_NONE
),
154 void mainboard_program_gpios(void)
156 gpio_configure_pads(gpio_set_stage_ram
, ARRAY_SIZE(gpio_set_stage_ram
));