1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <southbridge/intel/common/gpio.h>
6 * TODO: Investigate somehow... Current values are taken from a running
7 * system with vendor supplied firmware.
9 static const struct pch_gpio_set1 pch_gpio_set1_mode
= {
10 .gpio0
= GPIO_MODE_GPIO
, /* strap */
11 .gpio1
= GPIO_MODE_GPIO
, /* EC SMI# */
12 .gpio2
= GPIO_MODE_GPIO
, /* strap */
13 .gpio3
= GPIO_MODE_GPIO
, /* strapped weak high */
14 .gpio4
= GPIO_MODE_GPIO
, /* DDR3 thermal ALERT# */
15 .gpio5
= GPIO_MODE_GPIO
, /* DDR3 thermal THERM# */
16 .gpio6
= GPIO_MODE_GPIO
, /* DGPU hotplug? */
17 .gpio7
= GPIO_MODE_GPIO
, /* EC SCI# */
18 .gpio8
= GPIO_MODE_GPIO
, /* strap */
19 .gpio9
= GPIO_MODE_NATIVE
, /* USB OC #5 */
20 .gpio10
= GPIO_MODE_NATIVE
, /* USB OC #6; strapped weak high */
21 .gpio11
= GPIO_MODE_GPIO
, /* strapped weak high */
22 .gpio12
= GPIO_MODE_NATIVE
, /* LAN PHY Power Control */
23 .gpio13
= GPIO_MODE_NATIVE
, /* HDA Audio Dock Reset */
24 .gpio14
= GPIO_MODE_GPIO
, /* EC wake SCI# */
25 .gpio15
= GPIO_MODE_GPIO
, /* strapped high */
26 .gpio16
= GPIO_MODE_NATIVE
, /* SATA 4 GP */
27 .gpio17
= GPIO_MODE_GPIO
, /* strapped weak low */
28 .gpio18
= GPIO_MODE_NATIVE
, /* PCIe clock request 1 */
29 .gpio19
= GPIO_MODE_NATIVE
, /* SATA 9 GP */
30 .gpio20
= GPIO_MODE_NATIVE
, /* PCIe clock request 2 */
31 .gpio21
= GPIO_MODE_NATIVE
, /* SATA 0 GP */
32 .gpio22
= GPIO_MODE_GPIO
, /* strap */
33 .gpio23
= GPIO_MODE_NATIVE
, /* LPC DMA request 1; strapped weak high */
34 .gpio24
= GPIO_MODE_GPIO
, /* strapped weak high */
35 .gpio25
= GPIO_MODE_NATIVE
, /* PCIe clock request 3 */
36 .gpio26
= GPIO_MODE_NATIVE
, /* PCIe clock request 4 */
37 .gpio27
= GPIO_MODE_GPIO
, /* SATA power (active low) */
38 .gpio28
= GPIO_MODE_GPIO
, /* PCH strap ODVR, Output LOW */
39 .gpio29
= GPIO_MODE_GPIO
, /* Sleep LAN power (sleep low) */
40 .gpio30
= GPIO_MODE_NATIVE
, /* Suspend Warning */
41 .gpio31
= GPIO_MODE_NATIVE
, /* AC present */
44 static const struct pch_gpio_set1 pch_gpio_set1_direction
= {
45 .gpio0
= GPIO_DIR_INPUT
, /* Unknown Input */
46 .gpio1
= GPIO_DIR_INPUT
, /* Unknown Input */
47 .gpio2
= GPIO_DIR_INPUT
, /* Unknown Input */
48 .gpio3
= GPIO_DIR_INPUT
, /* Unknown Input */
49 .gpio4
= GPIO_DIR_INPUT
, /* Unknown Input */
50 .gpio5
= GPIO_DIR_INPUT
, /* Unknown Input */
51 .gpio6
= GPIO_DIR_INPUT
, /* Unknown Input */
52 .gpio7
= GPIO_DIR_INPUT
, /* Unknown Input */
53 .gpio8
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
54 .gpio9
= GPIO_DIR_INPUT
, /* Native */
55 .gpio10
= GPIO_DIR_INPUT
, /* Native */
56 .gpio11
= GPIO_DIR_INPUT
, /* Unknown Input */
57 .gpio12
= GPIO_DIR_INPUT
, /* Native */
58 .gpio13
= GPIO_DIR_INPUT
, /* Native */
59 .gpio14
= GPIO_DIR_INPUT
, /* Unknown Input */
60 .gpio15
= GPIO_DIR_INPUT
, /* Unknown Input */
61 .gpio16
= GPIO_DIR_INPUT
, /* Native */
62 .gpio17
= GPIO_DIR_INPUT
, /* Unknown Input */
63 .gpio18
= GPIO_DIR_INPUT
, /* Native */
64 .gpio19
= GPIO_DIR_INPUT
, /* Native */
65 .gpio20
= GPIO_DIR_INPUT
, /* Native */
66 .gpio21
= GPIO_DIR_INPUT
, /* Native */
67 .gpio22
= GPIO_DIR_INPUT
, /* Unknown Input */
68 .gpio23
= GPIO_DIR_INPUT
, /* Native */
69 .gpio24
= GPIO_DIR_INPUT
, /* Unknown Input */
70 .gpio25
= GPIO_DIR_INPUT
, /* Native */
71 .gpio26
= GPIO_DIR_INPUT
, /* Native */
72 .gpio27
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
73 .gpio28
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
74 .gpio29
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
75 .gpio30
= GPIO_DIR_INPUT
, /* Native */
76 .gpio31
= GPIO_DIR_INPUT
, /* Native */
79 static const struct pch_gpio_set1 pch_gpio_set1_level
= {
80 .gpio0
= GPIO_LEVEL_LOW
, /* Unknown Input */
81 .gpio1
= GPIO_LEVEL_LOW
, /* Unknown Input */
82 .gpio2
= GPIO_LEVEL_LOW
, /* Unknown Input */
83 .gpio3
= GPIO_LEVEL_LOW
, /* Unknown Input */
84 .gpio4
= GPIO_LEVEL_LOW
, /* Unknown Input */
85 .gpio5
= GPIO_LEVEL_LOW
, /* Unknown Input */
86 .gpio6
= GPIO_LEVEL_LOW
, /* Unknown Input */
87 .gpio7
= GPIO_LEVEL_LOW
, /* Unknown Input */
88 .gpio8
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
89 .gpio9
= GPIO_LEVEL_LOW
, /* Native */
90 .gpio10
= GPIO_LEVEL_LOW
, /* Native */
91 .gpio11
= GPIO_LEVEL_LOW
, /* Unknown Input */
92 .gpio12
= GPIO_LEVEL_LOW
, /* Native */
93 .gpio13
= GPIO_LEVEL_LOW
, /* Native */
94 .gpio14
= GPIO_LEVEL_LOW
, /* Unknown Input */
95 .gpio15
= GPIO_LEVEL_LOW
, /* Unknown Input */
96 .gpio16
= GPIO_LEVEL_LOW
, /* Native */
97 .gpio17
= GPIO_LEVEL_LOW
, /* Unknown Input */
98 .gpio18
= GPIO_LEVEL_LOW
, /* Native */
99 .gpio19
= GPIO_LEVEL_LOW
, /* Native */
100 .gpio20
= GPIO_LEVEL_LOW
, /* Native */
101 .gpio21
= GPIO_LEVEL_LOW
, /* Native */
102 .gpio22
= GPIO_LEVEL_LOW
, /* Unknown Input */
103 .gpio23
= GPIO_LEVEL_LOW
, /* Native */
104 .gpio24
= GPIO_LEVEL_LOW
, /* Unknown Input */
105 .gpio25
= GPIO_LEVEL_LOW
, /* Native */
106 .gpio26
= GPIO_LEVEL_LOW
, /* Native */
107 .gpio27
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
108 .gpio28
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
109 .gpio29
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
110 .gpio30
= GPIO_LEVEL_LOW
, /* Native */
111 .gpio31
= GPIO_LEVEL_LOW
, /* Native */
114 static const struct pch_gpio_set1 pch_gpio_set1_reset
= {
115 .gpio0
= GPIO_RESET_PWROK
,
116 .gpio1
= GPIO_RESET_PWROK
,
117 .gpio2
= GPIO_RESET_PWROK
,
118 .gpio3
= GPIO_RESET_PWROK
,
119 .gpio4
= GPIO_RESET_PWROK
,
120 .gpio5
= GPIO_RESET_PWROK
,
121 .gpio6
= GPIO_RESET_PWROK
,
122 .gpio7
= GPIO_RESET_PWROK
,
123 .gpio8
= GPIO_RESET_PWROK
,
124 .gpio9
= GPIO_RESET_PWROK
,
125 .gpio10
= GPIO_RESET_PWROK
,
126 .gpio11
= GPIO_RESET_PWROK
,
127 .gpio12
= GPIO_RESET_PWROK
,
128 .gpio13
= GPIO_RESET_PWROK
,
129 .gpio14
= GPIO_RESET_PWROK
,
130 .gpio15
= GPIO_RESET_PWROK
,
131 .gpio16
= GPIO_RESET_PWROK
,
132 .gpio17
= GPIO_RESET_PWROK
,
133 .gpio18
= GPIO_RESET_PWROK
,
134 .gpio19
= GPIO_RESET_PWROK
,
135 .gpio20
= GPIO_RESET_PWROK
,
136 .gpio21
= GPIO_RESET_PWROK
,
137 .gpio22
= GPIO_RESET_PWROK
,
138 .gpio23
= GPIO_RESET_PWROK
,
139 .gpio24
= GPIO_RESET_PWROK
,
140 .gpio25
= GPIO_RESET_PWROK
,
141 .gpio26
= GPIO_RESET_PWROK
,
142 .gpio27
= GPIO_RESET_PWROK
,
143 .gpio28
= GPIO_RESET_PWROK
,
144 .gpio29
= GPIO_RESET_PWROK
,
145 .gpio30
= GPIO_RESET_RSMRST
,
146 .gpio31
= GPIO_RESET_PWROK
,
149 static const struct pch_gpio_set1 pch_gpio_set1_invert
= {
150 .gpio0
= GPIO_NO_INVERT
,
151 .gpio1
= GPIO_INVERT
,
152 .gpio2
= GPIO_NO_INVERT
,
153 .gpio3
= GPIO_INVERT
,
154 .gpio4
= GPIO_NO_INVERT
,
155 .gpio5
= GPIO_NO_INVERT
,
156 .gpio6
= GPIO_NO_INVERT
,
157 .gpio7
= GPIO_INVERT
,
158 .gpio8
= GPIO_NO_INVERT
,
159 .gpio9
= GPIO_NO_INVERT
,
160 .gpio10
= GPIO_NO_INVERT
,
161 .gpio11
= GPIO_NO_INVERT
,
162 .gpio12
= GPIO_NO_INVERT
,
163 .gpio13
= GPIO_NO_INVERT
,
164 .gpio14
= GPIO_INVERT
,
165 .gpio15
= GPIO_INVERT
,
166 .gpio16
= GPIO_NO_INVERT
,
167 .gpio17
= GPIO_NO_INVERT
,
168 .gpio18
= GPIO_NO_INVERT
,
169 .gpio19
= GPIO_NO_INVERT
,
170 .gpio20
= GPIO_NO_INVERT
,
171 .gpio21
= GPIO_NO_INVERT
,
172 .gpio22
= GPIO_NO_INVERT
,
173 .gpio23
= GPIO_NO_INVERT
,
174 .gpio24
= GPIO_NO_INVERT
,
175 .gpio25
= GPIO_NO_INVERT
,
176 .gpio26
= GPIO_NO_INVERT
,
177 .gpio27
= GPIO_NO_INVERT
,
178 .gpio28
= GPIO_NO_INVERT
,
179 .gpio29
= GPIO_NO_INVERT
,
180 .gpio30
= GPIO_NO_INVERT
,
181 .gpio31
= GPIO_NO_INVERT
,
184 static const struct pch_gpio_set1 pch_gpio_set1_blink
= {
185 .gpio0
= GPIO_NO_BLINK
,
186 .gpio1
= GPIO_NO_BLINK
,
187 .gpio2
= GPIO_NO_BLINK
,
188 .gpio3
= GPIO_NO_BLINK
,
189 .gpio4
= GPIO_NO_BLINK
,
190 .gpio5
= GPIO_NO_BLINK
,
191 .gpio6
= GPIO_NO_BLINK
,
192 .gpio7
= GPIO_NO_BLINK
,
193 .gpio8
= GPIO_NO_BLINK
,
194 .gpio9
= GPIO_NO_BLINK
,
195 .gpio10
= GPIO_NO_BLINK
,
196 .gpio11
= GPIO_NO_BLINK
,
197 .gpio12
= GPIO_NO_BLINK
,
198 .gpio13
= GPIO_NO_BLINK
,
199 .gpio14
= GPIO_NO_BLINK
,
200 .gpio15
= GPIO_NO_BLINK
,
201 .gpio16
= GPIO_NO_BLINK
,
202 .gpio17
= GPIO_NO_BLINK
,
203 .gpio18
= GPIO_NO_BLINK
,
204 .gpio19
= GPIO_NO_BLINK
,
205 .gpio20
= GPIO_NO_BLINK
,
206 .gpio21
= GPIO_NO_BLINK
,
207 .gpio22
= GPIO_NO_BLINK
,
208 .gpio23
= GPIO_NO_BLINK
,
209 .gpio24
= GPIO_NO_BLINK
,
210 .gpio25
= GPIO_NO_BLINK
,
211 .gpio26
= GPIO_NO_BLINK
,
212 .gpio27
= GPIO_NO_BLINK
,
213 .gpio28
= GPIO_NO_BLINK
,
214 .gpio29
= GPIO_NO_BLINK
,
215 .gpio30
= GPIO_NO_BLINK
,
216 .gpio31
= GPIO_NO_BLINK
,
219 static const struct pch_gpio_set2 pch_gpio_set2_mode
= {
220 .gpio32
= GPIO_MODE_NATIVE
, /* Native */
221 .gpio33
= GPIO_MODE_NATIVE
, /* Native */
222 .gpio34
= GPIO_MODE_GPIO
, /* Unknown Output LOW */
223 .gpio35
= GPIO_MODE_NATIVE
, /* Native */
224 .gpio36
= GPIO_MODE_NATIVE
, /* Native */
225 .gpio37
= GPIO_MODE_GPIO
, /* Unknown Output LOW */
226 .gpio38
= GPIO_MODE_GPIO
, /* Unknown Input */
227 .gpio39
= GPIO_MODE_GPIO
, /* Unknown Input */
228 .gpio40
= GPIO_MODE_NATIVE
, /* USB OC #1 */
229 .gpio41
= GPIO_MODE_NATIVE
, /* USB OC #2 */
230 .gpio42
= GPIO_MODE_NATIVE
, /* USB OC #3 */
231 .gpio43
= GPIO_MODE_NATIVE
, /* USB OC #4 */
232 .gpio44
= GPIO_MODE_NATIVE
, /* Native */
233 .gpio45
= GPIO_MODE_NATIVE
, /* Native */
234 .gpio46
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
235 .gpio47
= GPIO_MODE_NATIVE
, /* Native */
236 .gpio48
= GPIO_MODE_GPIO
, /* Unknown Input */
237 .gpio49
= GPIO_MODE_GPIO
, /* Unknown Input */
238 .gpio50
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
239 .gpio51
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
240 .gpio52
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
241 .gpio53
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
242 .gpio54
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
243 .gpio55
= GPIO_MODE_GPIO
, /* Unknown Output LOW */
244 .gpio56
= GPIO_MODE_NATIVE
, /* Native */
245 .gpio57
= GPIO_MODE_GPIO
, /* Unknown Input */
246 .gpio58
= GPIO_MODE_NATIVE
, /* Native */
247 .gpio59
= GPIO_MODE_NATIVE
, /* USB OC #0 */
248 .gpio60
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
249 .gpio61
= GPIO_MODE_NATIVE
, /* Native */
250 .gpio62
= GPIO_MODE_NATIVE
, /* Native */
251 .gpio63
= GPIO_MODE_NATIVE
, /* Native */
254 static const struct pch_gpio_set2 pch_gpio_set2_direction
= {
255 .gpio32
= GPIO_DIR_INPUT
, /* Native */
256 .gpio33
= GPIO_DIR_INPUT
, /* Native */
257 .gpio34
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
258 .gpio35
= GPIO_DIR_INPUT
, /* Native */
259 .gpio36
= GPIO_DIR_INPUT
, /* Native */
260 .gpio37
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
261 .gpio38
= GPIO_DIR_INPUT
, /* Unknown Input */
262 .gpio39
= GPIO_DIR_INPUT
, /* Unknown Input */
263 .gpio40
= GPIO_DIR_INPUT
, /* Native */
264 .gpio41
= GPIO_DIR_INPUT
, /* Native */
265 .gpio42
= GPIO_DIR_INPUT
, /* Native */
266 .gpio43
= GPIO_DIR_INPUT
, /* Native */
267 .gpio44
= GPIO_DIR_INPUT
, /* Native */
268 .gpio45
= GPIO_DIR_INPUT
, /* Native */
269 .gpio46
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
270 .gpio47
= GPIO_DIR_INPUT
, /* Native */
271 .gpio48
= GPIO_DIR_INPUT
, /* Unknown Input */
272 .gpio49
= GPIO_DIR_INPUT
, /* Unknown Input */
273 .gpio50
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
274 .gpio51
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
275 .gpio52
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
276 .gpio53
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
277 .gpio54
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
278 .gpio55
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
279 .gpio56
= GPIO_DIR_INPUT
, /* Native */
280 .gpio57
= GPIO_DIR_INPUT
, /* Unknown Input */
281 .gpio58
= GPIO_DIR_INPUT
, /* Native */
282 .gpio59
= GPIO_DIR_INPUT
, /* Native */
283 .gpio60
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
284 .gpio61
= GPIO_DIR_INPUT
, /* Native */
285 .gpio62
= GPIO_DIR_INPUT
, /* Native */
286 .gpio63
= GPIO_DIR_INPUT
, /* Native */
289 static const struct pch_gpio_set2 pch_gpio_set2_level
= {
290 .gpio32
= GPIO_LEVEL_LOW
, /* Native */
291 .gpio33
= GPIO_LEVEL_LOW
, /* Native */
292 .gpio34
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
293 .gpio35
= GPIO_LEVEL_LOW
, /* Native */
294 .gpio36
= GPIO_LEVEL_LOW
, /* Native */
295 .gpio37
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
296 .gpio38
= GPIO_LEVEL_LOW
, /* Unknown Input */
297 .gpio39
= GPIO_LEVEL_LOW
, /* Unknown Input */
298 .gpio40
= GPIO_LEVEL_LOW
, /* Native */
299 .gpio41
= GPIO_LEVEL_LOW
, /* Native */
300 .gpio42
= GPIO_LEVEL_LOW
, /* Native */
301 .gpio43
= GPIO_LEVEL_LOW
, /* Native */
302 .gpio44
= GPIO_LEVEL_LOW
, /* Native */
303 .gpio45
= GPIO_LEVEL_LOW
, /* Native */
304 .gpio46
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
305 .gpio47
= GPIO_LEVEL_LOW
, /* Native */
306 .gpio48
= GPIO_LEVEL_LOW
, /* Unknown Input */
307 .gpio49
= GPIO_LEVEL_LOW
, /* Unknown Input */
308 .gpio50
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
309 .gpio51
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
310 .gpio52
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
311 .gpio53
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
312 .gpio54
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
313 .gpio55
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
314 .gpio56
= GPIO_LEVEL_LOW
, /* Native */
315 .gpio57
= GPIO_LEVEL_LOW
, /* Unknown Input */
316 .gpio58
= GPIO_LEVEL_LOW
, /* Native */
317 .gpio59
= GPIO_LEVEL_LOW
, /* Native */
318 .gpio60
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
319 .gpio61
= GPIO_LEVEL_LOW
, /* Native */
320 .gpio62
= GPIO_LEVEL_LOW
, /* Native */
321 .gpio63
= GPIO_LEVEL_LOW
, /* Native */
324 static const struct pch_gpio_set2 pch_gpio_set2_reset
= {
325 .gpio32
= GPIO_RESET_PWROK
,
326 .gpio33
= GPIO_RESET_PWROK
,
327 .gpio34
= GPIO_RESET_PWROK
,
328 .gpio35
= GPIO_RESET_PWROK
,
329 .gpio36
= GPIO_RESET_PWROK
,
330 .gpio37
= GPIO_RESET_PWROK
,
331 .gpio38
= GPIO_RESET_PWROK
,
332 .gpio39
= GPIO_RESET_PWROK
,
333 .gpio40
= GPIO_RESET_PWROK
,
334 .gpio41
= GPIO_RESET_PWROK
,
335 .gpio42
= GPIO_RESET_PWROK
,
336 .gpio43
= GPIO_RESET_PWROK
,
337 .gpio44
= GPIO_RESET_PWROK
,
338 .gpio45
= GPIO_RESET_PWROK
,
339 .gpio46
= GPIO_RESET_PWROK
,
340 .gpio47
= GPIO_RESET_PWROK
,
341 .gpio48
= GPIO_RESET_PWROK
,
342 .gpio49
= GPIO_RESET_PWROK
,
343 .gpio50
= GPIO_RESET_PWROK
,
344 .gpio51
= GPIO_RESET_PWROK
,
345 .gpio52
= GPIO_RESET_PWROK
,
346 .gpio53
= GPIO_RESET_PWROK
,
347 .gpio54
= GPIO_RESET_PWROK
,
348 .gpio55
= GPIO_RESET_PWROK
,
349 .gpio56
= GPIO_RESET_PWROK
,
350 .gpio57
= GPIO_RESET_PWROK
,
351 .gpio58
= GPIO_RESET_PWROK
,
352 .gpio59
= GPIO_RESET_PWROK
,
353 .gpio60
= GPIO_RESET_PWROK
,
354 .gpio61
= GPIO_RESET_PWROK
,
355 .gpio62
= GPIO_RESET_PWROK
,
356 .gpio63
= GPIO_RESET_PWROK
,
359 static const struct pch_gpio_set3 pch_gpio_set3_mode
= {
360 .gpio64
= GPIO_MODE_NATIVE
, /* Native */
361 .gpio65
= GPIO_MODE_NATIVE
, /* Native */
362 .gpio66
= GPIO_MODE_GPIO
, /* Unknown Output LOW */
363 .gpio67
= GPIO_MODE_GPIO
, /* Unknown Input */
364 .gpio68
= GPIO_MODE_GPIO
, /* Unknown Output HIGH */
365 .gpio69
= GPIO_MODE_GPIO
, /* Unknown Input */
366 .gpio70
= GPIO_MODE_NATIVE
, /* Native */
367 .gpio71
= GPIO_MODE_NATIVE
, /* Native */
368 .gpio72
= GPIO_MODE_NATIVE
, /* Native */
369 .gpio73
= GPIO_MODE_NATIVE
, /* Native */
370 .gpio74
= GPIO_MODE_NATIVE
, /* Native */
371 .gpio75
= GPIO_MODE_NATIVE
, /* Native */
374 static const struct pch_gpio_set3 pch_gpio_set3_direction
= {
375 .gpio64
= GPIO_DIR_INPUT
, /* Native */
376 .gpio65
= GPIO_DIR_INPUT
, /* Native */
377 .gpio66
= GPIO_DIR_OUTPUT
, /* Unknown Output LOW */
378 .gpio67
= GPIO_DIR_INPUT
, /* Unknown Input */
379 .gpio68
= GPIO_DIR_OUTPUT
, /* Unknown Output HIGH */
380 .gpio69
= GPIO_DIR_INPUT
, /* Unknown Input */
381 .gpio70
= GPIO_DIR_INPUT
, /* Native */
382 .gpio71
= GPIO_DIR_INPUT
, /* Native */
383 .gpio72
= GPIO_DIR_INPUT
, /* Native */
384 .gpio73
= GPIO_DIR_INPUT
, /* Native */
385 .gpio74
= GPIO_DIR_INPUT
, /* Native */
386 .gpio75
= GPIO_DIR_INPUT
, /* Native */
389 static const struct pch_gpio_set3 pch_gpio_set3_level
= {
390 .gpio64
= GPIO_LEVEL_LOW
, /* Native */
391 .gpio65
= GPIO_LEVEL_LOW
, /* Native */
392 .gpio66
= GPIO_LEVEL_LOW
, /* Unknown Output LOW */
393 .gpio67
= GPIO_LEVEL_LOW
, /* Unknown Input */
394 .gpio68
= GPIO_LEVEL_HIGH
, /* Unknown Output HIGH */
395 .gpio69
= GPIO_LEVEL_LOW
, /* Unknown Input */
396 .gpio70
= GPIO_LEVEL_LOW
, /* Native */
397 .gpio71
= GPIO_LEVEL_LOW
, /* Native */
398 .gpio72
= GPIO_LEVEL_LOW
, /* Native */
399 .gpio73
= GPIO_LEVEL_LOW
, /* Native */
400 .gpio74
= GPIO_LEVEL_LOW
, /* Native */
401 .gpio75
= GPIO_LEVEL_LOW
, /* Native */
404 static const struct pch_gpio_set3 pch_gpio_set3_reset
= {
405 .gpio64
= GPIO_RESET_PWROK
,
406 .gpio65
= GPIO_RESET_PWROK
,
407 .gpio66
= GPIO_RESET_PWROK
,
408 .gpio67
= GPIO_RESET_PWROK
,
409 .gpio68
= GPIO_RESET_PWROK
,
410 .gpio69
= GPIO_RESET_PWROK
,
411 .gpio70
= GPIO_RESET_PWROK
,
412 .gpio71
= GPIO_RESET_PWROK
,
413 .gpio72
= GPIO_RESET_PWROK
,
414 .gpio73
= GPIO_RESET_PWROK
,
415 .gpio74
= GPIO_RESET_PWROK
,
416 .gpio75
= GPIO_RESET_PWROK
,
419 const struct pch_gpio_map mainboard_gpio_map
= {
421 .mode
= &pch_gpio_set1_mode
,
422 .direction
= &pch_gpio_set1_direction
,
423 .level
= &pch_gpio_set1_level
,
424 .reset
= &pch_gpio_set1_reset
,
425 .invert
= &pch_gpio_set1_invert
,
426 .blink
= &pch_gpio_set1_blink
,
429 .mode
= &pch_gpio_set2_mode
,
430 .direction
= &pch_gpio_set2_direction
,
431 .level
= &pch_gpio_set2_level
,
432 .reset
= &pch_gpio_set2_reset
,
435 .mode
= &pch_gpio_set3_mode
,
436 .direction
= &pch_gpio_set3_direction
,
437 .level
= &pch_gpio_set3_level
,
438 .reset
= &pch_gpio_set3_reset
,