blob: 13cfa7d88be40093006022c69d3c0f7bf4c7c77c [file] [log] [blame]
Vladimir Serbinenkoa8cfb252014-10-19 02:24:16 +02001#include "southbridge/intel/bd82x6x/gpio.h"
2static const struct pch_gpio_set1 pch_gpio_set1_mode = {
3 .gpio0 = GPIO_MODE_GPIO,
4 .gpio1 = GPIO_MODE_GPIO,
5 .gpio2 = GPIO_MODE_GPIO,
6 .gpio3 = GPIO_MODE_GPIO,
7 .gpio4 = GPIO_MODE_GPIO,
8 .gpio5 = GPIO_MODE_GPIO,
9 .gpio6 = GPIO_MODE_GPIO,
10 .gpio7 = GPIO_MODE_GPIO,
11 .gpio8 = GPIO_MODE_GPIO,
12 .gpio9 = GPIO_MODE_NATIVE,
13 .gpio10 = GPIO_MODE_GPIO,
14 .gpio11 = GPIO_MODE_NATIVE,
15 .gpio12 = GPIO_MODE_NATIVE,
16 .gpio13 = GPIO_MODE_GPIO,
17 .gpio14 = GPIO_MODE_NATIVE,
18 .gpio15 = GPIO_MODE_GPIO,
19 .gpio16 = GPIO_MODE_GPIO,
20 .gpio17 = GPIO_MODE_GPIO,
21 .gpio18 = GPIO_MODE_NATIVE,
22 .gpio19 = GPIO_MODE_NATIVE,
23 .gpio20 = GPIO_MODE_NATIVE,
24 .gpio21 = GPIO_MODE_GPIO,
25 .gpio22 = GPIO_MODE_GPIO,
26 .gpio23 = GPIO_MODE_NATIVE,
27 .gpio24 = GPIO_MODE_GPIO,
28 .gpio25 = GPIO_MODE_NATIVE,
29 .gpio26 = GPIO_MODE_NATIVE,
30 .gpio27 = GPIO_MODE_GPIO,
31 .gpio28 = GPIO_MODE_GPIO,
32 .gpio29 = GPIO_MODE_GPIO,
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_INPUT,
39 .gpio1 = GPIO_DIR_INPUT,
40 .gpio2 = GPIO_DIR_INPUT,
41 .gpio3 = GPIO_DIR_INPUT,
42 .gpio4 = GPIO_DIR_INPUT,
43 .gpio5 = GPIO_DIR_INPUT,
44 .gpio6 = GPIO_DIR_INPUT,
45 .gpio7 = GPIO_DIR_INPUT,
46 .gpio8 = GPIO_DIR_OUTPUT,
47 .gpio9 = GPIO_DIR_INPUT,
48 .gpio10 = GPIO_DIR_OUTPUT,
49 .gpio11 = GPIO_DIR_INPUT,
50 .gpio12 = GPIO_DIR_OUTPUT,
51 .gpio13 = GPIO_DIR_INPUT,
52 .gpio14 = GPIO_DIR_INPUT,
53 .gpio15 = GPIO_DIR_OUTPUT,
54 .gpio16 = GPIO_DIR_INPUT,
55 .gpio17 = GPIO_DIR_INPUT,
56 .gpio18 = GPIO_DIR_INPUT,
57 .gpio19 = GPIO_DIR_INPUT,
58 .gpio20 = GPIO_DIR_INPUT,
59 .gpio21 = GPIO_DIR_INPUT,
60 .gpio22 = GPIO_DIR_OUTPUT,
61 .gpio23 = GPIO_DIR_INPUT,
62 .gpio24 = GPIO_DIR_OUTPUT,
63 .gpio25 = GPIO_DIR_INPUT,
64 .gpio26 = GPIO_DIR_INPUT,
65 .gpio27 = GPIO_DIR_INPUT,
66 .gpio28 = GPIO_DIR_INPUT,
67 .gpio29 = GPIO_DIR_OUTPUT,
68 .gpio30 = GPIO_DIR_OUTPUT,
69 .gpio31 = GPIO_DIR_INPUT,
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_LOW,
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_HIGH,
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_HIGH,
93 .gpio20 = GPIO_LEVEL_HIGH,
94 .gpio21 = GPIO_LEVEL_HIGH,
95 .gpio22 = GPIO_LEVEL_HIGH,
96 .gpio23 = GPIO_LEVEL_HIGH,
97 .gpio24 = GPIO_LEVEL_LOW,
98 .gpio25 = GPIO_LEVEL_HIGH,
99 .gpio26 = GPIO_LEVEL_HIGH,
100 .gpio27 = GPIO_LEVEL_LOW,
101 .gpio28 = GPIO_LEVEL_LOW,
102 .gpio29 = GPIO_LEVEL_HIGH,
103 .gpio30 = GPIO_LEVEL_HIGH,
104 .gpio31 = GPIO_LEVEL_LOW,
105};
106
107static const struct pch_gpio_set1 pch_gpio_set1_invert = {
108 .gpio0 = GPIO_INVERT,
109 .gpio1 = GPIO_INVERT,
110 .gpio2 = GPIO_NO_INVERT,
111 .gpio3 = GPIO_NO_INVERT,
112 .gpio4 = GPIO_NO_INVERT,
113 .gpio5 = GPIO_NO_INVERT,
114 .gpio6 = GPIO_INVERT,
115 .gpio7 = GPIO_NO_INVERT,
116 .gpio8 = GPIO_NO_INVERT,
117 .gpio9 = GPIO_NO_INVERT,
118 .gpio10 = GPIO_NO_INVERT,
119 .gpio11 = GPIO_NO_INVERT,
120 .gpio12 = GPIO_NO_INVERT,
121 .gpio13 = GPIO_INVERT,
122 .gpio14 = GPIO_NO_INVERT,
123 .gpio15 = GPIO_NO_INVERT,
124 .gpio16 = GPIO_NO_INVERT,
125 .gpio17 = GPIO_NO_INVERT,
126 .gpio18 = GPIO_NO_INVERT,
127 .gpio19 = GPIO_NO_INVERT,
128 .gpio20 = GPIO_NO_INVERT,
129 .gpio21 = GPIO_NO_INVERT,
130 .gpio22 = GPIO_NO_INVERT,
131 .gpio23 = GPIO_NO_INVERT,
132 .gpio24 = GPIO_NO_INVERT,
133 .gpio25 = GPIO_NO_INVERT,
134 .gpio26 = GPIO_NO_INVERT,
135 .gpio27 = GPIO_NO_INVERT,
136 .gpio28 = GPIO_NO_INVERT,
137 .gpio29 = GPIO_NO_INVERT,
138 .gpio30 = GPIO_NO_INVERT,
139 .gpio31 = GPIO_NO_INVERT,
140};
141
142static const struct pch_gpio_set1 pch_gpio_set1_blink = {
143 .gpio0 = GPIO_NO_BLINK,
144 .gpio1 = GPIO_NO_BLINK,
145 .gpio2 = GPIO_NO_BLINK,
146 .gpio3 = GPIO_NO_BLINK,
147 .gpio4 = GPIO_NO_BLINK,
148 .gpio5 = GPIO_NO_BLINK,
149 .gpio6 = GPIO_NO_BLINK,
150 .gpio7 = GPIO_NO_BLINK,
151 .gpio8 = GPIO_NO_BLINK,
152 .gpio9 = GPIO_NO_BLINK,
153 .gpio10 = GPIO_NO_BLINK,
154 .gpio11 = GPIO_NO_BLINK,
155 .gpio12 = GPIO_NO_BLINK,
156 .gpio13 = GPIO_NO_BLINK,
157 .gpio14 = GPIO_NO_BLINK,
158 .gpio15 = GPIO_NO_BLINK,
159 .gpio16 = GPIO_NO_BLINK,
160 .gpio17 = GPIO_NO_BLINK,
161 .gpio18 = GPIO_NO_BLINK,
162 .gpio19 = GPIO_NO_BLINK,
163 .gpio20 = GPIO_NO_BLINK,
164 .gpio21 = GPIO_NO_BLINK,
165 .gpio22 = GPIO_NO_BLINK,
166 .gpio23 = GPIO_NO_BLINK,
167 .gpio24 = GPIO_NO_BLINK,
168 .gpio25 = GPIO_NO_BLINK,
169 .gpio26 = GPIO_NO_BLINK,
170 .gpio27 = GPIO_NO_BLINK,
171 .gpio28 = GPIO_NO_BLINK,
172 .gpio29 = GPIO_NO_BLINK,
173 .gpio30 = GPIO_NO_BLINK,
174 .gpio31 = GPIO_NO_BLINK,
175};
176
177static const struct pch_gpio_set2 pch_gpio_set2_mode = {
178 .gpio32 = GPIO_MODE_NATIVE,
179 .gpio33 = GPIO_MODE_GPIO,
180 .gpio34 = GPIO_MODE_GPIO,
181 .gpio35 = GPIO_MODE_GPIO,
182 .gpio36 = GPIO_MODE_GPIO,
183 .gpio37 = GPIO_MODE_GPIO,
184 .gpio38 = GPIO_MODE_GPIO,
185 .gpio39 = GPIO_MODE_GPIO,
186 .gpio40 = GPIO_MODE_NATIVE,
187 .gpio41 = GPIO_MODE_NATIVE,
188 .gpio42 = GPIO_MODE_GPIO,
189 .gpio43 = GPIO_MODE_NATIVE,
190 .gpio44 = GPIO_MODE_NATIVE,
191 .gpio45 = GPIO_MODE_NATIVE,
192 .gpio46 = GPIO_MODE_NATIVE,
193 .gpio47 = GPIO_MODE_NATIVE,
194 .gpio48 = GPIO_MODE_GPIO,
195 .gpio49 = GPIO_MODE_GPIO,
196 .gpio50 = GPIO_MODE_GPIO,
197 .gpio51 = GPIO_MODE_GPIO,
198 .gpio52 = GPIO_MODE_GPIO,
199 .gpio53 = GPIO_MODE_GPIO,
200 .gpio54 = GPIO_MODE_GPIO,
201 .gpio55 = GPIO_MODE_GPIO,
202 .gpio56 = GPIO_MODE_NATIVE,
203 .gpio57 = GPIO_MODE_GPIO,
204 .gpio58 = GPIO_MODE_NATIVE,
205 .gpio59 = GPIO_MODE_NATIVE,
206 .gpio60 = GPIO_MODE_NATIVE,
207 .gpio61 = GPIO_MODE_NATIVE,
208 .gpio62 = GPIO_MODE_NATIVE,
209 .gpio63 = GPIO_MODE_NATIVE,
210};
211
212static const struct pch_gpio_set2 pch_gpio_set2_direction = {
213 .gpio32 = GPIO_DIR_INPUT,
214 .gpio33 = GPIO_DIR_OUTPUT,
215 .gpio34 = GPIO_DIR_INPUT,
216 .gpio35 = GPIO_DIR_OUTPUT,
217 .gpio36 = GPIO_DIR_INPUT,
218 .gpio37 = GPIO_DIR_INPUT,
219 .gpio38 = GPIO_DIR_INPUT,
220 .gpio39 = GPIO_DIR_INPUT,
221 .gpio40 = GPIO_DIR_INPUT,
222 .gpio41 = GPIO_DIR_INPUT,
223 .gpio42 = GPIO_DIR_OUTPUT,
224 .gpio43 = GPIO_DIR_INPUT,
225 .gpio44 = GPIO_DIR_INPUT,
226 .gpio45 = GPIO_DIR_INPUT,
227 .gpio46 = GPIO_DIR_INPUT,
228 .gpio47 = GPIO_DIR_INPUT,
229 .gpio48 = GPIO_DIR_INPUT,
230 .gpio49 = GPIO_DIR_INPUT,
231 .gpio50 = GPIO_DIR_INPUT,
232 .gpio51 = GPIO_DIR_OUTPUT,
233 .gpio52 = GPIO_DIR_OUTPUT,
234 .gpio53 = GPIO_DIR_OUTPUT,
235 .gpio54 = GPIO_DIR_INPUT,
236 .gpio55 = GPIO_DIR_OUTPUT,
237 .gpio56 = GPIO_DIR_INPUT,
238 .gpio57 = GPIO_DIR_INPUT,
239 .gpio58 = GPIO_DIR_INPUT,
240 .gpio59 = GPIO_DIR_INPUT,
241 .gpio60 = GPIO_DIR_INPUT,
242 .gpio61 = GPIO_DIR_OUTPUT,
243 .gpio62 = GPIO_DIR_OUTPUT,
244 .gpio63 = GPIO_DIR_OUTPUT,
245};
246
247static const struct pch_gpio_set2 pch_gpio_set2_level = {
248 .gpio32 = GPIO_LEVEL_HIGH,
249 .gpio33 = GPIO_LEVEL_HIGH,
250 .gpio34 = GPIO_LEVEL_HIGH,
251 .gpio35 = GPIO_LEVEL_LOW,
252 .gpio36 = GPIO_LEVEL_LOW,
253 .gpio37 = GPIO_LEVEL_LOW,
254 .gpio38 = GPIO_LEVEL_LOW,
255 .gpio39 = GPIO_LEVEL_HIGH,
256 .gpio40 = GPIO_LEVEL_HIGH,
257 .gpio41 = GPIO_LEVEL_HIGH,
258 .gpio42 = GPIO_LEVEL_HIGH,
259 .gpio43 = GPIO_LEVEL_HIGH,
260 .gpio44 = GPIO_LEVEL_HIGH,
261 .gpio45 = GPIO_LEVEL_HIGH,
262 .gpio46 = GPIO_LEVEL_HIGH,
263 .gpio47 = GPIO_LEVEL_HIGH,
264 .gpio48 = GPIO_LEVEL_LOW,
265 .gpio49 = GPIO_LEVEL_LOW,
266 .gpio50 = GPIO_LEVEL_HIGH,
267 .gpio51 = GPIO_LEVEL_HIGH,
268 .gpio52 = GPIO_LEVEL_LOW,
269 .gpio53 = GPIO_LEVEL_HIGH,
270 .gpio54 = GPIO_LEVEL_HIGH,
271 .gpio55 = GPIO_LEVEL_HIGH,
272 .gpio56 = GPIO_LEVEL_HIGH,
273 .gpio57 = GPIO_LEVEL_LOW,
274 .gpio58 = GPIO_LEVEL_HIGH,
275 .gpio59 = GPIO_LEVEL_HIGH,
276 .gpio60 = GPIO_LEVEL_HIGH,
277 .gpio61 = GPIO_LEVEL_HIGH,
278 .gpio62 = GPIO_LEVEL_LOW,
279 .gpio63 = GPIO_LEVEL_HIGH,
280};
281
Vladimir Serbinenkoa8cfb252014-10-19 02:24:16 +0200282static const struct pch_gpio_set3 pch_gpio_set3_mode = {
283 .gpio64 = GPIO_MODE_NATIVE,
284 .gpio65 = GPIO_MODE_NATIVE,
285 .gpio66 = GPIO_MODE_NATIVE,
286 .gpio67 = GPIO_MODE_NATIVE,
287 .gpio68 = GPIO_MODE_GPIO,
288 .gpio69 = GPIO_MODE_GPIO,
289 .gpio70 = GPIO_MODE_GPIO,
290 .gpio71 = GPIO_MODE_GPIO,
291 .gpio72 = GPIO_MODE_NATIVE,
292 .gpio73 = GPIO_MODE_NATIVE,
293 .gpio74 = GPIO_MODE_NATIVE,
294 .gpio75 = GPIO_MODE_NATIVE,
295};
296
297static const struct pch_gpio_set3 pch_gpio_set3_direction = {
298 .gpio64 = GPIO_DIR_OUTPUT,
299 .gpio65 = GPIO_DIR_OUTPUT,
300 .gpio66 = GPIO_DIR_OUTPUT,
301 .gpio67 = GPIO_DIR_OUTPUT,
302 .gpio68 = GPIO_DIR_INPUT,
303 .gpio69 = GPIO_DIR_INPUT,
304 .gpio70 = GPIO_DIR_INPUT,
305 .gpio71 = GPIO_DIR_INPUT,
306 .gpio72 = GPIO_DIR_INPUT,
307 .gpio73 = GPIO_DIR_INPUT,
308 .gpio74 = GPIO_DIR_INPUT,
309 .gpio75 = GPIO_DIR_INPUT,
310};
311
312static const struct pch_gpio_set3 pch_gpio_set3_level = {
313 .gpio64 = GPIO_LEVEL_HIGH,
314 .gpio65 = GPIO_LEVEL_HIGH,
315 .gpio66 = GPIO_LEVEL_HIGH,
316 .gpio67 = GPIO_LEVEL_HIGH,
317 .gpio68 = GPIO_LEVEL_LOW,
318 .gpio69 = GPIO_LEVEL_LOW,
319 .gpio70 = GPIO_LEVEL_HIGH,
320 .gpio71 = GPIO_LEVEL_HIGH,
321 .gpio72 = GPIO_LEVEL_HIGH,
322 .gpio73 = GPIO_LEVEL_HIGH,
323 .gpio74 = GPIO_LEVEL_HIGH,
324 .gpio75 = GPIO_LEVEL_HIGH,
325};
326
Vladimir Serbinenkofa1d6882014-10-19 02:50:45 +0200327const struct pch_gpio_map mainboard_gpio_map = {
Vladimir Serbinenkoa8cfb252014-10-19 02:24:16 +0200328 .set1 = {
329 .mode = &pch_gpio_set1_mode,
330 .direction = &pch_gpio_set1_direction,
331 .level = &pch_gpio_set1_level,
332 .blink = &pch_gpio_set1_blink,
333 .invert = &pch_gpio_set1_invert,
334 },
335 .set2 = {
336 .mode = &pch_gpio_set2_mode,
337 .direction = &pch_gpio_set2_direction,
338 .level = &pch_gpio_set2_level,
339 },
340 .set3 = {
341 .mode = &pch_gpio_set3_mode,
342 .direction = &pch_gpio_set3_direction,
343 .level = &pch_gpio_set3_level,
344 },
345};