coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio_defs.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _DENVERTON_NS_GPIO_DEFS_H_
4 #define _DENVERTON_NS_GPIO_DEFS_H_
5 
6 #include <soc/pcr.h>
7 
8 /*
9 * There are 3 GPIO groups. North Community, South Community DFX/Group0/Group1.
10 * The GPIO groups are accessed through register blocks called communities.
11 */
12 
13 #define V_PCH_GPIO_NC_PAD_MAX 41
14 #define V_PCH_GPIO_SC_DFX_PAD_MAX 18
15 #define V_PCH_GPIO_SC0_PAD_MAX 53
16 #define V_PCH_GPIO_SC1_PAD_MAX 42
17 #define V_PCH_GPIO_GROUP_MAX 4
18 
19 //
20 // GPIO Community 0 Private Configuration Registers
21 //
22 
23 //
24 // Power Group NORTH_ALL
25 //
26 #define R_PCH_PCR_GPIO_NC_PAD_OWN 0x20
27 #define R_PCH_PCR_GPIO_NC_GPI_VWM_EN 0x70
28 #define R_PCH_PCR_GPIO_NC_PADCFGLOCK 0x90
29 #define R_PCH_PCR_GPIO_NC_PADCFGLOCKTX 0x94
30 #define R_PCH_PCR_GPIO_NC1_PADCFGLOCK_1 0x98
31 #define R_PCH_PCR_GPIO_NC1_PADCFGLOCKTX_1 0x9C
32 #define R_PCH_PCR_GPIO_NC_HOSTSW_OWN 0xC0
33 #define R_PCH_PCR_GPIO_NC_GPI_IS 0x0100
34 #define R_PCH_PCR_GPIO_NC_GPI_IE 0x0120
35 #define R_PCH_PCR_GPIO_NC_GPI_GPE_STS 0x0140
36 #define R_PCH_PCR_GPIO_NC_GPI_GPE_EN 0x0160
37 #define R_PCH_PCR_GPIO_NC_SMI_STS 0x0180
38 #define R_PCH_PCR_GPIO_NC_SMI_EN 0x01A0
39 #define R_PCH_PCR_GPIO_NC_NMI_STS 0x01C0
40 #define R_PCH_PCR_GPIO_NC_NMI_EN 0x01E0
41 #define R_PCH_PCR_GPIO_NC_PADCFG_OFFSET 0x400
42 
43 //
44 // GPIO Community 1 Private Configuration Registers
45 //
46 
47 //
48 // Power Group SOUTH_DFX
49 //
50 #define R_PCH_PCR_GPIO_SC_DFX_PAD_OWN 0x20
51 #define R_PCH_PCR_GPIO_SC_DFX_GPI_VWM_EN 0x70
52 #define R_PCH_PCR_GPIO_SC_DFX_PADCFGLOCK 0x90
53 #define R_PCH_PCR_GPIO_SC_DFX_PADCFGLOCKTX 0x94
54 #define R_PCH_PCR_GPIO_SC_DFX_HOSTSW_OWN 0xC0
55 #define R_PCH_PCR_GPIO_SC_DFX_GPI_IS 0x0100
56 #define R_PCH_PCR_GPIO_SC_DFX_GPI_IE 0x0120
57 #define R_PCH_PCR_GPIO_SC_DFX_GPI_GPE_STS 0x0140
58 #define R_PCH_PCR_GPIO_SC_DFX_GPI_GPE_EN 0x0160
59 #define R_PCH_PCR_GPIO_SC_DFX_PADCFG_OFFSET 0x400
60 //
61 // Power Group SOUTH_GROUP0
62 //
63 #define R_PCH_PCR_GPIO_SC0_PAD_OWN 0x2C
64 #define R_PCH_PCR_GPIO_SC0_GPI_VWM_EN 0x74
65 #define R_PCH_PCR_GPIO_SC0_PADCFGLOCK 0x98
66 #define R_PCH_PCR_GPIO_SC0_PADCFGLOCKTX 0x9C
67 #define R_PCH_PCR_GPIO_SC0_HOSTSW_OWN 0xC4
68 #define R_PCH_PCR_GPIO_SC0_GPI_IS 0x0104
69 #define R_PCH_PCR_GPIO_SC0_GPI_IE 0x0124
70 #define R_PCH_PCR_GPIO_SC0_GPI_GPE_STS 0x0144
71 #define R_PCH_PCR_GPIO_SC0_GPI_GPE_EN 0x0164
72 #define R_PCH_PCR_GPIO_SC0_SMI_STS 0x0184
73 #define R_PCH_PCR_GPIO_SC0_SMI_EN 0x01A4
74 #define R_PCH_PCR_GPIO_SC0_NMI_STS 0x01C4
75 #define R_PCH_PCR_GPIO_SC0_NMI_EN 0x01E4
76 #define R_PCH_PCR_GPIO_SC0_PADCFG_OFFSET 0x490
77 //
78 // Power Group SOUTH_GROUP1
79 //
80 #define R_PCH_PCR_GPIO_SC1_PAD_OWN 0x48
81 #define R_PCH_PCR_GPIO_SC1_GPI_VWM_EN 0x7C
82 #define R_PCH_PCR_GPIO_SC1_PADCFGLOCK 0xA8
83 #define R_PCH_PCR_GPIO_SC1_PADCFGLOCKTX 0xAC
84 #define R_PCH_PCR_GPIO_SC1_HOSTSW_OWN 0xCC
85 #define R_PCH_PCR_GPIO_SC1_GPI_IS 0x010C
86 #define R_PCH_PCR_GPIO_SC1_GPI_IE 0x012C
87 #define R_PCH_PCR_GPIO_SC1_GPI_GPE_STS 0x014C
88 #define R_PCH_PCR_GPIO_SC1_GPI_GPE_EN 0x016C
89 #define R_PCH_PCR_GPIO_SC1_SMI_STS 0x018C
90 #define R_PCH_PCR_GPIO_SC1_SMI_EN 0x01AC
91 #define R_PCH_PCR_GPIO_SC1_NMI_STS 0x01CC
92 #define R_PCH_PCR_GPIO_SC1_NMI_EN 0x01EC
93 #define R_PCH_PCR_GPIO_SC1_PADCFG_OFFSET 0x638
94 
95 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_NORTH_ALL_0 0x90
96 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_NORTH_ALL_0 0x94
97 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_NORTH_ALL_1 0x98
98 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_NORTH_ALL_1 0x9C
99 
100 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_SOUTH_DFX_0 0x90
101 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_SOUTH_DFX_0 0x94
102 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_SOUTH_GROUP0_0 0x98
103 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_SOUTH_GROUP0_0 0x9C
104 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_SOUTH_GROUP0_1 0xA0
105 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_SOUTH_GROUP0_1 0xA4
106 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_SOUTH_GROUP1_0 0xA8
107 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_SOUTH_GROUP1_0 0xAC
108 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCK_SOUTH_GROUP1_1 0xB0
109 #define R_PCH_PCR_GPIO_GPP_PADCFGLOCKTX_SOUTH_GROUP1_1 0xB4
110 
111 //
112 // Pad Configuration Register DW0
113 //
114 
115 // Pad Reset Config
116 #define B_PCH_GPIO_RST_CONF ((1 << 31) | (1 << 30))
117 #define N_PCH_GPIO_RST_CONF 30
118 #define V_PCH_GPIO_RST_CONF_POW_GOOD 0x00
119 #define V_PCH_GPIO_RST_CONF_DEEP_RST 0x01
120 #define V_PCH_GPIO_RST_CONF_GPIO_RST 0x02
121 #define V_PCH_GPIO_RST_CONF_RESUME_RST 0x03 // Only for GPD Group
122 
123 // RX Pad State Select
124 #define B_PCH_GPIO_RX_PAD_STATE (1 << 29)
125 #define N_PCH_GPIO_RX_PAD_STATE 29
126 #define V_PCH_GPIO_RX_PAD_STATE_RAW 0x00
127 #define V_PCH_GPIO_RX_PAD_STATE_INT 0x01
128 
129 // RX Raw Override to 1
130 #define B_PCH_GPIO_RX_RAW1 (1 << 28)
131 #define N_PCH_GPIO_RX_RAW1 28
132 #define V_PCH_GPIO_RX_RAW1_DIS 0x00
133 #define V_PCH_GPIO_RX_RAW1_EN 0x01
134 
135 // RX Level/Edge Configuration
136 #define B_PCH_GPIO_RX_LVL_EDG ((1 << 26) | (1 << 25))
137 #define N_PCH_GPIO_RX_LVL_EDG 25
138 #define V_PCH_GPIO_RX_LVL_EDG_LVL 0x00
139 #define V_PCH_GPIO_RX_LVL_EDG_EDG 0x01
140 #define V_PCH_GPIO_RX_LVL_EDG_0 0x02
141 #define V_PCH_GPIO_RX_LVL_EDG_RIS_FAL 0x03
142 
143 // RX Level/Edge Configuration
144 #define B_PCH_GPIO_PRE_GFRX_SEL (1 << 24)
145 #define N_PCH_GPIO_PRE_GFRX_SEL 24
146 #define V_PCH_GPIO_PRE_GFRX_SEL_DIS 0x00
147 #define V_PCH_GPIO_PRE_GFRX_SEL_EN 0x01
148 
149 // RX Invert
150 #define B_PCH_GPIO_RXINV (1 << 23)
151 #define N_PCH_GPIO_RXINV 23
152 #define V_PCH_GPIO_RXINV_NO 0x00
153 #define V_PCH_GPIO_RXINV_YES 0x01
154 
155 // RXTXENCFG
156 #define B_PCH_GPIO_RXTXENCFG ((1 << 22) | (1 << 21))
157 #define N_PCH_GPIO_RXTXENCFG 21
158 #define V_PCH_GPIO_RXTXENCFG_DEF_FUN 0x00
159 #define V_PCH_GPIO_RXTXENCFG_TX_EN_L 0x01
160 #define V_PCH_GPIO_RXTXENCFG_TX_EN_H 0x02
161 #define V_PCH_GPIO_RXTXENCFG_TXRXEN 0x03
162 
163 // GPIO Input Route IOxAPIC
164 #define B_PCH_GPIO_RX_APIC_ROUTE (1 << 20)
165 #define N_PCH_GPIO_RX_APIC_ROUTE 20
166 #define V_PCH_GPIO_RX_APIC_ROUTE_DIS 0x00
167 #define V_PCH_GPIO_RX_APIC_ROUTE_EN 0x01
168 
169 // GPIO Input Route SCI
170 #define B_PCH_GPIO_RX_SCI_ROUTE (1 << 19)
171 #define N_PCH_GPIO_RX_SCI_ROUTE 19
172 #define V_PCH_GPIO_RX_SCI_ROUTE_DIS 0x00
173 #define V_PCH_GPIO_RX_SCI_ROUTE_EN 0x01
174 
175 // GPIO Input Route SMI
176 #define B_PCH_GPIO_RX_SMI_ROUTE (1 << 18)
177 #define N_PCH_GPIO_RX_SMI_ROUTE 18
178 #define V_PCH_GPIO_RX_SMI_ROUTE_DIS 0x00
179 #define V_PCH_GPIO_RX_SMI_ROUTE_EN 0x01
180 
181 // GPIO Input Route NMI
182 #define B_PCH_GPIO_RX_NMI_ROUTE (1 << 17)
183 #define N_PCH_GPIO_RX_NMI_ROUTE 17
184 #define V_PCH_GPIO_RX_NMI_ROUTE_DIS 0x00
185 #define V_PCH_GPIO_RX_NMI_ROUTE_EN 0x01
186 
187 // GPIO Pad Mode
188 #define B_PCH_GPIO_PAD_MODE ((1 << 12) | (1 << 11) | (1 << 10))
189 #define N_PCH_GPIO_PAD_MODE 10
190 #define V_PCH_GPIO_PAD_MODE_GPIO 0
191 #define V_PCH_GPIO_PAD_MODE_NAT_1 1
192 #define V_PCH_GPIO_PAD_MODE_NAT_2 2
193 #define V_PCH_GPIO_PAD_MODE_NAT_3 3
194 #define V_PCH_GPIO_PAD_MODE_NAT_4 4
195 #define V_PCH_GPIO_PAD_MODE_NAT_5 5
196 #define V_PCH_GPIO_PAD_MODE_NAT_6 6
197 #define V_PCH_GPIO_PAD_MODE_NAT_7 7
198 
199 // GPIO RX Disable
200 #define B_PCH_GPIO_RXDIS (1 << 9)
201 #define N_PCH_GPIO_RXDIS 9
202 #define V_PCH_GPIO_RXDIS_EN 0x00
203 #define V_PCH_GPIO_RXDIS_DIS 0x01
204 
205 // GPIO TX Disable
206 #define B_PCH_GPIO_TXDIS (1 << 8)
207 #define N_PCH_GPIO_TXDIS 8
208 #define V_PCH_GPIO_TXDIS_EN 0x00
209 #define V_PCH_GPIO_TXDIS_DIS 0x01
210 
211 // GPIO RX State
212 #define B_PCH_GPIO_RX_STATE (1 << 1)
213 #define N_PCH_GPIO_RX_STATE 1
214 #define V_PCH_GPIO_RX_STATE_LOW 0x00
215 #define V_PCH_GPIO_RX_STATE_HIGH 0x01
216 
217 // GPIO TX State
218 #define B_PCH_GPIO_TX_STATE (1 << 0)
219 #define N_PCH_GPIO_TX_STATE 0
220 #define V_PCH_GPIO_TX_STATE_LOW 0x00
221 #define V_PCH_GPIO_TX_STATE_HIGH 0x01
222 
223 //
224 // Pad Configuration Register DW1
225 //
226 
227 // Padtol
228 #define B_PCH_GPIO_PADTOL (1 << 25)
229 #define N_PCH_GPIO_PADTOL 25
230 #define V_PCH_GPIO_PADTOL_NONE 0x00
231 #define V_PCH_GPIO_PADTOL_CLEAR 0x00
232 #define V_PCH_GPIO_PADTOL_SET 0x01
233 
234 // Termination
235 #define B_PCH_GPIO_TERM ((1 << 13) | (1 << 12) | (1 << 11) | (1 << 10))
236 #define N_PCH_GPIO_TERM 10
237 #define V_PCH_GPIO_TERM_WPD_NONE 0x00
238 #define V_PCH_GPIO_TERM_WPD_5K 0x02
239 #define V_PCH_GPIO_TERM_WPD_20K 0x04
240 #define V_PCH_GPIO_TERM_WPU_NONE 0x08
241 #define V_PCH_GPIO_TERM_WPU_1K 0x09
242 #define V_PCH_GPIO_TERM_WPU_2K 0x0B
243 #define V_PCH_GPIO_TERM_WPU_5K 0x0A
244 #define V_PCH_GPIO_TERM_WPU_20K 0x0C
245 #define V_PCH_GPIO_TERM_WPU_1K_2K 0x0D
246 #define V_PCH_GPIO_TERM_NATIVE 0x0F
247 
248 #define PID_NorthCommunity PID_GPIOCOM0
249 #define PID_SouthCommunity PID_GPIOCOM1
250 
251 // GPIO_MISC0
252 // HSUART0: 101, 102, 13, 98
253 // HSUART1: 96, 97,95 94
254 
255 #define GPIO_SMB3_CLTT_DATA 12
256 #define R_PAD_CFG_DW0_SMB3_CLTT_DATA 0x490
257 #define PID_SMB3_CLTT_DATA PID_SouthCommunity
258 
259 #define GPIO_SMB3_CLTT_CLK 13
260 #define R_PAD_CFG_DW0_SMB3_CLTT_CLK 0x498
261 #define PID_SMB3_CLTT_CLK PID_SouthCommunity
262 
263 #define GPIO_PCIE_CLKREQ5_N 98
264 #define R_PAD_CFG_DW0_PCIE_CLKREQ5_N 0x4A0
265 #define PID_PCIE_CLKREQ5_N PID_SouthCommunity
266 
267 #define GPIO_PCIE_CLKREQ6_N 99
268 #define R_PAD_CFG_DW0_PCIE_CLKREQ6_N 0x4a8
269 #define PID_PCIE_CLKREQ6_N PID_SouthCommunity
270 
271 #define GPIO_PCIE_CLKREQ7_N 100
272 #define R_PAD_CFG_DW0_PCIE_CLKREQ7_N 0x4b0
273 #define PID_PCIE_CLKREQ7_N PID_SouthCommunity
274 
275 #define GPIO_UART0_RXD 101
276 #define R_PAD_CFG_DW0_UART0_RXD 0x4b8
277 #define PID_UART0_RXD PID_SouthCommunity
278 
279 #define GPIO_UART0_TXD 102
280 #define R_PAD_CFG_DW0_UART0_TXD 0x4c0
281 #define PID_UART0_TXD PID_SouthCommunity
282 
283 #define GPIO_UART1_RXD 96
284 #define R_PAD_CFG_DW0_UART1_RXD 0x5b8
285 #define PID_UART1_RXD PID_SouthCommunity
286 
287 #define GPIO_UART1_TXD 97
288 #define R_PAD_CFG_DW0_UART1_TXD 0x5c0
289 #define PID_UART1_TXD PID_SouthCommunity
290 
291 #define GPIO_SATA1_SDOUT 95
292 #define R_PAD_CFG_DW0_SATA1_SDOUT 0x5b0
293 #define PID_SATA1_SDOUT PID_SouthCommunity
294 
295 #define GPIO_SATA0_SDOUT 94
296 #define R_PAD_CFG_DW0_SATA0_SDOUT 0x5a8
297 #define PID_SATA0_SDOUT PID_SouthCommunity
298 
299 ///
300 /// Denverton GPIO Groups
301 ///
302 
303 #define GPIO_DNV_GROUP_NC 0x0100
304 #define GPIO_DNV_GROUP_SC_DFX 0x0101
305 #define GPIO_DNV_GROUP_SC0 0x0102
306 #define GPIO_DNV_GROUP_SC1 0x0103
307 #define GPIO_DNV_GROUP_MIN GPIO_DNV_GROUP_NC
308 #define GPIO_DNV_GROUP_MAX GPIO_DNV_GROUP_SC1
309 #define NORTH_ALL_GBE0_SDP0 0x01000000
310 #define NORTH_ALL_GBE1_SDP0 0x01000001
311 #define NORTH_ALL_GBE0_SDP1 0x01000002
312 #define NORTH_ALL_GBE1_SDP1 0x01000003
313 #define NORTH_ALL_GBE0_SDP2 0x01000004
314 #define NORTH_ALL_GBE1_SDP2 0x01000005
315 #define NORTH_ALL_GBE0_SDP3 0x01000006
316 #define NORTH_ALL_GBE1_SDP3 0x01000007
317 #define NORTH_ALL_GBE2_LED0 0x01000008
318 #define NORTH_ALL_GBE2_LED1 0x01000009
319 #define NORTH_ALL_GBE0_I2C_CLK 0x0100000A
320 #define NORTH_ALL_GBE0_I2C_DATA 0x0100000B
321 #define NORTH_ALL_GBE1_I2C_CLK 0x0100000C
322 #define NORTH_ALL_GBE1_I2C_DATA 0x0100000D
323 #define NORTH_ALL_NCSI_RXD0 0x0100000E
324 #define NORTH_ALL_NCSI_CLK_IN 0x0100000F
325 #define NORTH_ALL_NCSI_RXD1 0x01000010
326 #define NORTH_ALL_NCSI_CRS_DV 0x01000011
327 #define NORTH_ALL_NCSI_ARB_IN 0x01000012
328 #define NORTH_ALL_NCSI_TX_EN 0x01000013
329 #define NORTH_ALL_NCSI_TXD0 0x01000014
330 #define NORTH_ALL_NCSI_TXD1 0x01000015
331 #define NORTH_ALL_NCSI_ARB_OUT 0x01000016
332 #define NORTH_ALL_GBE0_LED0 0x01000017
333 #define NORTH_ALL_GBE0_LED1 0x01000018
334 #define NORTH_ALL_GBE1_LED0 0x01000019
335 #define NORTH_ALL_GBE1_LED1 0x0100001A
336 #define NORTH_ALL_GPIO_0 0x0100001B
337 #define NORTH_ALL_PCIE_CLKREQ0_N 0x0100001C
338 #define NORTH_ALL_PCIE_CLKREQ1_N 0x0100001D
339 #define NORTH_ALL_PCIE_CLKREQ2_N 0x0100001E
340 #define NORTH_ALL_PCIE_CLKREQ3_N 0x0100001F
341 #define NORTH_ALL_PCIE_CLKREQ4_N 0x01000020
342 #define NORTH_ALL_GPIO_1 0x01000021
343 #define NORTH_ALL_GPIO_2 0x01000022
344 #define NORTH_ALL_SVID_ALERT_N 0x01000023
345 #define NORTH_ALL_SVID_DATA 0x01000024
346 #define NORTH_ALL_SVID_CLK 0x01000025
347 #define NORTH_ALL_THERMTRIP_N 0x01000026
348 #define NORTH_ALL_PROCHOT_N 0x01000027
349 #define NORTH_ALL_MEMHOT_N 0x01000028
350 #define SOUTH_DFX_DFX_PORT_CLK0 0x01010000
351 #define SOUTH_DFX_DFX_PORT_CLK1 0x01010001
352 #define SOUTH_DFX_DFX_PORT0 0x01010002
353 #define SOUTH_DFX_DFX_PORT1 0x01010003
354 #define SOUTH_DFX_DFX_PORT2 0x01010004
355 #define SOUTH_DFX_DFX_PORT3 0x01010005
356 #define SOUTH_DFX_DFX_PORT4 0x01010006
357 #define SOUTH_DFX_DFX_PORT5 0x01010007
358 #define SOUTH_DFX_DFX_PORT6 0x01010008
359 #define SOUTH_DFX_DFX_PORT7 0x01010009
360 #define SOUTH_DFX_DFX_PORT8 0x0101000A
361 #define SOUTH_DFX_DFX_PORT9 0x0101000B
362 #define SOUTH_DFX_DFX_PORT10 0x0101000C
363 #define SOUTH_DFX_DFX_PORT11 0x0101000D
364 #define SOUTH_DFX_DFX_PORT12 0x0101000E
365 #define SOUTH_DFX_DFX_PORT13 0x0101000F
366 #define SOUTH_DFX_DFX_PORT14 0x01010010
367 #define SOUTH_DFX_DFX_PORT15 0x01010011
368 #define SOUTH_GROUP0_SMB3_CLTT_DATA 0x01020000
369 #define SOUTH_GROUP0_SMB3_CLTT_CLK 0x01020001
370 #define SOUTH_GROUP0_GPIO_12 0x01020000
371 #define SOUTH_GROUP0_SMB5_GBE_ALRT_N 0x01020001
372 #define SOUTH_GROUP0_PCIE_CLKREQ5_N 0x01020002
373 #define SOUTH_GROUP0_PCIE_CLKREQ6_N 0x01020003
374 #define SOUTH_GROUP0_PCIE_CLKREQ7_N 0x01020004
375 #define SOUTH_GROUP0_UART0_RXD 0x01020005
376 #define SOUTH_GROUP0_UART0_TXD 0x01020006
377 #define SOUTH_GROUP0_SMB5_GBE_CLK 0x01020007
378 #define SOUTH_GROUP0_SMB5_GBE_DATA 0x01020008
379 #define SOUTH_GROUP0_ERROR2_N 0x01020009
380 #define SOUTH_GROUP0_ERROR1_N 0x0102000A
381 #define SOUTH_GROUP0_ERROR0_N 0x0102000B
382 #define SOUTH_GROUP0_IERR_N 0x0102000C
383 #define SOUTH_GROUP0_MCERR_N 0x0102000D
384 #define SOUTH_GROUP0_SMB0_LEG_CLK 0x0102000E
385 #define SOUTH_GROUP0_SMB0_LEG_DATA 0x0102000F
386 #define SOUTH_GROUP0_SMB0_LEG_ALRT_N 0x01020010
387 #define SOUTH_GROUP0_SMB1_HOST_DATA 0x01020011
388 #define SOUTH_GROUP0_SMB1_HOST_CLK 0x01020012
389 #define SOUTH_GROUP0_SMB2_PECI_DATA 0x01020013
390 #define SOUTH_GROUP0_SMB2_PECI_CLK 0x01020014
391 #define SOUTH_GROUP0_SMB4_CSME0_DATA 0x01020015
392 #define SOUTH_GROUP0_SMB4_CSME0_CLK 0x01020016
393 #define SOUTH_GROUP0_SMB4_CSME0_ALRT_N 0x01020017
394 #define SOUTH_GROUP0_USB_OC0_N 0x01020018
395 #define SOUTH_GROUP0_FLEX_CLK_SE0 0x01020019
396 #define SOUTH_GROUP0_FLEX_CLK_SE1 0x0102001A
397 #define SOUTH_GROUP0_GPIO_4 0x0102001B
398 #define SOUTH_GROUP0_GPIO_5 0x0102001C
399 #define SOUTH_GROUP0_GPIO_6 0x0102001D
400 #define SOUTH_GROUP0_GPIO_7 0x0102001E
401 #define SOUTH_GROUP0_SATA0_LED_N 0x0102001F
402 #define SOUTH_GROUP0_SATA1_LED_N 0x01020020
403 #define SOUTH_GROUP0_SATA_PDETECT0 0x01020021
404 #define SOUTH_GROUP0_SATA_PDETECT1 0x01020022
405 #define SOUTH_GROUP0_SATA0_SDOUT 0x01020023
406 #define SOUTH_GROUP0_SATA1_SDOUT 0x01020024
407 #define SOUTH_GROUP0_UART1_RXD 0x01020025
408 #define SOUTH_GROUP0_UART1_TXD 0x01020026
409 #define SOUTH_GROUP0_GPIO_8 0x01020027
410 #define SOUTH_GROUP0_GPIO_9 0x01020028
411 #define SOUTH_GROUP0_TCK 0x01020029
412 #define SOUTH_GROUP0_TRST_N 0x0102002A
413 #define SOUTH_GROUP0_TMS 0x0102002B
414 #define SOUTH_GROUP0_TDI 0x0102002C
415 #define SOUTH_GROUP0_TDO 0x0102002D
416 #define SOUTH_GROUP0_CX_PRDY_N 0x0102002E
417 #define SOUTH_GROUP0_CX_PREQ_N 0x0102002F
418 #define SOUTH_GROUP0_CTBTRIGINOUT 0x01020030
419 #define SOUTH_GROUP0_CTBTRIGOUT 0x01020031
420 #define SOUTH_GROUP0_DFX_SPARE2 0x01020032
421 #define SOUTH_GROUP0_DFX_SPARE3 0x01020033
422 #define SOUTH_GROUP0_DFX_SPARE4 0x01020034
423 #define SOUTH_GROUP1_SUSPWRDNACK 0x01030000
424 #define SOUTH_GROUP1_PMU_SUSCLK 0x01030001
425 #define SOUTH_GROUP1_ADR_TRIGGER 0x01030002
426 #define SOUTH_GROUP1_PMU_AC_PRESENT 0x01030002
427 #define SOUTH_GROUP1_PMU_SLP_S45_N 0x01030003
428 #define SOUTH_GROUP1_PMU_SLP_S3_N 0x01030004
429 #define SOUTH_GROUP1_PMU_WAKE_N 0x01030005
430 #define SOUTH_GROUP1_PMU_PWRBTN_N 0x01030006
431 #define SOUTH_GROUP1_PMU_RESETBUTTON_N 0x01030007
432 #define SOUTH_GROUP1_PMU_PLTRST_N 0x01030008
433 #define SOUTH_GROUP1_SUS_STAT_N 0x01030009
434 #define SOUTH_GROUP1_SLP_S0IX_N 0x0103000A
435 #define SOUTH_GROUP1_SPI_CS0_N 0x0103000B
436 #define SOUTH_GROUP1_SPI_CS1_N 0x0103000C
437 #define SOUTH_GROUP1_SPI_MOSI_IO0 0x0103000D
438 #define SOUTH_GROUP1_SPI_MISO_IO1 0x0103000E
439 #define SOUTH_GROUP1_SPI_IO2 0x0103000F
440 #define SOUTH_GROUP1_SPI_IO3 0x01030010
441 #define SOUTH_GROUP1_SPI_CLK 0x01030011
442 #define SOUTH_GROUP1_SPI_CLK_LOOPBK 0x01030012
443 #define SOUTH_GROUP1_ESPI_IO0 0x01030013
444 #define SOUTH_GROUP1_ESPI_IO1 0x01030014
445 #define SOUTH_GROUP1_ESPI_IO2 0x01030015
446 #define SOUTH_GROUP1_ESPI_IO3 0x01030016
447 #define SOUTH_GROUP1_ESPI_CS0_N 0x01030017
448 #define SOUTH_GROUP1_ESPI_CLK 0x01030018
449 #define SOUTH_GROUP1_ESPI_RST_N 0x01030019
450 #define SOUTH_GROUP1_ESPI_ALRT0_N 0x0103001A
451 #define SOUTH_GROUP1_GPIO_10 0x0103001B
452 #define SOUTH_GROUP1_GPIO_11 0x0103001C
453 #define SOUTH_GROUP1_ESPI_CLK_LOOPBK 0x0103001D
454 #define SOUTH_GROUP1_EMMC_CMD 0x0103001E
455 #define SOUTH_GROUP1_EMMC_STROBE 0x0103001F
456 #define SOUTH_GROUP1_EMMC_CLK 0x01030020
457 #define SOUTH_GROUP1_EMMC_D0 0x01030021
458 #define SOUTH_GROUP1_EMMC_D1 0x01030022
459 #define SOUTH_GROUP1_EMMC_D2 0x01030023
460 #define SOUTH_GROUP1_EMMC_D3 0x01030024
461 #define SOUTH_GROUP1_EMMC_D4 0x01030025
462 #define SOUTH_GROUP1_EMMC_D5 0x01030026
463 #define SOUTH_GROUP1_EMMC_D6 0x01030027
464 #define SOUTH_GROUP1_EMMC_D7 0x01030028
465 #define SOUTH_GROUP1_GPIO_3 0x01030029
466 
467 // BIT15-0 - pad number
468 // BIT31-16 - group info
469 // BIT23- 16 - group index
470 // BIT31- 24 - chipset ID (default to 0x01)
471 #define PAD_INFO_MASK 0x0000FFFF
472 #define GROUP_INFO_POSITION 16
473 #define GROUP_INFO_MASK 0xFFFF0000
474 #define GROUP_INDEX_MASK 0x00FF0000
475 #define UNIQUE_ID_MASK 0xFF000000
476 #define UNIQUE_ID_POSITION 24
477 
478 #define GPIO_PAD_DEF(Group, Pad) (uint32_t)((Group << 16) + Pad)
479 #define GPIO_GET_GROUP_INDEX(Group) (Group & 0xFF)
480 #define GPIO_GET_GROUP_FROM_PAD(Pad) (Pad >> 16)
481 #define GPIO_GET_GROUP_INDEX_FROM_PAD(Pad) GPIO_GET_GROUP_INDEX((Pad >> 16))
482 #define GPIO_GET_PAD_NUMBER(Pad) (Pad & 0xFFFF)
483 #define GPIO_GET_CHIPSET_ID(Pad) (Pad >> 24)
484 
485 #endif /* _DENVERTON_NS_GPIO_DEFS_H_ */