blob: 791d7c770718448fb0d0810df6c5bbdc7d954770 [file] [log] [blame]
Damien Zammit126a2a82014-11-28 15:59:10 +11001#include "southbridge/intel/bd82x6x/gpio.h"
2static const struct pch_gpio_set1 pch_gpio_set1_mode = {
3 .gpio0 = GPIO_MODE_NATIVE,
4 .gpio1 = GPIO_MODE_NATIVE,
5 .gpio2 = GPIO_MODE_NATIVE,
6 .gpio3 = GPIO_MODE_NATIVE,
7 .gpio4 = GPIO_MODE_NATIVE,
8 .gpio5 = GPIO_MODE_NATIVE,
9 .gpio6 = GPIO_MODE_NATIVE,
10 .gpio7 = GPIO_MODE_NATIVE,
11 .gpio8 = GPIO_MODE_NATIVE,
12 .gpio9 = GPIO_MODE_NATIVE,
13 .gpio10 = GPIO_MODE_NATIVE,
14 .gpio11 = GPIO_MODE_NATIVE,
15 .gpio12 = GPIO_MODE_GPIO,
16 .gpio13 = GPIO_MODE_NATIVE,
17 .gpio14 = GPIO_MODE_NATIVE,
18 .gpio15 = GPIO_MODE_NATIVE,
19 .gpio16 = GPIO_MODE_NATIVE,
20 .gpio17 = GPIO_MODE_NATIVE,
21 .gpio18 = GPIO_MODE_NATIVE,
22 .gpio19 = GPIO_MODE_NATIVE,
23 .gpio20 = GPIO_MODE_NATIVE,
24 .gpio21 = GPIO_MODE_NATIVE,
25 .gpio22 = GPIO_MODE_NATIVE,
26 .gpio23 = GPIO_MODE_NATIVE,
27 .gpio24 = GPIO_MODE_NATIVE,
28 .gpio25 = GPIO_MODE_NATIVE,
29 .gpio26 = GPIO_MODE_NATIVE,
30 .gpio27 = GPIO_MODE_NATIVE,
31 .gpio28 = GPIO_MODE_NATIVE,
32 .gpio29 = GPIO_MODE_NATIVE,
33 .gpio30 = GPIO_MODE_NATIVE,
34 .gpio31 = GPIO_MODE_NATIVE,
35};
36
37static const struct pch_gpio_set1 pch_gpio_set1_direction = {
38 .gpio0 = GPIO_DIR_OUTPUT,
39 .gpio1 = GPIO_DIR_OUTPUT,
40 .gpio2 = GPIO_DIR_OUTPUT,
41 .gpio3 = GPIO_DIR_OUTPUT,
42 .gpio4 = GPIO_DIR_OUTPUT,
43 .gpio5 = GPIO_DIR_OUTPUT,
44 .gpio6 = GPIO_DIR_OUTPUT,
45 .gpio7 = GPIO_DIR_OUTPUT,
46 .gpio8 = GPIO_DIR_OUTPUT,
47 .gpio9 = GPIO_DIR_OUTPUT,
48 .gpio10 = GPIO_DIR_OUTPUT,
49 .gpio11 = GPIO_DIR_OUTPUT,
50 .gpio12 = GPIO_DIR_OUTPUT,
51 .gpio13 = GPIO_DIR_OUTPUT,
52 .gpio14 = GPIO_DIR_OUTPUT,
53 .gpio15 = GPIO_DIR_OUTPUT,
54 .gpio16 = GPIO_DIR_OUTPUT,
55 .gpio17 = GPIO_DIR_OUTPUT,
56 .gpio18 = GPIO_DIR_OUTPUT,
57 .gpio19 = GPIO_DIR_OUTPUT,
58 .gpio20 = GPIO_DIR_OUTPUT,
59 .gpio21 = GPIO_DIR_OUTPUT,
60 .gpio22 = GPIO_DIR_OUTPUT,
61 .gpio23 = GPIO_DIR_OUTPUT,
62 .gpio24 = GPIO_DIR_OUTPUT,
63 .gpio25 = GPIO_DIR_OUTPUT,
64 .gpio26 = GPIO_DIR_OUTPUT,
65 .gpio27 = GPIO_DIR_OUTPUT,
66 .gpio28 = GPIO_DIR_OUTPUT,
67 .gpio29 = GPIO_DIR_OUTPUT,
68 .gpio30 = GPIO_DIR_INPUT,
69 .gpio31 = GPIO_DIR_OUTPUT,
70};
71
72static const struct pch_gpio_set1 pch_gpio_set1_level = {
73 .gpio0 = GPIO_LEVEL_HIGH,
74 .gpio1 = GPIO_LEVEL_HIGH,
75 .gpio2 = GPIO_LEVEL_HIGH,
76 .gpio3 = GPIO_LEVEL_HIGH,
77 .gpio4 = GPIO_LEVEL_HIGH,
78 .gpio5 = GPIO_LEVEL_HIGH,
79 .gpio6 = GPIO_LEVEL_HIGH,
80 .gpio7 = GPIO_LEVEL_HIGH,
81 .gpio8 = GPIO_LEVEL_LOW,
82 .gpio9 = GPIO_LEVEL_HIGH,
83 .gpio10 = GPIO_LEVEL_HIGH,
84 .gpio11 = GPIO_LEVEL_HIGH,
85 .gpio12 = GPIO_LEVEL_HIGH,
86 .gpio13 = GPIO_LEVEL_HIGH,
87 .gpio14 = GPIO_LEVEL_HIGH,
88 .gpio15 = GPIO_LEVEL_LOW,
89 .gpio16 = GPIO_LEVEL_HIGH,
90 .gpio17 = GPIO_LEVEL_HIGH,
91 .gpio18 = GPIO_LEVEL_HIGH,
92 .gpio19 = GPIO_LEVEL_LOW,
93 .gpio20 = GPIO_LEVEL_LOW,
94 .gpio21 = GPIO_LEVEL_LOW,
95 .gpio22 = GPIO_LEVEL_LOW,
96 .gpio23 = GPIO_LEVEL_LOW,
97 .gpio24 = GPIO_LEVEL_LOW,
98 .gpio25 = GPIO_LEVEL_HIGH,
99 .gpio26 = GPIO_LEVEL_LOW,
100 .gpio27 = GPIO_LEVEL_HIGH,
101 .gpio28 = GPIO_LEVEL_LOW,
102 .gpio29 = GPIO_LEVEL_HIGH,
103 .gpio30 = GPIO_LEVEL_HIGH,
104 .gpio31 = GPIO_LEVEL_HIGH,
105};
106
107static const struct pch_gpio_set1 pch_gpio_set1_reset = {
108 .gpio0 = GPIO_RESET_PWROK,
109 .gpio1 = GPIO_RESET_PWROK,
110 .gpio2 = GPIO_RESET_PWROK,
111 .gpio3 = GPIO_RESET_PWROK,
112 .gpio4 = GPIO_RESET_PWROK,
113 .gpio5 = GPIO_RESET_PWROK,
114 .gpio6 = GPIO_RESET_PWROK,
115 .gpio7 = GPIO_RESET_PWROK,
116 .gpio8 = GPIO_RESET_PWROK,
117 .gpio9 = GPIO_RESET_PWROK,
118 .gpio10 = GPIO_RESET_PWROK,
119 .gpio11 = GPIO_RESET_PWROK,
120 .gpio12 = GPIO_RESET_PWROK,
121 .gpio13 = GPIO_RESET_PWROK,
122 .gpio14 = GPIO_RESET_PWROK,
123 .gpio15 = GPIO_RESET_PWROK,
124 .gpio16 = GPIO_RESET_PWROK,
125 .gpio17 = GPIO_RESET_PWROK,
126 .gpio18 = GPIO_RESET_PWROK,
127 .gpio19 = GPIO_RESET_PWROK,
128 .gpio20 = GPIO_RESET_PWROK,
129 .gpio21 = GPIO_RESET_PWROK,
130 .gpio22 = GPIO_RESET_PWROK,
131 .gpio23 = GPIO_RESET_PWROK,
132 .gpio24 = GPIO_RESET_RSMRST,
133 .gpio25 = GPIO_RESET_PWROK,
134 .gpio26 = GPIO_RESET_PWROK,
135 .gpio27 = GPIO_RESET_PWROK,
136 .gpio28 = GPIO_RESET_PWROK,
137 .gpio29 = GPIO_RESET_PWROK,
138 .gpio30 = GPIO_RESET_PWROK,
139 .gpio31 = GPIO_RESET_PWROK,
140};
141
142static const struct pch_gpio_set1 pch_gpio_set1_invert = {
143 .gpio0 = GPIO_NO_INVERT,
144 .gpio1 = GPIO_NO_INVERT,
145 .gpio2 = GPIO_NO_INVERT,
146 .gpio3 = GPIO_NO_INVERT,
147 .gpio4 = GPIO_NO_INVERT,
148 .gpio5 = GPIO_NO_INVERT,
149 .gpio6 = GPIO_NO_INVERT,
150 .gpio7 = GPIO_NO_INVERT,
151 .gpio8 = GPIO_NO_INVERT,
152 .gpio9 = GPIO_NO_INVERT,
153 .gpio10 = GPIO_NO_INVERT,
154 .gpio11 = GPIO_NO_INVERT,
155 .gpio12 = GPIO_NO_INVERT,
156 .gpio13 = GPIO_INVERT,
157 .gpio14 = GPIO_NO_INVERT,
158 .gpio15 = GPIO_NO_INVERT,
159 .gpio16 = GPIO_NO_INVERT,
160 .gpio17 = GPIO_NO_INVERT,
161 .gpio18 = GPIO_NO_INVERT,
162 .gpio19 = GPIO_NO_INVERT,
163 .gpio20 = GPIO_NO_INVERT,
164 .gpio21 = GPIO_NO_INVERT,
165 .gpio22 = GPIO_NO_INVERT,
166 .gpio23 = GPIO_NO_INVERT,
167 .gpio24 = GPIO_NO_INVERT,
168 .gpio25 = GPIO_NO_INVERT,
169 .gpio26 = GPIO_NO_INVERT,
170 .gpio27 = GPIO_NO_INVERT,
171 .gpio28 = GPIO_NO_INVERT,
172 .gpio29 = GPIO_NO_INVERT,
173 .gpio30 = GPIO_NO_INVERT,
174 .gpio31 = GPIO_NO_INVERT,
175};
176
177static const struct pch_gpio_set1 pch_gpio_set1_blink = {
178 .gpio0 = GPIO_NO_BLINK,
179 .gpio1 = GPIO_NO_BLINK,
180 .gpio2 = GPIO_NO_BLINK,
181 .gpio3 = GPIO_NO_BLINK,
182 .gpio4 = GPIO_NO_BLINK,
183 .gpio5 = GPIO_NO_BLINK,
184 .gpio6 = GPIO_NO_BLINK,
185 .gpio7 = GPIO_NO_BLINK,
186 .gpio8 = GPIO_NO_BLINK,
187 .gpio9 = GPIO_NO_BLINK,
188 .gpio10 = GPIO_NO_BLINK,
189 .gpio11 = GPIO_NO_BLINK,
190 .gpio12 = GPIO_NO_BLINK,
191 .gpio13 = GPIO_NO_BLINK,
192 .gpio14 = GPIO_NO_BLINK,
193 .gpio15 = GPIO_NO_BLINK,
194 .gpio16 = GPIO_NO_BLINK,
195 .gpio17 = GPIO_NO_BLINK,
196 .gpio18 = GPIO_BLINK,
197 .gpio19 = GPIO_NO_BLINK,
198 .gpio20 = GPIO_NO_BLINK,
199 .gpio21 = GPIO_NO_BLINK,
200 .gpio22 = GPIO_NO_BLINK,
201 .gpio23 = GPIO_NO_BLINK,
202 .gpio24 = GPIO_NO_BLINK,
203 .gpio25 = GPIO_NO_BLINK,
204 .gpio26 = GPIO_NO_BLINK,
205 .gpio27 = GPIO_NO_BLINK,
206 .gpio28 = GPIO_NO_BLINK,
207 .gpio29 = GPIO_NO_BLINK,
208 .gpio30 = GPIO_NO_BLINK,
209 .gpio31 = GPIO_NO_BLINK,
210};
211
212static const struct pch_gpio_set2 pch_gpio_set2_mode = {
213 .gpio32 = GPIO_MODE_GPIO,
214 .gpio33 = GPIO_MODE_GPIO,
215 .gpio34 = GPIO_MODE_GPIO,
216 .gpio35 = GPIO_MODE_GPIO,
217 .gpio36 = GPIO_MODE_GPIO,
218 .gpio37 = GPIO_MODE_GPIO,
219 .gpio38 = GPIO_MODE_GPIO,
220 .gpio39 = GPIO_MODE_GPIO,
221 .gpio40 = GPIO_MODE_NATIVE,
222 .gpio41 = GPIO_MODE_NATIVE,
223 .gpio42 = GPIO_MODE_NATIVE,
224 .gpio43 = GPIO_MODE_NATIVE,
225 .gpio44 = GPIO_MODE_NATIVE,
226 .gpio45 = GPIO_MODE_NATIVE,
227 .gpio46 = GPIO_MODE_NATIVE,
228 .gpio47 = GPIO_MODE_NATIVE,
229 .gpio48 = GPIO_MODE_GPIO,
230 .gpio49 = GPIO_MODE_GPIO,
231 .gpio50 = GPIO_MODE_NATIVE,
232 .gpio51 = GPIO_MODE_NATIVE,
233 .gpio52 = GPIO_MODE_NATIVE,
234 .gpio53 = GPIO_MODE_NATIVE,
235 .gpio54 = GPIO_MODE_NATIVE,
236 .gpio55 = GPIO_MODE_NATIVE,
237 .gpio56 = GPIO_MODE_NATIVE,
238 .gpio57 = GPIO_MODE_GPIO,
239 .gpio58 = GPIO_MODE_NATIVE,
240 .gpio59 = GPIO_MODE_NATIVE,
241 .gpio60 = GPIO_MODE_NATIVE,
242 .gpio61 = GPIO_MODE_NATIVE,
243 .gpio62 = GPIO_MODE_NATIVE,
244 .gpio63 = GPIO_MODE_NATIVE,
245};
246
247static const struct pch_gpio_set2 pch_gpio_set2_direction = {
248 .gpio32 = GPIO_DIR_OUTPUT,
249 .gpio33 = GPIO_DIR_OUTPUT,
250 .gpio34 = GPIO_DIR_INPUT,
251 .gpio35 = GPIO_DIR_OUTPUT,
252 .gpio36 = GPIO_DIR_INPUT,
253 .gpio37 = GPIO_DIR_INPUT,
254 .gpio38 = GPIO_DIR_INPUT,
255 .gpio39 = GPIO_DIR_INPUT,
256 .gpio40 = GPIO_DIR_INPUT,
257 .gpio41 = GPIO_DIR_INPUT,
258 .gpio42 = GPIO_DIR_INPUT,
259 .gpio43 = GPIO_DIR_INPUT,
260 .gpio44 = GPIO_DIR_INPUT,
261 .gpio45 = GPIO_DIR_INPUT,
262 .gpio46 = GPIO_DIR_INPUT,
263 .gpio47 = GPIO_DIR_INPUT,
264 .gpio48 = GPIO_DIR_INPUT,
265 .gpio49 = GPIO_DIR_INPUT,
266 .gpio50 = GPIO_DIR_INPUT,
267 .gpio51 = GPIO_DIR_OUTPUT,
268 .gpio52 = GPIO_DIR_INPUT,
269 .gpio53 = GPIO_DIR_OUTPUT,
270 .gpio54 = GPIO_DIR_INPUT,
271 .gpio55 = GPIO_DIR_OUTPUT,
272 .gpio56 = GPIO_DIR_INPUT,
273 .gpio57 = GPIO_DIR_INPUT,
274 .gpio58 = GPIO_DIR_INPUT,
275 .gpio59 = GPIO_DIR_INPUT,
276 .gpio60 = GPIO_DIR_INPUT,
277 .gpio61 = GPIO_DIR_OUTPUT,
278 .gpio62 = GPIO_DIR_OUTPUT,
279 .gpio63 = GPIO_DIR_OUTPUT,
280};
281
282static const struct pch_gpio_set2 pch_gpio_set2_level = {
283 .gpio32 = GPIO_LEVEL_LOW,
284 .gpio33 = GPIO_LEVEL_LOW,
285 .gpio34 = GPIO_LEVEL_LOW,
286 .gpio35 = GPIO_LEVEL_LOW,
287 .gpio36 = GPIO_LEVEL_LOW,
288 .gpio37 = GPIO_LEVEL_LOW,
289 .gpio38 = GPIO_LEVEL_HIGH,
290 .gpio39 = GPIO_LEVEL_HIGH,
291 .gpio40 = GPIO_LEVEL_HIGH,
292 .gpio41 = GPIO_LEVEL_HIGH,
293 .gpio42 = GPIO_LEVEL_HIGH,
294 .gpio43 = GPIO_LEVEL_HIGH,
295 .gpio44 = GPIO_LEVEL_HIGH,
296 .gpio45 = GPIO_LEVEL_HIGH,
297 .gpio46 = GPIO_LEVEL_HIGH,
298 .gpio47 = GPIO_LEVEL_LOW,
299 .gpio48 = GPIO_LEVEL_HIGH,
300 .gpio49 = GPIO_LEVEL_LOW,
301 .gpio50 = GPIO_LEVEL_HIGH,
302 .gpio51 = GPIO_LEVEL_LOW,
303 .gpio52 = GPIO_LEVEL_HIGH,
304 .gpio53 = GPIO_LEVEL_LOW,
305 .gpio54 = GPIO_LEVEL_HIGH,
306 .gpio55 = GPIO_LEVEL_LOW,
307 .gpio56 = GPIO_LEVEL_LOW,
308 .gpio57 = GPIO_LEVEL_HIGH,
309 .gpio58 = GPIO_LEVEL_HIGH,
310 .gpio59 = GPIO_LEVEL_HIGH,
311 .gpio60 = GPIO_LEVEL_HIGH,
312 .gpio61 = GPIO_LEVEL_LOW,
313 .gpio62 = GPIO_LEVEL_HIGH,
314 .gpio63 = GPIO_LEVEL_LOW,
315};
316
317static const struct pch_gpio_set2 pch_gpio_set2_reset = {
318 .gpio32 = GPIO_RESET_PWROK,
319 .gpio33 = GPIO_RESET_PWROK,
320 .gpio34 = GPIO_RESET_PWROK,
321 .gpio35 = GPIO_RESET_PWROK,
322 .gpio36 = GPIO_RESET_PWROK,
323 .gpio37 = GPIO_RESET_PWROK,
324 .gpio38 = GPIO_RESET_PWROK,
325 .gpio39 = GPIO_RESET_PWROK,
326 .gpio40 = GPIO_RESET_PWROK,
327 .gpio41 = GPIO_RESET_PWROK,
328 .gpio42 = GPIO_RESET_PWROK,
329 .gpio43 = GPIO_RESET_PWROK,
330 .gpio44 = GPIO_RESET_PWROK,
331 .gpio45 = GPIO_RESET_PWROK,
332 .gpio46 = GPIO_RESET_PWROK,
333 .gpio47 = GPIO_RESET_PWROK,
334 .gpio48 = GPIO_RESET_PWROK,
335 .gpio49 = GPIO_RESET_PWROK,
336 .gpio50 = GPIO_RESET_PWROK,
337 .gpio51 = GPIO_RESET_PWROK,
338 .gpio52 = GPIO_RESET_PWROK,
339 .gpio53 = GPIO_RESET_PWROK,
340 .gpio54 = GPIO_RESET_PWROK,
341 .gpio55 = GPIO_RESET_PWROK,
342 .gpio56 = GPIO_RESET_PWROK,
343 .gpio57 = GPIO_RESET_PWROK,
344 .gpio58 = GPIO_RESET_PWROK,
345 .gpio59 = GPIO_RESET_PWROK,
346 .gpio60 = GPIO_RESET_PWROK,
347 .gpio61 = GPIO_RESET_PWROK,
348 .gpio62 = GPIO_RESET_PWROK,
349 .gpio63 = GPIO_RESET_PWROK,
350};
351
352static const struct pch_gpio_set3 pch_gpio_set3_mode = {
353 .gpio64 = GPIO_MODE_NATIVE,
354 .gpio65 = GPIO_MODE_NATIVE,
355 .gpio66 = GPIO_MODE_NATIVE,
356 .gpio67 = GPIO_MODE_NATIVE,
357 .gpio68 = GPIO_MODE_GPIO,
358 .gpio69 = GPIO_MODE_GPIO,
359 .gpio70 = GPIO_MODE_NATIVE,
360 .gpio71 = GPIO_MODE_NATIVE,
361 .gpio72 = GPIO_MODE_GPIO,
362 .gpio73 = GPIO_MODE_NATIVE,
363 .gpio74 = GPIO_MODE_NATIVE,
364 .gpio75 = GPIO_MODE_NATIVE,
365};
366
367static const struct pch_gpio_set3 pch_gpio_set3_direction = {
368 .gpio64 = GPIO_DIR_OUTPUT,
369 .gpio65 = GPIO_DIR_OUTPUT,
370 .gpio66 = GPIO_DIR_OUTPUT,
371 .gpio67 = GPIO_DIR_OUTPUT,
372 .gpio68 = GPIO_DIR_INPUT,
373 .gpio69 = GPIO_DIR_INPUT,
374 .gpio70 = GPIO_DIR_INPUT,
375 .gpio71 = GPIO_DIR_INPUT,
376 .gpio72 = GPIO_DIR_INPUT,
377 .gpio73 = GPIO_DIR_INPUT,
378 .gpio74 = GPIO_DIR_INPUT,
379 .gpio75 = GPIO_DIR_INPUT,
380};
381
382static const struct pch_gpio_set3 pch_gpio_set3_level = {
383 .gpio64 = GPIO_LEVEL_HIGH,
384 .gpio65 = GPIO_LEVEL_HIGH,
385 .gpio66 = GPIO_LEVEL_HIGH,
386 .gpio67 = GPIO_LEVEL_HIGH,
387 .gpio68 = GPIO_LEVEL_HIGH,
388 .gpio69 = GPIO_LEVEL_LOW,
389 .gpio70 = GPIO_LEVEL_LOW,
390 .gpio71 = GPIO_LEVEL_LOW,
391 .gpio72 = GPIO_LEVEL_HIGH,
392 .gpio73 = GPIO_LEVEL_LOW,
393 .gpio74 = GPIO_LEVEL_HIGH,
394 .gpio75 = GPIO_LEVEL_HIGH,
395};
396
397static const struct pch_gpio_set3 pch_gpio_set3_reset = {
398 .gpio64 = GPIO_RESET_PWROK,
399 .gpio65 = GPIO_RESET_PWROK,
400 .gpio66 = GPIO_RESET_PWROK,
401 .gpio67 = GPIO_RESET_PWROK,
402 .gpio68 = GPIO_RESET_PWROK,
403 .gpio69 = GPIO_RESET_PWROK,
404 .gpio70 = GPIO_RESET_PWROK,
405 .gpio71 = GPIO_RESET_PWROK,
406 .gpio72 = GPIO_RESET_PWROK,
407 .gpio73 = GPIO_RESET_PWROK,
408 .gpio74 = GPIO_RESET_PWROK,
409 .gpio75 = GPIO_RESET_PWROK,
410};
411
412const struct pch_gpio_map mainboard_gpio_map = {
413 .set1 = {
414 .mode = &pch_gpio_set1_mode,
415 .direction = &pch_gpio_set1_direction,
416 .level = &pch_gpio_set1_level,
417 .blink = &pch_gpio_set1_blink,
418 .invert = &pch_gpio_set1_invert,
419 .reset = &pch_gpio_set1_reset,
420 },
421 .set2 = {
422 .mode = &pch_gpio_set2_mode,
423 .direction = &pch_gpio_set2_direction,
424 .level = &pch_gpio_set2_level,
425 .reset = &pch_gpio_set2_reset,
426 },
427 .set3 = {
428 .mode = &pch_gpio_set3_mode,
429 .direction = &pch_gpio_set3_direction,
430 .level = &pch_gpio_set3_level,
431 .reset = &pch_gpio_set3_reset,
432 },
433};