blob: 0484bf27866be23decf0d9457bc09126f3c9c4fd [file] [log] [blame]
Arthur Heymans734b3d12016-08-31 12:57:08 +02001#ifndef LENOVO_T400_GPIO_H
2#define LENOVO_T400_GPIO_H
3
4#include <southbridge/intel/common/gpio.h>
5
6const struct pch_gpio_set1 pch_gpio_set1_mode = {
7 .gpio0 = GPIO_MODE_NATIVE,
8 .gpio1 = GPIO_MODE_GPIO,
9 .gpio2 = GPIO_MODE_GPIO,
10 .gpio3 = GPIO_MODE_GPIO,
11 .gpio4 = GPIO_MODE_GPIO,
12 .gpio5 = GPIO_MODE_GPIO,
13 .gpio6 = GPIO_MODE_GPIO,
14 .gpio7 = GPIO_MODE_GPIO,
15 .gpio8 = GPIO_MODE_GPIO,
16 .gpio9 = GPIO_MODE_GPIO,
17 .gpio10 = GPIO_MODE_NATIVE,
18 .gpio11 = GPIO_MODE_NATIVE,
19 .gpio12 = GPIO_MODE_NATIVE,
20 .gpio13 = GPIO_MODE_GPIO,
21 .gpio14 = GPIO_MODE_NATIVE,
22 .gpio15 = GPIO_MODE_NATIVE,
23 .gpio16 = GPIO_MODE_NATIVE,
24 .gpio17 = GPIO_MODE_GPIO,
25 .gpio18 = GPIO_MODE_GPIO,
26 .gpio19 = GPIO_MODE_GPIO,
27 .gpio20 = GPIO_MODE_GPIO,
28 .gpio21 = GPIO_MODE_GPIO,
29 .gpio22 = GPIO_MODE_GPIO,
30 .gpio23 = GPIO_MODE_NATIVE,
31 .gpio24 = GPIO_MODE_GPIO,
32 .gpio25 = GPIO_MODE_NATIVE,
33 .gpio26 = GPIO_MODE_NATIVE,
34 .gpio27 = GPIO_MODE_GPIO,
35 .gpio28 = GPIO_MODE_GPIO,
36 .gpio29 = GPIO_MODE_NATIVE,
37 .gpio30 = GPIO_MODE_NATIVE,
38 .gpio31 = GPIO_MODE_NATIVE,
39};
40
41const struct pch_gpio_set1 pch_gpio_set1_direction = {
42 .gpio0 = GPIO_DIR_OUTPUT,
43 .gpio1 = GPIO_DIR_INPUT,
44 .gpio2 = GPIO_DIR_INPUT,
45 .gpio3 = GPIO_DIR_INPUT,
46 .gpio4 = GPIO_DIR_INPUT,
47 .gpio5 = GPIO_DIR_INPUT,
48 .gpio6 = GPIO_DIR_INPUT,
49 .gpio7 = GPIO_DIR_INPUT,
50 .gpio8 = GPIO_DIR_INPUT,
51 .gpio9 = GPIO_DIR_OUTPUT,
52 .gpio10 = GPIO_DIR_INPUT,
53 .gpio11 = GPIO_DIR_INPUT,
54 .gpio12 = GPIO_DIR_OUTPUT,
55 .gpio13 = GPIO_DIR_INPUT,
56 .gpio14 = GPIO_DIR_INPUT,
57 .gpio15 = GPIO_DIR_OUTPUT,
58 .gpio16 = GPIO_DIR_OUTPUT,
59 .gpio17 = GPIO_DIR_INPUT,
60 .gpio18 = GPIO_DIR_INPUT,
61 .gpio19 = GPIO_DIR_OUTPUT,
62 .gpio20 = GPIO_DIR_OUTPUT,
63 .gpio21 = GPIO_DIR_INPUT,
64 .gpio22 = GPIO_DIR_OUTPUT,
65 .gpio23 = GPIO_DIR_INPUT,
66 .gpio24 = GPIO_DIR_INPUT,
67 .gpio25 = GPIO_DIR_OUTPUT,
68 .gpio26 = GPIO_DIR_OUTPUT,
69 .gpio27 = GPIO_DIR_OUTPUT,
70 .gpio28 = GPIO_DIR_OUTPUT,
71 .gpio29 = GPIO_DIR_INPUT,
72 .gpio30 = GPIO_DIR_INPUT,
73 .gpio31 = GPIO_DIR_INPUT,
74};
75
76const struct pch_gpio_set1 pch_gpio_set1_level = {
77 .gpio0 = GPIO_LEVEL_HIGH,
78 .gpio1 = GPIO_LEVEL_HIGH,
79 .gpio2 = GPIO_LEVEL_HIGH,
80 .gpio3 = GPIO_LEVEL_HIGH,
81 .gpio4 = GPIO_LEVEL_HIGH,
82 .gpio5 = GPIO_LEVEL_HIGH,
83 .gpio6 = GPIO_LEVEL_LOW,
84 .gpio7 = GPIO_LEVEL_LOW,
85 .gpio8 = GPIO_LEVEL_HIGH,
86 .gpio9 = GPIO_LEVEL_HIGH,
87 .gpio10 = GPIO_LEVEL_HIGH,
88 .gpio11 = GPIO_LEVEL_HIGH,
89 .gpio12 = GPIO_LEVEL_LOW,
90 .gpio13 = GPIO_LEVEL_HIGH,
91 .gpio14 = GPIO_LEVEL_HIGH,
92 .gpio15 = GPIO_LEVEL_HIGH,
93 .gpio16 = GPIO_LEVEL_LOW,
94 .gpio17 = GPIO_LEVEL_HIGH,
95 .gpio18 = GPIO_LEVEL_LOW,
96 .gpio19 = GPIO_LEVEL_HIGH,
97 .gpio20 = GPIO_LEVEL_HIGH,
98 .gpio21 = GPIO_LEVEL_HIGH,
99 .gpio22 = GPIO_LEVEL_HIGH,
100 .gpio23 = GPIO_LEVEL_HIGH,
101 .gpio24 = GPIO_LEVEL_HIGH,
102 .gpio25 = GPIO_LEVEL_HIGH,
103 .gpio26 = GPIO_LEVEL_LOW,
104 .gpio27 = GPIO_LEVEL_LOW,
105 .gpio28 = GPIO_LEVEL_LOW,
106 .gpio29 = GPIO_LEVEL_HIGH,
107 .gpio30 = GPIO_LEVEL_HIGH,
108 .gpio31 = GPIO_LEVEL_HIGH,
109};
110
111const struct pch_gpio_set1 pch_gpio_set1_blink = {
112 .gpio0 = GPIO_NO_BLINK,
113 .gpio1 = GPIO_NO_BLINK,
114 .gpio2 = GPIO_NO_BLINK,
115 .gpio3 = GPIO_NO_BLINK,
116 .gpio4 = GPIO_NO_BLINK,
117 .gpio5 = GPIO_NO_BLINK,
118 .gpio6 = GPIO_NO_BLINK,
119 .gpio7 = GPIO_NO_BLINK,
120 .gpio8 = GPIO_NO_BLINK,
121 .gpio9 = GPIO_NO_BLINK,
122 .gpio10 = GPIO_NO_BLINK,
123 .gpio11 = GPIO_NO_BLINK,
124 .gpio12 = GPIO_NO_BLINK,
125 .gpio13 = GPIO_NO_BLINK,
126 .gpio14 = GPIO_NO_BLINK,
127 .gpio15 = GPIO_NO_BLINK,
128 .gpio16 = GPIO_NO_BLINK,
129 .gpio17 = GPIO_NO_BLINK,
130 .gpio18 = GPIO_NO_BLINK,
131 .gpio19 = GPIO_NO_BLINK,
132 .gpio20 = GPIO_NO_BLINK,
133 .gpio21 = GPIO_NO_BLINK,
134 .gpio22 = GPIO_NO_BLINK,
135 .gpio23 = GPIO_NO_BLINK,
136 .gpio24 = GPIO_NO_BLINK,
137 .gpio25 = GPIO_NO_BLINK,
138 .gpio26 = GPIO_NO_BLINK,
139 .gpio27 = GPIO_NO_BLINK,
140 .gpio28 = GPIO_NO_BLINK,
141 .gpio29 = GPIO_NO_BLINK,
142 .gpio30 = GPIO_NO_BLINK,
143 .gpio31 = GPIO_NO_BLINK,
144};
145
146const struct pch_gpio_set1 pch_gpio_set1_invert = {
147 .gpio0 = GPIO_NO_INVERT,
148 .gpio1 = GPIO_INVERT,
149 .gpio2 = GPIO_NO_INVERT,
150 .gpio3 = GPIO_NO_INVERT,
151 .gpio4 = GPIO_NO_INVERT,
152 .gpio5 = GPIO_NO_INVERT,
153 .gpio6 = GPIO_NO_INVERT,
154 .gpio7 = GPIO_NO_INVERT,
155 .gpio8 = GPIO_INVERT,
156 .gpio9 = GPIO_NO_INVERT,
157 .gpio10 = GPIO_NO_INVERT,
158 .gpio11 = GPIO_NO_INVERT,
159 .gpio12 = GPIO_NO_INVERT,
160 .gpio13 = GPIO_NO_INVERT,
161 .gpio14 = GPIO_NO_INVERT,
162 .gpio15 = GPIO_NO_INVERT,
163 .gpio16 = GPIO_NO_INVERT,
164 .gpio17 = GPIO_NO_INVERT,
165 .gpio18 = GPIO_NO_INVERT,
166 .gpio19 = GPIO_NO_INVERT,
167 .gpio20 = GPIO_NO_INVERT,
168 .gpio21 = GPIO_NO_INVERT,
169 .gpio22 = GPIO_NO_INVERT,
170 .gpio23 = GPIO_NO_INVERT,
171 .gpio24 = GPIO_NO_INVERT,
172 .gpio25 = GPIO_NO_INVERT,
173 .gpio26 = GPIO_NO_INVERT,
174 .gpio27 = GPIO_NO_INVERT,
175 .gpio28 = GPIO_NO_INVERT,
176 .gpio29 = GPIO_NO_INVERT,
177 .gpio30 = GPIO_NO_INVERT,
178 .gpio31 = GPIO_NO_INVERT,
179};
180
181const struct pch_gpio_set2 pch_gpio_set2_mode = {
182 .gpio32 = GPIO_MODE_NATIVE,
183 .gpio33 = GPIO_MODE_GPIO,
184 .gpio34 = GPIO_MODE_GPIO,
185 .gpio35 = GPIO_MODE_NATIVE,
186 .gpio36 = GPIO_MODE_GPIO,
187 .gpio37 = GPIO_MODE_GPIO,
188 .gpio38 = GPIO_MODE_GPIO,
189 .gpio39 = GPIO_MODE_GPIO,
190 .gpio40 = GPIO_MODE_NATIVE,
191 .gpio41 = GPIO_MODE_GPIO,
192 .gpio42 = GPIO_MODE_GPIO,
193 .gpio43 = GPIO_MODE_NATIVE,
194 .gpio44 = GPIO_MODE_NATIVE,
195 .gpio45 = GPIO_MODE_NATIVE,
196 .gpio46 = GPIO_MODE_NATIVE,
197 .gpio47 = GPIO_MODE_NATIVE,
198 .gpio48 = GPIO_MODE_GPIO,
199 .gpio49 = GPIO_MODE_GPIO,
200 .gpio50 = GPIO_MODE_NATIVE,
201 .gpio51 = GPIO_MODE_NATIVE,
202 .gpio52 = GPIO_MODE_NATIVE,
203 .gpio53 = GPIO_MODE_NATIVE,
204 .gpio54 = GPIO_MODE_NATIVE,
205 .gpio55 = GPIO_MODE_NATIVE,
206 .gpio56 = GPIO_MODE_GPIO,
207 .gpio57 = GPIO_MODE_GPIO,
208 .gpio58 = GPIO_MODE_NATIVE,
209 .gpio59 = GPIO_MODE_NATIVE,
210 .gpio60 = GPIO_MODE_NATIVE,
211 .gpio61 = GPIO_MODE_NATIVE,
212 .gpio62 = GPIO_MODE_NATIVE,
213 .gpio63 = GPIO_MODE_NATIVE,
214};
215
216const struct pch_gpio_set2 pch_gpio_set2_direction = {
217 .gpio32 = GPIO_DIR_INPUT,
218 .gpio33 = GPIO_DIR_OUTPUT,
219 .gpio34 = GPIO_DIR_OUTPUT,
220 .gpio35 = GPIO_DIR_OUTPUT,
221 .gpio36 = GPIO_DIR_INPUT,
222 .gpio37 = GPIO_DIR_INPUT,
223 .gpio38 = GPIO_DIR_INPUT,
224 .gpio39 = GPIO_DIR_INPUT,
225 .gpio40 = GPIO_DIR_INPUT,
226 .gpio41 = GPIO_DIR_OUTPUT,
227 .gpio42 = GPIO_DIR_OUTPUT,
228 .gpio43 = GPIO_DIR_INPUT,
229 .gpio44 = GPIO_DIR_INPUT,
230 .gpio45 = GPIO_DIR_INPUT,
231 .gpio46 = GPIO_DIR_INPUT,
232 .gpio47 = GPIO_DIR_INPUT,
233 .gpio48 = GPIO_DIR_INPUT,
234 .gpio49 = GPIO_DIR_OUTPUT,
235 .gpio50 = GPIO_DIR_INPUT,
236 .gpio51 = GPIO_DIR_OUTPUT,
237 .gpio52 = GPIO_DIR_INPUT,
238 .gpio53 = GPIO_DIR_OUTPUT,
239 .gpio54 = GPIO_DIR_INPUT,
240 .gpio55 = GPIO_DIR_OUTPUT,
241 .gpio56 = GPIO_DIR_INPUT,
242 .gpio57 = GPIO_DIR_INPUT,
243 .gpio58 = GPIO_DIR_INPUT,
244 .gpio59 = GPIO_DIR_INPUT,
245 .gpio60 = GPIO_DIR_INPUT,
246 .gpio61 = GPIO_DIR_OUTPUT,
247 .gpio62 = GPIO_DIR_OUTPUT,
248 .gpio63 = GPIO_DIR_OUTPUT,
249};
250
251const struct pch_gpio_set2 pch_gpio_set2_level = {
252 .gpio32 = GPIO_LEVEL_HIGH,
253 .gpio33 = GPIO_LEVEL_HIGH,
254 .gpio34 = GPIO_LEVEL_LOW,
255 .gpio35 = GPIO_LEVEL_LOW,
256 .gpio36 = GPIO_LEVEL_HIGH,
257 .gpio37 = GPIO_LEVEL_LOW,
258 .gpio38 = GPIO_LEVEL_HIGH,
259 .gpio39 = GPIO_LEVEL_LOW,
260 .gpio40 = GPIO_LEVEL_HIGH,
261 .gpio41 = GPIO_LEVEL_HIGH,
262 .gpio42 = GPIO_LEVEL_HIGH,
263 .gpio43 = GPIO_LEVEL_HIGH,
264 .gpio44 = GPIO_LEVEL_HIGH,
265 .gpio45 = GPIO_LEVEL_HIGH,
266 .gpio46 = GPIO_LEVEL_HIGH,
267 .gpio47 = GPIO_LEVEL_HIGH,
268 .gpio48 = GPIO_LEVEL_HIGH,
269 .gpio49 = GPIO_LEVEL_HIGH,
270 .gpio50 = GPIO_LEVEL_HIGH,
271 .gpio51 = GPIO_LEVEL_HIGH,
272 .gpio52 = GPIO_LEVEL_HIGH,
273 .gpio53 = GPIO_LEVEL_HIGH,
274 .gpio54 = GPIO_LEVEL_HIGH,
275 .gpio55 = GPIO_LEVEL_HIGH,
276 .gpio56 = GPIO_LEVEL_HIGH,
277 .gpio57 = GPIO_LEVEL_LOW,
278 .gpio58 = GPIO_LEVEL_HIGH,
279 .gpio59 = GPIO_LEVEL_HIGH,
280 .gpio60 = GPIO_LEVEL_HIGH,
281 .gpio61 = GPIO_LEVEL_LOW,
282 .gpio62 = GPIO_LEVEL_LOW,
283 .gpio63 = GPIO_LEVEL_LOW,
284};
285
286const struct pch_gpio_map t400_gpio_map = {
287 .set1 = {
288 .mode = &pch_gpio_set1_mode,
289 .direction = &pch_gpio_set1_direction,
290 .level = &pch_gpio_set1_level,
291 .blink = &pch_gpio_set1_blink,
292 .invert = &pch_gpio_set1_invert,
293 },
294 .set2 = {
295 .mode = &pch_gpio_set2_mode,
296 .direction = &pch_gpio_set2_direction,
297 .level = &pch_gpio_set2_level,
298 },
299};
300
301#endif