xref: /aosp_15_r20/external/coreboot/src/soc/intel/xeon_sp/ebg/include/soc/gpio_soc_defs.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef EMMITSBURG_GPIO_DEFS_H
4 #define EMMITSBURG_GPIO_DEFS_H
5 
6 #ifndef __ACPI__
7 #include <stddef.h>
8 #endif
9 
10 /* GPIO Community 0 */
11 #define COMM_0			0
12 #define  GPPC_A			0x0
13 #define  GPPC_B			0x1
14 #define  GPPC_S			0x2
15 /* GPIO Community 1 */
16 #define COMM_1			1
17 #define  GPPC_C			0x3
18 #define  GPP_D			0x4
19 /* GPIO Community 3 */
20 #define COMM_3			2
21 #define  GPP_E			0x5
22 /* GPIO Community 4 */
23 #define COMM_4			3
24 #define  GPPC_H			0x6
25 #define  GPPC_J			0x7
26 /* GPIO Community 5 */
27 #define COMM_5			4
28 #define  GPP_I			0x8
29 #define  GPP_L			0x9
30 #define  GPP_M			0xA
31 #define  GPP_N			0xB
32 /* GPIO Community 2 */
33 #define COMM_2			5
34 #define  GPP_O			0xC
35 
36 #define GPIO_MAX_NUM_PER_GROUP		24
37 
38 /* Group A */
39 #define GPPC_A0			0
40 #define GPPC_A1			1
41 #define GPPC_A2			2
42 #define GPPC_A3			3
43 #define GPPC_A4			4
44 #define GPPC_A5			5
45 #define GPPC_A6			6
46 #define GPPC_A7			7
47 #define GPPC_A8			8
48 #define GPPC_A9			9
49 #define GPPC_A10		10
50 #define GPPC_A11		11
51 #define GPPC_A12		12
52 #define GPPC_A13		13
53 #define GPPC_A14		14
54 #define GPPC_A15		15
55 #define GPPC_A16		16
56 #define GPPC_A17		17
57 #define GPPC_A18		18
58 #define GPPC_A19		19
59 #define ESPI_CLK_LOOPBK		20
60 
61 /* Group B */
62 #define GPPC_B0			21
63 #define GPPC_B1			22
64 #define GPPC_B2			23
65 #define GPPC_B3			24
66 #define GPPC_B4			25
67 #define GPPC_B5			26
68 #define GPPC_B6			27
69 #define GPPC_B7			28
70 #define GPPC_B8			29
71 #define GPPC_B9			30
72 #define GPPC_B10		31
73 #define GPPC_B11		32
74 #define GPPC_B12		33
75 #define GPPC_B13		34
76 #define GPPC_B14		35
77 #define GPPC_B15		36
78 #define GPPC_B16		37
79 #define GPPC_B17		38
80 #define GPPC_B18		39
81 #define GPPC_B19		40
82 #define GPPC_B20		41
83 #define GPPC_B21		42
84 #define GPPC_B22		43
85 #define GPPC_B23		44
86 
87 /*
88  * Order 45-52 belongs to fields which are not described in EDS but
89  * can be found while using Cscript. Keep the order here to make GPIO
90  * table can be set as expected.
91  */
92 
93 /* Group S */
94 #define GPPC_S0			53
95 #define GPPC_S1			54
96 #define GPPC_S2			55
97 #define GPPC_S3			56
98 #define GPPC_S4			57
99 #define GPPC_S5			58
100 #define GPPC_S6			59
101 #define GPPC_S7			60
102 #define GPPC_S8			61
103 #define GPPC_S9			62
104 #define GPPC_S10		63
105 #define GPPC_S11		64
106 #define SPI_CLK_LOOPBK		65
107 
108 #define NUM_GPIO_COM0_PADS	(SPI_CLK_LOOPBK - GPPC_A0 + 1)
109 
110 /* Community 1 */
111 /* Group C */
112 #define GPPC_C0			66
113 #define GPPC_C1			67
114 #define GPPC_C2			68
115 #define GPPC_C3			69
116 #define GPPC_C4			70
117 #define GPPC_C5			71
118 #define GPPC_C6			72
119 #define GPPC_C7			73
120 #define GPPC_C8			74
121 #define GPPC_C9			75
122 #define GPPC_C10		76
123 #define GPPC_C11		77
124 #define GPPC_C12		78
125 #define GPPC_C13		79
126 #define GPPC_C14		80
127 #define GPPC_C15		81
128 #define GPPC_C16		82
129 #define GPPC_C17		83
130 #define GPPC_C18		84
131 #define GPPC_C19		85
132 #define GPPC_C20		86
133 #define GPPC_C21		87
134 
135 /* Group D */
136 #define GPP_D0			88
137 #define GPP_D1			89
138 #define GPP_D2			90
139 #define GPP_D3			91	// Not described in EDS
140 #define GPP_D4			92	// Not described in EDS
141 #define GPP_D5			93	// Not described in EDS
142 #define GPP_D6			94
143 #define GPP_D7			95
144 #define GPP_D8			96
145 #define GPP_D9			97
146 #define GPP_D10			98
147 #define GPP_D11			99
148 #define GPP_D12			100
149 #define GPP_D13			101
150 #define GPP_D14			102
151 #define GPP_D15			103
152 #define GPP_D16			104
153 #define GPP_D17			105
154 #define GPP_D18			106
155 #define GPP_D19			107
156 #define GPP_D20			108
157 #define GPP_D21			109
158 #define GPP_D22			110
159 #define GPP_D23			111
160 
161 #define NUM_GPIO_COM1_PADS	(GPP_D23 - GPPC_C0 + 1)
162 
163 /* Community 3 */
164 /* Group E */
165 #define GPP_E0			112
166 #define GPP_E1			113
167 #define GPP_E2			114
168 #define GPP_E3			115
169 #define GPP_E4			116
170 #define GPP_E5			117
171 #define GPP_E6			118
172 #define GPP_E7			119
173 #define GPP_E8			120
174 #define GPP_E9			121
175 #define GPP_E10			122
176 #define GPP_E11			123
177 #define GPP_E12			124
178 #define GPP_E13			125
179 #define GPP_E14			126
180 #define GPP_E15			127
181 #define GPP_E16			128
182 #define GPP_E17			129
183 #define GPP_E18			130
184 #define GPP_E19			131
185 #define GPP_E20			132	// Not described in EDS
186 #define GPP_E21			133	// Not described in EDS
187 #define GPP_E22			134	// Not described in EDS
188 #define GPP_E23			135	// Not described in EDS
189 
190 #define NUM_GPIO_COM3_PADS	(GPP_E23 - GPP_E0 + 1)
191 
192 /* Community 4 */
193 /* Group H */
194 #define GPPC_H0			136
195 #define GPPC_H1			137
196 #define GPPC_H2			138	// Not described in EDS
197 #define GPPC_H3			139	// Not described in EDS
198 #define GPPC_H4			140	// Not described in EDS
199 #define GPPC_H5			141	// Not described in EDS
200 #define GPPC_H6			142
201 #define GPPC_H7			143
202 #define GPPC_H8			144	// Not described in EDS
203 #define GPPC_H9			145	// Not described in EDS
204 #define GPPC_H10		146	// Not described in EDS
205 #define GPPC_H11		147	// Not described in EDS
206 #define GPPC_H12		148	// Not described in EDS
207 #define GPPC_H13		149	// Not described in EDS
208 #define GPPC_H14		150	// Not described in EDS
209 #define GPPC_H15		151
210 #define GPPC_H16		152
211 #define GPPC_H17		153
212 #define GPPC_H18		154
213 #define GPPC_H19		155
214 
215 /* Group J */
216 #define GPP_J0			156
217 #define GPP_J1			157
218 #define GPP_J2			158
219 #define GPP_J3			159
220 #define GPP_J4			160
221 #define GPP_J5			161
222 #define GPP_J6			162
223 #define GPP_J7			163
224 #define GPP_J8			164
225 #define GPP_J9			165	// Not described in EDS
226 #define GPP_J10			166	// Not described in EDS
227 #define GPP_J11			167	// Not described in EDS
228 #define GPP_J12			168
229 #define GPP_J13			169
230 #define GPP_J14			170
231 #define GPP_J15			171
232 #define GPP_J16			172	// Not described in EDS
233 #define GPP_J17			173	// Not described in EDS
234 
235 #define NUM_GPIO_COM4_PADS	(GPP_J17 - GPPC_H0 + 1)
236 
237 /* Community 5 */
238 /* Group I */
239 #define GPP_I0			180	// Not described in EDS
240 #define GPP_I1			181	// Not described in EDS
241 #define GPP_I2			182	// Not described in EDS
242 #define GPP_I3			183	// Not described in EDS
243 #define GPP_I4			184	// Not described in EDS
244 #define GPP_I5			185	// Not described in EDS
245 #define GPP_I6			186	// Not described in EDS
246 #define GPP_I7			187	// Not described in EDS
247 #define GPP_I8			188	// Not described in EDS
248 #define GPP_I9			189	// Not described in EDS
249 #define GPP_I10			190	// Not described in EDS
250 #define GPP_I11			191	// Not described in EDS
251 #define GPP_I12			192
252 #define GPP_I13			193
253 #define GPP_I14			194
254 #define GPP_I15			195
255 #define GPP_I16			196
256 #define GPP_I17			197
257 #define GPP_I18			198	// Not described in EDS
258 #define GPP_I19			199	// Not described in EDS
259 #define GPP_I20			200	// Not described in EDS
260 #define GPP_I21			201
261 #define GPP_I22			202
262 #define GPP_I23			203
263 
264 /* Group L */
265 #define GPP_L0			204
266 #define GPP_L1			205
267 #define GPP_L2			206
268 #define GPP_L3			207
269 #define GPP_L4			208
270 #define GPP_L5			209
271 #define GPP_L6			210
272 #define GPP_L7			211
273 #define GPP_L8			212
274 #define GPP_L9			213	// Not described in EDS
275 #define GPP_L10			214	// Not described in EDS
276 #define GPP_L11			215	// Not described in EDS
277 #define GPP_L12			216	// Not described in EDS
278 #define GPP_L13			217	// Not described in EDS
279 #define GPP_L14			218	// Not described in EDS
280 #define GPP_L15			219	// Not described in EDS
281 #define GPP_L16			220	// Not described in EDS
282 #define GPP_L17			221	// Not described in EDS
283 
284 /* Group M */
285 #define GPP_M0			222
286 #define GPP_M1			223
287 #define GPP_M2			224
288 #define GPP_M3			225
289 #define GPP_M4			226
290 #define GPP_M5			227
291 #define GPP_M6			228
292 #define GPP_M7			229
293 #define GPP_M8			230
294 #define GPP_M9			231	// Not described in EDS
295 #define GPP_M10			232	// Not described in EDS
296 #define GPP_M11			233
297 #define GPP_M12			234
298 #define GPP_M13			235	// Not described in EDS
299 #define GPP_M14			236	// Not described in EDS
300 #define GPP_M15			237
301 #define GPP_M16			238
302 #define GPP_M17			239
303 
304 /* Group N */
305 #define GPP_N0			240	// Not described in EDS
306 #define GPP_N1			241
307 #define GPP_N2			242	// Not described in EDS
308 #define GPP_N3			243	// Not described in EDS
309 #define GPP_N4			244
310 #define GPP_N5			245	// Not described in EDS
311 #define GPP_N6			246	// Not described in EDS
312 #define GPP_N7			247	// Not described in EDS
313 #define GPP_N8			248	// Not described in EDS
314 #define GPP_N9			249	// Not described in EDS
315 #define GPP_N10			250	// Not described in EDS
316 #define GPP_N11			251	// Not described in EDS
317 #define GPP_N12			252	// Not described in EDS
318 #define GPP_N13			253	// Not described in EDS
319 #define GPP_N14			254	// Not described in EDS
320 #define GPP_N15			255	// Not described in EDS
321 #define GPP_N16			256	// Not described in EDS
322 #define GPP_N17			257	// Not described in EDS
323 
324 #define NUM_GPIO_COM5_PADS	(GPP_N17 - GPP_I0 + 1)
325 
326 /* Community 2 */
327 /* Group O */
328 #define GPP_O0			258
329 #define GPP_O1			259
330 #define GPP_O2			260
331 #define GPP_O3			261
332 #define GPP_O4			262
333 #define GPP_O5			263
334 #define GPP_O6			264
335 #define GPP_O7			265
336 #define GPP_O8			266
337 #define GPP_O9			267
338 #define GPP_O10			268
339 #define GPP_O11			269
340 #define GPP_O12			270
341 #define GPP_O13			271
342 #define GPP_O14			272
343 #define GPP_O15			273
344 #define GPP_O16			274
345 
346 #define NUM_GPIO_COM2_PADS	(GPP_O16 - GPP_O0 + 1)
347 
348 #define TOTAL_PADS		(GPP_O16 + 1)
349 
350 #define GPIO_NUM_PAD_CFG_REGS   4 /* DW0, DW1, DW2, DW3 */
351 
352 #define NUM_GPIO_COMx_GPI_REGS(n)	\
353 		(ALIGN_UP((n), GPIO_MAX_NUM_PER_GROUP) / GPIO_MAX_NUM_PER_GROUP)
354 
355 #define NUM_GPIO_COM0_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM0_PADS)
356 #define NUM_GPIO_COM1_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM1_PADS)
357 #define NUM_GPIO_COM2_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM2_PADS)
358 #define NUM_GPIO_COM3_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM3_PADS)
359 #define NUM_GPIO_COM4_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM4_PADS)
360 #define NUM_GPIO_COM5_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM5_PADS)
361 
362 #define NUM_GPI_STATUS_REGS			\
363 		((NUM_GPIO_COM0_GPI_REGS) +	\
364 		(NUM_GPIO_COM1_GPI_REGS)  +	\
365 		(NUM_GPIO_COM3_GPI_REGS)  +	\
366 		(NUM_GPIO_COM4_GPI_REGS)  +	\
367 		(NUM_GPIO_COM5_GPI_REGS)  +	\
368 		(NUM_GPIO_COM2_GPI_REGS))
369 
370 /* Register defines */
371 #define GPIO_MISCCFG		0x10
372 
373 #define HOSTSW_OWN_REG_0	0x130
374 #define PAD_CFG_BASE		0x700
375 #define GPI_INT_STS_0		0x200
376 #define GPI_INT_EN_0		0x210
377 #define GPI_SMI_STS_0		0x270
378 #define GPI_SMI_EN_0		0x290
379 
380 #define PAD_CFG_LOCK_A		0x100
381 #define PAD_CFG_LOCK_B		0x108
382 #define PAD_CFG_LOCK_C		0x100
383 #define PAD_CFG_LOCK_D		0x108
384 
385 #endif /* EMMITSBURG_GPIO_DEFS_H */
386