coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef AMD_SABRINA_GPIO_H
4 #define AMD_SABRINA_GPIO_H
5 
6 #define GPIO_DEVICE_NAME "AMD0030"
7 #define GPIO_DEVICE_DESC "GPIO Controller"
8 
9 #ifndef __ACPI__
10 #include <soc/iomap.h>
11 #include <amdblocks/gpio.h>
12 #endif /* !__ACPI__ */
13 
14 #include <amdblocks/gpio_defs.h>
15 
16 /* The following sections describe only the GPIOs defined for this SOC */
17 
18 #define SOC_GPIO_TOTAL_PINS 158
19 
20 /* Bank 0: GPIO_0 - GPIO_63 */
21 #define GPIO_0 0
22 #define GPIO_1 1
23 #define GPIO_2 2
24 #define GPIO_3 3
25 #define GPIO_4 4
26 #define GPIO_5 5
27 #define GPIO_6 6
28 #define GPIO_7 7
29 #define GPIO_8 8
30 #define GPIO_9 9
31 #define GPIO_10 10
32 #define GPIO_11 11
33 #define GPIO_12 12
34 #define GPIO_13 13
35 #define GPIO_14 14
36 #define GPIO_16 16
37 #define GPIO_17 17
38 #define GPIO_18 18
39 #define GPIO_19 19
40 #define GPIO_20 20
41 #define GPIO_21 21
42 #define GPIO_22 22
43 #define GPIO_23 23
44 #define GPIO_24 24
45 #define GPIO_26 26
46 #define GPIO_27 27
47 #define GPIO_29 29
48 #define GPIO_30 30
49 #define GPIO_31 31
50 #define GPIO_32 32
51 #define GPIO_38 38
52 #define GPIO_39 39
53 #define GPIO_40 40
54 #define GPIO_42 42
55 
56 /* Bank 1: GPIO_64 - GPIO_127 */
57 #define GPIO_67 67
58 #define GPIO_68 68
59 #define GPIO_69 69
60 #define GPIO_70 70
61 #define GPIO_74 74
62 #define GPIO_75 75
63 #define GPIO_76 76
64 #define GPIO_77 77
65 #define GPIO_78 78
66 #define GPIO_79 79
67 #define GPIO_80 80
68 #define GPIO_81 81
69 #define GPIO_84 84
70 #define GPIO_85 85
71 #define GPIO_86 86
72 #define GPIO_89 89
73 #define GPIO_90 90
74 #define GPIO_91 91
75 #define GPIO_92 92
76 #define GPIO_104 104
77 #define GPIO_105 105
78 #define GPIO_106 106
79 #define GPIO_107 107
80 #define GPIO_113 113
81 #define GPIO_114 114
82 #define GPIO_115 115
83 #define GPIO_116 116
84 
85 /* Bank 2: GPIO_128 - GPIO_191 */
86 #define GPIO_130 130
87 #define GPIO_131 131
88 #define GPIO_132 132
89 #define GPIO_135 135
90 #define GPIO_136 136
91 #define GPIO_137 137
92 #define GPIO_138 138
93 #define GPIO_139 139
94 #define GPIO_140 140
95 #define GPIO_141 141
96 #define GPIO_142 142
97 #define GPIO_143 143
98 #define GPIO_144 144
99 #define GPIO_145 145
100 #define GPIO_146 146
101 #define GPIO_147 147
102 #define GPIO_148 148
103 #define GPIO_153 153
104 #define GPIO_154 154
105 #define GPIO_155 155
106 #define GPIO_156 156
107 #define GPIO_157 157
108 
109 /* IOMUX function names and values */
110 #define GPIO_0_IOMUX_PWR_BTN_L 0
111 #define GPIO_0_IOMUX_GPIOxx 1
112 #define GPIO_1_IOMUX_SYS_RESET_L 0
113 #define GPIO_1_IOMUX_GPIOxx 1
114 #define GPIO_2_IOMUX_WAKE_L 0
115 #define GPIO_2_IOMUX_GPIOxx 1
116 #define GPIO_3_IOMUX_GPIOxx 0
117 #define GPIO_4_IOMUX_GPIOxx 0
118 #define GPIO_5_IOMUX_GPIOxx 0
119 #define GPIO_5_IOMUX_DEVSLP0 1
120 #define GPIO_6_IOMUX_GPIOxx 0
121 #define GPIO_6_IOMUX_DEVSLP1 1
122 #define GPIO_6_IOMUX_MDIO0_SCL 2
123 #define GPIO_7_IOMUX_GPIOxx 0
124 #define GPIO_7_IOMUX_SVI_RST_L 1
125 #define GPIO_8_IOMUX_GPIOxx 0
126 #define GPIO_8_IOMUX_TMU_CLK_OUT0 1
127 #define GPIO_8_IOMUX_TMU_CLK_OUT1 2
128 #define GPIO_9_IOMUX_GPIOxx 0
129 /* GPIO 9 IOMUX == 1 is also GPIOxx */
130 #define GPIO_9_IOMUX_MDIO2_SCL 2
131 #define GPIO_10_IOMUX_GPIOxx 0
132 #define GPIO_10_IOMUX_S0A3_GPIO 1
133 #define GPIO_11_IOMUX_GPIOxx 0
134 #define GPIO_11_IOMUX_BLINK 1
135 #define GPIO_11_IOMUX_MDIO3_SDA 2
136 #define GPIO_12_IOMUX_LLB_L 0
137 #define GPIO_12_IOMUX_GPIOxx 1
138 #define GPIO_12_IOMUX_LPC_PME_L 2
139 #define GPIO_13_IOMUX_USB_SBTX_0 0
140 #define GPIO_13_IOMUX_GPIOxx 1
141 #define GPIO_14_IOMUX_USB_SBTX_1 0
142 #define GPIO_14_IOMUX_GPIOxx 1
143 #define GPIO_16_IOMUX_USB_OC0_L 0
144 #define GPIO_16_IOMUX_GPIOxx 1
145 #define GPIO_17_IOMUX_USB_OC1_L 0
146 #define GPIO_17_IOMUX_GPIOxx 1
147 #define GPIO_18_IOMUX_USB_OC2_L 0
148 #define GPIO_18_IOMUX_GPIOxx 1
149 #define GPIO_19_IOMUX_SMBUS1_SCL 0
150 #define GPIO_19_IOMUX_I2C3_SCL 1
151 #define GPIO_19_IOMUX_I3C3_SCL 2
152 #define GPIO_19_IOMUX_GPIOxx 3
153 #define GPIO_20_IOMUX_SMBUS1_SDA 0
154 #define GPIO_20_IOMUX_I2C3_SDA 1
155 #define GPIO_20_IOMUX_I3C3_SDA 2
156 #define GPIO_20_IOMUX_GPIOxx 3
157 #define GPIO_21_IOMUX_ESPI_RESET_L 0
158 #define GPIO_21_IOMUX_KBRST_L 1
159 #define GPIO_21_IOMUX_GPIOxx 2
160 #define GPIO_22_IOMUX_LDRQ0_L 0
161 #define GPIO_22_IOMUX_ESPI_ALERT_D1 1
162 #define GPIO_22_IOMUX_GPIOxx 2
163 #define GPIO_22_IOMUX_SD0_CMD 3
164 #define GPIO_23_IOMUX_AC_PRES 0
165 #define GPIO_23_IOMUX_GPIOxx 1
166 #define GPIO_23_IOMUX_MDIO2_SDA 2
167 #define GPIO_24_IOMUX_USB_OC3_L 0
168 #define GPIO_24_IOMUX_GPIOxx 1
169 #define GPIO_26_IOMUX_PCIE_RST0_L 0
170 #define GPIO_26_IOMUX_GPIOxx 1
171 #define GPIO_27_IOMUX_GPIOxx 0
172 #define GPIO_27_IOMUX_PCIE_RST1_L 1
173 #define GPIO_29_IOMUX_SPI_TPM_CS_L 0
174 #define GPIO_29_IOMUX_GPIOxx 1
175 #define GPIO_30_IOMUX_SPI_CS2_L 0
176 #define GPIO_30_IOMUX_ESPI_CS_L 1
177 #define GPIO_30_IOMUX_GPIOxx 2
178 #define GPIO_31_IOMUX_SPI_CS3_L 0
179 #define GPIO_31_IOMUX_GPIOxx 1
180 #define GPIO_32_IOMUX_GPIOxx 0
181 #define GPIO_32_IOMUX_LPC_RST_L 1
182 #define GPIO_32_IOMUX_MDIO3_SCL 2
183 #define GPIO_38_IOMUX_CLK_REQ5_L 0
184 #define GPIO_38_IOMUX_GPIOxx 1
185 #define GPIO_38_IOMUX_MDIO1_SDA 2
186 #define GPIO_39_IOMUX_CLK_REQ6_L 0
187 #define GPIO_39_IOMUX_GPIOxx 1
188 #define GPIO_39_IOMUX_MDIO1_SCL 2
189 #define GPIO_40_IOMUX_GPIOxx 0
190 /* GPIO 40 IOMUX == 1 is also GPIOxx */
191 #define GPIO_40_IOMUX_MDIO0_SDA 2
192 #define GPIO_42_IOMUX_GPIOxx 0
193 #define GPIO_67_IOMUX_SPI_ROM_REQ 0
194 #define GPIO_67_IOMUX_GPIOxx 1
195 #define GPIO_68_IOMUX_SPI1_DAT2 0
196 #define GPIO_68_IOMUX_GPIOxx 1
197 #define GPIO_68_IOMUX_SERIRQ 2
198 #define GPIO_68_IOMUX_SD0_DATA3 3
199 #define GPIO_69_IOMUX_SPI1_DAT3 0
200 #define GPIO_69_IOMUX_GPIOxx 1
201 #define GPIO_69_IOMUX_SD0_CLK 2
202 #define GPIO_70_IOMUX_SPI2_CLK 0
203 #define GPIO_70_IOMUX_GPIOxx 1
204 #define GPIO_74_IOMUX_SPI1_CS1_L 0
205 #define GPIO_74_IOMUX_GPIOxx 1
206 #define GPIO_74_IOMUX_GFX10_CAC_IPIO0 2
207 #define GPIO_75_IOMUX_SPI2_CS1_L 0
208 #define GPIO_75_IOMUX_LPCCLK1 1
209 #define GPIO_75_IOMUX_GPIOxx 2
210 #define GPIO_76_IOMUX_SPI_ROM_GNT 0
211 #define GPIO_76_IOMUX_GPIOxx 1
212 #define GPIO_77_IOMUX_SPI1_CLK 0
213 #define GPIO_77_IOMUX_GPIOxx 1
214 /* GPIO 77 IOMUX == 2 is also GPIOxx */
215 #define GPIO_77_IOMUX_SD0_DATA0 3
216 #define GPIO_78_IOMUX_SPI1_CS2_L 0
217 #define GPIO_78_IOMUX_GPIOxx 1
218 #define GPIO_78_IOMUX_GFX10_CAC_IPIO1 2
219 #define GPIO_78_IOMUX_SD0_DATA1 3
220 #define GPIO_79_IOMUX_SPI1_CS3_L 0
221 #define GPIO_79_IOMUX_GPIOxx 1
222 #define GPIO_79_IOMUX_LPC_CLKRUN_L 2
223 #define GPIO_80_IOMUX_SPI1_DAT1 0
224 #define GPIO_80_IOMUX_GPIOxx 1
225 /* GPIO 80 IOMUX == 2 is also GPIOxx */
226 #define GPIO_80_IOMUX_SD0_DATA2 3
227 #define GPIO_81_IOMUX_SPI1_DAT0 0
228 #define GPIO_81_IOMUX_GPIOxx 1
229 #define GPIO_84_IOMUX_FANIN0 0
230 #define GPIO_84_IOMUX_GPIOxx 1
231 #define GPIO_85_IOMUX_FANOUT0 0
232 #define GPIO_85_IOMUX_GPIOxx 1
233 #define GPIO_86_IOMUX_GPIOxx 0
234 #define GPIO_86_IOMUX_LPC_SMI_L 1
235 #define GPIO_89_IOMUX_GENINT1_L 0
236 #define GPIO_89_IOMUX_PSP_INTR0 1
237 #define GPIO_89_IOMUX_GPIOxx 2
238 #define GPIO_90_IOMUX_GENINT2_L 0
239 #define GPIO_90_IOMUX_PSP_INTR1 1
240 #define GPIO_90_IOMUX_GPIOxx 2
241 #define GPIO_91_IOMUX_SPKR 0
242 #define GPIO_91_IOMUX_GPIOxx 1
243 #define GPIO_92_IOMUX_CLK_REQ0_L 0
244 #define GPIO_92_IOMUX_SATA_IS0_L 1
245 #define GPIO_92_IOMUX_SATA_ZP0_L 2
246 #define GPIO_92_IOMUX_GPIOxx 3
247 #define GPIO_104_IOMUX_SPI2_DAT0 0
248 #define GPIO_104_IOMUX_GPIOxx 1
249 #define GPIO_105_IOMUX_SPI2_DAT1 0
250 #define GPIO_105_IOMUX_GPIOxx 1
251 #define GPIO_106_IOMUX_SPI2_DAT2 0
252 #define GPIO_106_IOMUX_GPIOxx 1
253 #define GPIO_107_IOMUX_SPI2_DAT3 0
254 #define GPIO_107_IOMUX_GPIOxx 1
255 #define GPIO_113_IOMUX_SMBUS0_SCL 0
256 #define GPIO_113_IOMUX_I2C2_SCL 1
257 #define GPIO_113_IOMUX_I3C2_SCL 2
258 #define GPIO_113_IOMUX_GPIOxx 3
259 #define GPIO_114_IOMUX_SMBUS0_SDA 0
260 #define GPIO_114_IOMUX_I2C2_SDA 1
261 #define GPIO_114_IOMUX_I3C2_SDA 2
262 #define GPIO_114_IOMUX_GPIOxx 3
263 #define GPIO_115_IOMUX_CLK_REQ1_L 0
264 #define GPIO_115_IOMUX_GPIOxx 1
265 #define GPIO_116_IOMUX_CLK_REQ2_L 0
266 #define GPIO_116_IOMUX_GPIOxx 1
267 #define GPIO_130_IOMUX_SATA_ACT_L 0
268 #define GPIO_130_IOMUX_GPIOxx 1
269 #define GPIO_131_IOMUX_CLK_REQ3_L 0
270 #define GPIO_131_IOMUX_SATA_IS1_L 1
271 #define GPIO_131_IOMUX_SATA_ZP1_L 2
272 #define GPIO_131_IOMUX_GPIOxx 3
273 #define GPIO_132_IOMUX_CLK_REQ4_L 0
274 #define GPIO_132_IOMUX_OSCIN 1
275 #define GPIO_132_IOMUX_GPIOxx 2
276 #define GPIO_135_IOMUX_GPIOxx 0
277 #define GPIO_135_IOMUX_UART2_CTS_L 1
278 #define GPIO_135_IOMUX_UART3_TXD 2
279 #define GPIO_136_IOMUX_GPIOxx 0
280 #define GPIO_136_IOMUX_UART2_RXD 1
281 #define GPIO_137_IOMUX_GPIOxx 0
282 #define GPIO_137_IOMUX_UART2_RTS_L 1
283 #define GPIO_137_IOMUX_UART3_RXD 2
284 #define GPIO_138_IOMUX_GPIOxx 0
285 #define GPIO_138_IOMUX_UART2_TXD 1
286 #define GPIO_139_IOMUX_GPIOxx 0
287 #define GPIO_139_IOMUX_UART2_INTR 1
288 #define GPIO_140_IOMUX_GPIOxx 0
289 #define GPIO_140_IOMUX_UART0_CTS_L 1
290 #define GPIO_140_IOMUX_UART1_TXD 2
291 #define GPIO_141_IOMUX_GPIOxx 0
292 #define GPIO_141_IOMUX_UART0_RXD 1
293 #define GPIO_142_IOMUX_GPIOxx 0
294 #define GPIO_142_IOMUX_UART0_RTS_L 1
295 #define GPIO_142_IOMUX_UART1_RXD 2
296 #define GPIO_143_IOMUX_GPIOxx 0
297 #define GPIO_143_IOMUX_UART0_TXD 1
298 #define GPIO_144_IOMUX_GPIOxx 0
299 #define GPIO_144_IOMUX_SHUTDOWN_L 1
300 #define GPIO_144_IOMUX_UART0_INTR 2
301 #define GPIO_145_IOMUX_I2C0_SCL 0
302 #define GPIO_145_IOMUX_I3C0_SCL 1
303 #define GPIO_145_IOMUX_GPIOxx 2
304 #define GPIO_146_IOMUX_I2C0_SDA 0
305 #define GPIO_146_IOMUX_I3C0_SDA 1
306 #define GPIO_146_IOMUX_GPIOxx 2
307 #define GPIO_147_IOMUX_I2C1_SCL 0
308 #define GPIO_147_IOMUX_I3C1_SCL 1
309 #define GPIO_147_IOMUX_GPIOxx 2
310 #define GPIO_148_IOMUX_I2C1_SDA 0
311 #define GPIO_148_IOMUX_I3C1_SDA 1
312 #define GPIO_148_IOMUX_GPIOxx 2
313 #define GPIO_153_IOMUX_GPIOxx 0
314 #define GPIO_153_IOMUX_UART4_CTS_L 1
315 #define GPIO_154_IOMUX_GPIOxx 0
316 #define GPIO_154_IOMUX_UART4_RTS_L 1
317 #define GPIO_155_IOMUX_GPIOxx 0
318 #define GPIO_155_IOMUX_UART4_RXD 1
319 #define GPIO_156_IOMUX_GPIOxx 0
320 #define GPIO_156_IOMUX_UART4_TXD 1
321 #define GPIO_157_IOMUX_GPIOxx 0
322 #define GPIO_157_IOMUX_UART4_INTR 1
323 
324 #endif /* AMD_SABRINA_GPIO_H */