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_SCI(GPIO_3
, PULL_NONE
, EDGE_LOW
),
20 /* UART_WAKE_L_M2_APU */
21 PAD_SCI(GPIO_4
, PULL_UP
, EDGE_LOW
),
25 PAD_GPO(GPIO_6
, HIGH
),
27 PAD_SCI(GPIO_7
, PULL_UP
, EDGE_LOW
),
29 PAD_SCI(GPIO_8
, PULL_UP
, EDGE_LOW
),
30 /* USB_HDR_P0/1/2/3_SMI_L */
31 PAD_SCI(GPIO_9
, PULL_UP
, EDGE_LOW
),
32 /* MPM_EVENT_L, input or OD output */
33 PAD_GPI(GPIO_10
, PULL_UP
),
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
),
68 PAD_INT(GPIO_31
, PULL_NONE
, EDGE_LOW
, STATUS_DELIVERY
),
70 PAD_SCI(GPIO_32
, PULL_UP
, EDGE_LOW
),
71 /* GPIO_33 - GPIO_37: Not available */
73 PAD_NF(GPIO_38
, CLK_REQ5_L
, PULL_NONE
),
75 PAD_NF(GPIO_39
, CLK_REQ6_L
, PULL_NONE
),
78 /* GPIO_41: Not available */
80 PAD_GPI(GPIO_42
, PULL_UP
),
81 /* GPIO_43 - GPIO_66: Not available */
83 PAD_NF(GPIO_67
, SPI_ROM_REQ
, PULL_NONE
),
85 PAD_NF(GPIO_68
, SPI1_DAT2
, PULL_NONE
),
87 PAD_NF(GPIO_69
, SPI1_DAT3
, PULL_NONE
),
89 PAD_NF(GPIO_70
, SPI2_CLK
, PULL_NONE
),
90 /* GPIO_71 - GPIO_73: Not available */
91 /* NFC_SB_CTL/UART4_FC_L */
92 PAD_GPO(GPIO_74
, HIGH
),
94 PAD_NF(GPIO_75
, SPI2_CS1_L
, PULL_NONE
),
96 PAD_NF(GPIO_76
, SPI_ROM_GNT
, PULL_NONE
),
98 PAD_NF(GPIO_77
, SPI1_CLK
, PULL_NONE
),
100 PAD_GPO(GPIO_78
, HIGH
),
102 PAD_GPO(GPIO_79
, HIGH
),
104 PAD_NF(GPIO_80
, SPI1_DAT1
, PULL_NONE
),
106 PAD_NF(GPIO_81
, SPI1_DAT0
, PULL_NONE
),
107 /* GPIO_82 - GPIO_83: Not available */
109 PAD_NF(GPIO_84
, FANIN0
, PULL_NONE
),
111 PAD_NF(GPIO_85
, FANOUT0
, PULL_NONE
),
112 /* Not available on package */
114 /* GPIO_87 - GPIO_88: Not available */
116 PAD_GPI(GPIO_89
, PULL_UP
),
118 PAD_SCI(GPIO_90
, PULL_UP
, EDGE_LOW
),
120 PAD_SCI(GPIO_91
, PULL_UP
, EDGE_LOW
),
122 PAD_NF(GPIO_92
, CLK_REQ0_L
, PULL_NONE
),
123 /* GPIO_93 - GPIO_103: Not available */
125 PAD_NF(GPIO_104
, SPI2_DAT0
, PULL_NONE
),
127 PAD_NF(GPIO_105
, SPI2_DAT1
, PULL_NONE
),
129 PAD_NF(GPIO_106
, SPI2_DAT2
, PULL_NONE
),
131 PAD_NF(GPIO_107
, SPI2_DAT3
, PULL_NONE
),
132 /* GPIO_108 - GPIO_112: Not available */
134 PAD_NF(GPIO_113
, I2C2_SCL
, PULL_NONE
),
136 PAD_NF(GPIO_114
, I2C2_SDA
, PULL_NONE
),
138 PAD_NF(GPIO_115
, CLK_REQ1_L
, PULL_NONE
),
140 PAD_NF(GPIO_116
, CLK_REQ2_L
, PULL_NONE
),
141 /* GPIO_117 - GPIO_129: Not available */
142 /* SATA_ACT_L - phoenix does not have SATA, so force inactive */
143 PAD_GPO(GPIO_130
, HIGH
),
145 PAD_NF(GPIO_131
, CLK_REQ3_L
, PULL_NONE
),
147 PAD_NF(GPIO_132
, CLK_REQ4_L
, PULL_NONE
),
148 /* GPIO_133 - GPIO_134: Not available */
150 PAD_NF(GPIO_135
, UART2_CTS_L
, PULL_NONE
),
152 PAD_NF(GPIO_136
, UART2_RXD
, PULL_NONE
),
154 PAD_NF(GPIO_137
, UART2_RTS_L
, PULL_NONE
),
156 PAD_NF(GPIO_138
, UART2_TXD
, PULL_NONE
),
158 PAD_INT(GPIO_139
, PULL_NONE
, EDGE_LOW
, STATUS_DELIVERY
),
160 PAD_NF(GPIO_140
, UART0_CTS_L
, PULL_NONE
),
162 PAD_NF(GPIO_141
, UART0_RXD
, PULL_NONE
),
164 PAD_NF(GPIO_142
, UART0_RTS_L
, PULL_NONE
),
166 PAD_NF(GPIO_143
, UART0_TXD
, PULL_NONE
),
167 /* CAM_FW_UPDATE_WP_L */
168 PAD_GPO(GPIO_144
, LOW
),
170 PAD_NF(GPIO_145
, I2C0_SCL
, PULL_NONE
),
172 PAD_NF(GPIO_146
, I2C0_SDA
, PULL_NONE
),
174 PAD_NF(GPIO_147
, I2C1_SCL
, PULL_NONE
),
176 PAD_NF(GPIO_148
, I2C1_SDA
, PULL_NONE
),
177 /* GPIO_149 - GPIO_152: Not available */
179 PAD_GPO(GPIO_153
, LOW
),
181 PAD_GPO(GPIO_154
, HIGH
),
183 PAD_NF(GPIO_155
, UART4_RXD
, PULL_NONE
),
185 PAD_NF(GPIO_156
, UART4_TXD
, PULL_NONE
),
186 /* ALERT_M2_WWAN_L */
187 PAD_INT(GPIO_157
, PULL_UP
, EDGE_LOW
, STATUS_DELIVERY
),
190 void mainboard_program_gpios(void)
192 gpio_configure_pads(gpio_set_stage_ram
, ARRAY_SIZE(gpio_set_stage_ram
));