igpioreg.h revision 1.1 1 1.1 manu /* $NetBSD: igpioreg.h,v 1.1 2022/03/24 02:24:25 manu Exp $ */
2 1.1 manu
3 1.1 manu /*
4 1.1 manu * Copyright (c) 2021 Emmanuel Dreyfus
5 1.1 manu * All rights reserved.
6 1.1 manu *
7 1.1 manu * Redistribution and use in source and binary forms, with or without
8 1.1 manu * modification, are permitted provided that the following conditions
9 1.1 manu * are met:
10 1.1 manu * 1. Redistributions of source code must retain the above copyright
11 1.1 manu * notice, this list of conditions and the following disclaimer.
12 1.1 manu * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 manu * notice, this list of conditions and the following disclaimer in the
14 1.1 manu * documentation and/or other materials provided with the distribution.
15 1.1 manu *
16 1.1 manu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 1.1 manu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 1.1 manu * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 1.1 manu * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20 1.1 manu * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 1.1 manu * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 1.1 manu * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 1.1 manu * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 1.1 manu * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 1.1 manu * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 1.1 manu * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 1.1 manu */
28 1.1 manu
29 1.1 manu #ifndef _IGPIOREG_H
30 1.1 manu #define _IGPIOREG_H
31 1.1 manu
32 1.1 manu #define IGPIO_REVID 0x0000
33 1.1 manu #define IGPIO_CAPLIST 0x0004
34 1.1 manu #define IGPIO_PADBAR 0x000c
35 1.1 manu
36 1.1 manu #define IGPIO_PADCFG0 0x0000
37 1.1 manu
38 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_SHIFT 25
39 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_MASK __BITS(26, 25)
40 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_LEVEL 0
41 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_EDGE 1
42 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_DISABLED 2
43 1.1 manu #define IGPIO_PADCFG0_RXEVCFG_EDGE_BOTH 3
44 1.1 manu #define IGPIO_PADCFG0_PREGFRXSEL __BIT(24)
45 1.1 manu #define IGPIO_PADCFG0_RXINV __BIT(23)
46 1.1 manu #define IGPIO_PADCFG0_GPIROUTIOXAPIC __BIT(20)
47 1.1 manu #define IGPIO_PADCFG0_GPIROUTSCI __BIT(19)
48 1.1 manu #define IGPIO_PADCFG0_GPIROUTSMI __BIT(18)
49 1.1 manu #define IGPIO_PADCFG0_GPIROUTNMI __BIT(17)
50 1.1 manu #define IGPIO_PADCFG0_PMODE_SHIFT 10
51 1.1 manu #define IGPIO_PADCFG0_PMODE_MASK __BITS(13, 10)
52 1.1 manu #define IGPIO_PADCFG0_PMODE_GPIO 0
53 1.1 manu #define IGPIO_PADCFG0_GPIORXDIS __BIT(9)
54 1.1 manu #define IGPIO_PADCFG0_GPIOTXDIS __BIT(8)
55 1.1 manu #define IGPIO_PADCFG0_GPIORXSTATE __BIT(1)
56 1.1 manu #define IGPIO_PADCFG0_GPIOTXSTATE __BIT(0)
57 1.1 manu
58 1.1 manu #define IGPIO_PADCFG1 0x0004
59 1.1 manu #define IGPIO_PADCFG1_TERM_UP __BIT(13)
60 1.1 manu #define IGPIO_PADCFG1_TERM_SHIFT 10
61 1.1 manu #define IGPIO_PADCFG1_TERM_MASK __BITS(12, 10)
62 1.1 manu #define IGPIO_PADCFG1_TERM_20K __BIT(2)
63 1.1 manu #define IGPIO_PADCFG1_TERM_5K __BIT(1)
64 1.1 manu #define IGPIO_PADCFG1_TERM_1K __BIT(0)
65 1.1 manu #define IGPIO_PADCFG1_TERM_833 (__BIT(1) | BIT(0))
66 1.1 manu
67 1.1 manu #define IGPIO_CAPLIST_ID_GPIO_HW_INFO 1
68 1.1 manu #define IGPIO_CAPLIST_ID_PWM 2
69 1.1 manu #define IGPIO_CAPLIST_ID_BLINK 3
70 1.1 manu #define IGPIO_CAPLIST_ID_EXP 4
71 1.1 manu
72 1.1 manu
73 1.1 manu #define IGPIO_PINCTRL_FEATURE_DEBOUNCE 0x001
74 1.1 manu #define IGPIO_PINCTRL_FEATURE_1K_PD 0x002
75 1.1 manu #define IGPIO_PINCTRL_FEATURE_GPIO_HW_INFO 0x004
76 1.1 manu #define IGPIO_PINCTRL_FEATURE_PWM 0x010
77 1.1 manu #define IGPIO_PINCTRL_FEATURE_BLINK 0x020
78 1.1 manu #define IGPIO_PINCTRL_FEATURE_EXP 0x040
79 1.1 manu
80 1.1 manu struct igpio_bank_setup {
81 1.1 manu const char *ibs_acpi_hid;
82 1.1 manu int ibs_barno;
83 1.1 manu int ibs_first_pin;
84 1.1 manu int ibs_last_pin;
85 1.1 manu int ibs_gpi_is;
86 1.1 manu int ibs_gpi_ie;
87 1.1 manu };
88 1.1 manu
89 1.1 manu struct igpio_pin_group {
90 1.1 manu const char *ipg_acpi_hid;
91 1.1 manu int ipg_groupno;
92 1.1 manu int ipg_first_pin;
93 1.1 manu const char *ipg_name;
94 1.1 manu };
95 1.1 manu
96 1.1 manu struct igpio_bank_setup igpio_bank_setup[] = {
97 1.1 manu /* Sunrisepoint-LP */
98 1.1 manu { "INT344B", 0, 0, 47, 0x100, 0x120 },
99 1.1 manu { "INT344B", 1, 48, 119, 0x100, 0x120 },
100 1.1 manu { "INT344B", 2, 120, 151, 0x100, 0x120 },
101 1.1 manu
102 1.1 manu /* Sunrisepoint-H */
103 1.1 manu { "INT3451", 0, 0, 47, 0x100, 0x120 },
104 1.1 manu { "INT3451", 1, 48, 180, 0x100, 0x120 },
105 1.1 manu { "INT3451", 2, 181, 191, 0x100, 0x120 },
106 1.1 manu
107 1.1 manu /* Sunrisepoint-H */
108 1.1 manu { "INT345D", 0, 0, 47, 0x100, 0x120 },
109 1.1 manu { "INT345D", 1, 48, 180, 0x100, 0x120 },
110 1.1 manu { "INT345D", 2, 181, 191, 0x100, 0x120 },
111 1.1 manu
112 1.1 manu /* Baytrail XXX GPI_IS and GPI_IE */
113 1.1 manu { "INT33B2", 0, 0, 101, 0x000, 0x000 },
114 1.1 manu { "INT33FC", 0, 0, 101, 0x000, 0x000 },
115 1.1 manu
116 1.1 manu /* Lynxpoint XXX GPI_IS and GPI_IE */
117 1.1 manu { "INT33C7", 0, 0, 94, 0x000, 0x000 },
118 1.1 manu { "INT3437", 0, 0, 94, 0x000, 0x000 },
119 1.1 manu
120 1.1 manu /* Cannonlake-H */
121 1.1 manu { "INT3450", 0, 0, 50, 0x100, 0x120 },
122 1.1 manu { "INT3450", 1, 51, 154, 0x100, 0x120 },
123 1.1 manu { "INT3450", 2, 155, 248, 0x100, 0x120 },
124 1.1 manu { "INT3450", 3, 249, 298, 0x100, 0x120 },
125 1.1 manu
126 1.1 manu /* Cannonlake-LP */
127 1.1 manu { "INT34BB", 0, 0, 67, 0x100, 0x120 },
128 1.1 manu { "INT34BB", 1, 68, 180, 0x100, 0x120 },
129 1.1 manu { "INT34BB", 2, 181, 243, 0x100, 0x120 },
130 1.1 manu
131 1.1 manu /* Alderlake */
132 1.1 manu { "INTC1056", 0, 0, 94, 0x200, 0x220 },
133 1.1 manu { "INTC1056", 1, 95, 150, 0x200, 0x220 },
134 1.1 manu { "INTC1056", 2, 151, 199, 0x200, 0x220 },
135 1.1 manu { "INTC1056", 3, 200, 269, 0x200, 0x220 },
136 1.1 manu { "INTC1056", 4, 270, 303, 0x200, 0x220 },
137 1.1 manu
138 1.1 manu /* Icelake */
139 1.1 manu { "INT3455", 0, 0, 58, 0x100, 0x110 },
140 1.1 manu { "INT3455", 1, 59, 152, 0x100, 0x110 },
141 1.1 manu { "INT3455", 2, 153, 215, 0x100, 0x110 },
142 1.1 manu { "INT3455", 3, 216, 240, 0x100, 0x110 },
143 1.1 manu
144 1.1 manu /* Lakefield */
145 1.1 manu { "INT34C4", 0, 0, 59, 0x100, 0x110 },
146 1.1 manu { "INT34C4", 1, 60, 148, 0x100, 0x110 },
147 1.1 manu { "INT34C4", 2, 149, 237, 0x100, 0x110 },
148 1.1 manu { "INT34C4", 3, 238, 266, 0x100, 0x110 },
149 1.1 manu
150 1.1 manu /* Tigerlake-LP */
151 1.1 manu { "INT34C5", 0, 0, 66, 0x100, 0x120 },
152 1.1 manu { "INT34C5", 1, 67, 170, 0x100, 0x120 },
153 1.1 manu { "INT34C5", 2, 171, 259, 0x100, 0x120 },
154 1.1 manu { "INT34C5", 3, 260, 276, 0x100, 0x120 },
155 1.1 manu
156 1.1 manu /* Tigerlake-LP */
157 1.1 manu { "INTC1055", 0, 0, 66, 0x100, 0x120 },
158 1.1 manu { "INTC1055", 1, 67, 170, 0x100, 0x120 },
159 1.1 manu { "INTC1055", 2, 171, 259, 0x100, 0x120 },
160 1.1 manu { "INTC1055", 3, 260, 276, 0x100, 0x120 },
161 1.1 manu
162 1.1 manu /* Tigerlake-LP */
163 1.1 manu { "INTC1057", 0, 0, 66, 0x100, 0x120 },
164 1.1 manu { "INTC1057", 1, 67, 170, 0x100, 0x120 },
165 1.1 manu { "INTC1057", 2, 171, 259, 0x100, 0x120 },
166 1.1 manu { "INTC1057", 3, 260, 276, 0x100, 0x120 },
167 1.1 manu
168 1.1 manu /* Tigerlake-H */
169 1.1 manu { "INT34C6", 0, 0, 78, 0x100, 0x120 },
170 1.1 manu { "INT34C6", 1, 79, 180, 0x100, 0x120 },
171 1.1 manu { "INT34C6", 2, 181, 217, 0x100, 0x120 },
172 1.1 manu { "INT34C6", 3, 218, 266, 0x100, 0x120 },
173 1.1 manu { "INT34C6", 4, 267, 290, 0x100, 0x120 },
174 1.1 manu
175 1.1 manu /* Jasperlake */
176 1.1 manu { "INT34C8", 0, 0, 91, 0x100, 0x120 },
177 1.1 manu { "INT34C8", 1, 92, 194, 0x100, 0x120 },
178 1.1 manu { "INT34C8", 2, 195, 224, 0x100, 0x120 },
179 1.1 manu { "INT34C8", 3, 225, 232, 0x100, 0x120 },
180 1.1 manu
181 1.1 manu /* Lewisburg */
182 1.1 manu { "INT3536", 0, 0, 7, 0x100, 0x110 },
183 1.1 manu { "INT3536", 1, 72, 13, 0x100, 0x110 },
184 1.1 manu { "INT3536", 3, 133, 14, 0x100, 0x110 },
185 1.1 manu { "INT3536", 4, 144, 17, 0x100, 0x110 },
186 1.1 manu { "INT3536", 5, 179, 246, 0x100, 0x110 },
187 1.1 manu
188 1.1 manu /* Emmitsburg */
189 1.1 manu { "INTC1071", 0, 0, 65, 0x200, 0x210 },
190 1.1 manu { "INTC1071", 1, 66, 111, 0x200, 0x210 },
191 1.1 manu { "INTC1071", 2, 112, 145, 0x200, 0x210 },
192 1.1 manu { "INTC1071", 3, 146, 183, 0x200, 0x210 },
193 1.1 manu { "INTC1071", 4, 184, 261, 0x200, 0x210 },
194 1.1 manu
195 1.1 manu /* Denverton */
196 1.1 manu { "INTC3000", 0, 0, 40, 0x100, 0x120 },
197 1.1 manu { "INTC3000", 1, 41, 153, 0x100, 0x120 },
198 1.1 manu
199 1.1 manu /* Cedarfork */
200 1.1 manu { "INTC3001", 0, 0, 167, 0x200, 0x230 },
201 1.1 manu { "INTC3001", 1, 168, 236, 0x200, 0x230 },
202 1.1 manu
203 1.1 manu /* Geminilake */
204 1.1 manu { "INT3453", 0, 0, 34, 0x100, 0x110 },
205 1.1 manu
206 1.1 manu #ifdef notyet
207 1.1 manu /*
208 1.1 manu * BAR mappings not obvious, further studying required
209 1.1 manu */
210 1.1 manu /* Broxton */
211 1.1 manu { "apollolake-pinctrl", 0, 0, 0, 0x100, 0x110 },
212 1.1 manu { "broxton-pinctrl", 0, 0, 0, 0x100, 0x110 },
213 1.1 manu { "INT34D1", 0, 0, 0, 0x100, 0x110 },
214 1.1 manu { "INT3452", 0, 0, 0, 0x100, 0x110 },
215 1.1 manu
216 1.1 manu /* Cherryview */
217 1.1 manu { "INT33FF", 0, 0, 0, 0x000, 0x000 },
218 1.1 manu #endif
219 1.1 manu
220 1.1 manu { NULL, 0, 0, 0, 0x000, 0x000 },
221 1.1 manu };
222 1.1 manu
223 1.1 manu struct igpio_pin_group igpio_pin_group[] = {
224 1.1 manu /* Sunrisepoint-LP */
225 1.1 manu { "INT344B", 0, 151, "A" },
226 1.1 manu
227 1.1 manu /* Sunrisepoint-H */
228 1.1 manu { "INT3451", 0, 0, "A" },
229 1.1 manu { "INT3451", 1, 24, "B" },
230 1.1 manu { "INT3451", 0, 48, "C" },
231 1.1 manu { "INT3451", 1, 72, "D" },
232 1.1 manu { "INT3451", 2, 96, "E" },
233 1.1 manu { "INT3451", 3, 109, "F" },
234 1.1 manu { "INT3451", 4, 133, "G" },
235 1.1 manu { "INT3451", 5, 157, "H" },
236 1.1 manu { "INT3451", 0, 181, "I" },
237 1.1 manu
238 1.1 manu /* Sunrisepoint-H */
239 1.1 manu { "INT345D", 0, 0, "A" },
240 1.1 manu { "INT345D", 1, 24, "B" },
241 1.1 manu { "INT345D", 0, 48, "C" },
242 1.1 manu { "INT345D", 1, 72, "D" },
243 1.1 manu { "INT345D", 2, 96, "E" },
244 1.1 manu { "INT345D", 3, 109, "F" },
245 1.1 manu { "INT345D", 4, 133, "G" },
246 1.1 manu { "INT345D", 5, 157, "H" },
247 1.1 manu { "INT345D", 0, 181, "I" },
248 1.1 manu
249 1.1 manu
250 1.1 manu /* Baytrail */
251 1.1 manu { "INT33B2", 0, 101, "A" },
252 1.1 manu
253 1.1 manu /* Lynxpoint */
254 1.1 manu { "INT33C7", 0, 94, "A" },
255 1.1 manu { "INT3437", 0, 94, "A" },
256 1.1 manu
257 1.1 manu /* Cannonlake-H */
258 1.1 manu { "INT3450", 0, 0, "GPP_A" },
259 1.1 manu { "INT3450", 1, 25, "GPP_B" },
260 1.1 manu { "INT3450", 0, 51, "GPP_C" },
261 1.1 manu { "INT3450", 1, 75, "GPP_D" },
262 1.1 manu { "INT3450", 2, 99, "GPP_G" },
263 1.1 manu { "INT3450", 3, 107, "AZA" },
264 1.1 manu { "INT3450", 4, 115, "vGPIO_0" },
265 1.1 manu { "INT3450", 5, 147, "vGPIO_1" },
266 1.1 manu { "INT3450", 0, 155, "GPP_K" },
267 1.1 manu { "INT3450", 1, 179, "GPP_H" },
268 1.1 manu { "INT3450", 2, 203, "GPP_E" },
269 1.1 manu { "INT3450", 3, 216, "GPP_F" },
270 1.1 manu { "INT3450", 4, 240, "SPI" },
271 1.1 manu { "INT3450", 0, 249, "CPU" },
272 1.1 manu { "INT3450", 1, 260, "JTAG" },
273 1.1 manu { "INT3450", 2, 269, "GPP_I" },
274 1.1 manu { "INT3450", 3, 287, "GPP_J" },
275 1.1 manu
276 1.1 manu /* Cannonlake-LP */
277 1.1 manu { "INT34BB", 0, 0, "GPP_A" },
278 1.1 manu { "INT34BB", 1, 25, "GPP_B" },
279 1.1 manu { "INT34BB", 2, 51, "GPP_G" },
280 1.1 manu { "INT34BB", 3, 59, "SPI" },
281 1.1 manu { "INT34BB", 0, 68, "GPP_D" },
282 1.1 manu { "INT34BB", 1, 93, "GPP_F" },
283 1.1 manu { "INT34BB", 2, 117, "GPP_H" },
284 1.1 manu { "INT34BB", 3, 141, "vGPIO" },
285 1.1 manu { "INT34BB", 4, 173, "vGPIO" },
286 1.1 manu { "INT34BB", 0, 181, "GPP_C" },
287 1.1 manu { "INT34BB", 1, 205, "GPP_E" },
288 1.1 manu { "INT34BB", 2, 229, "JTAG" },
289 1.1 manu { "INT34BB", 3, 238, "HVCMOS" },
290 1.1 manu
291 1.1 manu /* Alderlake */
292 1.1 manu { "INTC1056", 0, 0, "GPP_I" },
293 1.1 manu { "INTC1056", 1, 25, "GPP_R" },
294 1.1 manu { "INTC1056", 2, 48, "GPP_J" },
295 1.1 manu { "INTC1056", 3, 60, "vGPIO" },
296 1.1 manu { "INTC1056", 4, 87, "vGPIO_0" },
297 1.1 manu { "INTC1056", 0, 95, "GPP_B" },
298 1.1 manu { "INTC1056", 1, 119, "GPP_G" },
299 1.1 manu { "INTC1056", 2, 127, "GPP_H" },
300 1.1 manu { "INTC1056", 0, 151, "SPI0" },
301 1.1 manu { "INTC1056", 1, 160, "GPP_A" },
302 1.1 manu { "INTC1056", 2, 176, "GPP_C" },
303 1.1 manu { "INTC1056", 0, 200, "GPP_S" },
304 1.1 manu { "INTC1056", 1, 208, "GPP_E" },
305 1.1 manu { "INTC1056", 2, 231, "GPP_K" },
306 1.1 manu { "INTC1056", 3, 246, "GPP_F" },
307 1.1 manu { "INTC1056", 0, 270, "GPP_D" },
308 1.1 manu { "INTC1056", 1, 295, "JTAG" },
309 1.1 manu
310 1.1 manu
311 1.1 manu /* Icelake */
312 1.1 manu { "INT3455", 0, 0, "GPP_G" },
313 1.1 manu { "INT3455", 1, 8, "GPP_B" },
314 1.1 manu { "INT3455", 2, 34, "GPP_A" },
315 1.1 manu { "INT3455", 0, 59, "GPP_H" },
316 1.1 manu { "INT3455", 1, 83, "GPP_D" },
317 1.1 manu { "INT3455", 2, 104, "GPP_F" },
318 1.1 manu { "INT3455", 3, 124, "vGPIO" },
319 1.1 manu { "INT3455", 0, 153, "GPP_C" },
320 1.1 manu { "INT3455", 1, 177, "HVCMOS" },
321 1.1 manu { "INT3455", 2, 183, "GPP_E" },
322 1.1 manu { "INT3455", 3, 207, "JTAG" },
323 1.1 manu { "INT3455", 2, 232, "SPI" },
324 1.1 manu
325 1.1 manu
326 1.1 manu /* Lakefield */
327 1.1 manu { "INT34C4", 0, 0, "EAST_0" },
328 1.1 manu { "INT34C4", 1, 32, "EAST_1" },
329 1.1 manu { "INT34C4", 0, 60, "NORTHWEST_0" },
330 1.1 manu { "INT34C4", 1, 92, "NORTHWEST_1" },
331 1.1 manu { "INT34C4", 2, 124, "NORTHWEST_2" },
332 1.1 manu { "INT34C4", 0, 149, "WEST_0" },
333 1.1 manu { "INT34C4", 1, 181, "WEST_1" },
334 1.1 manu { "INT34C4", 2, 213, "WEST_2" },
335 1.1 manu { "INT34C4", 0, 238, "SOUTHEAST" },
336 1.1 manu
337 1.1 manu
338 1.1 manu /* Tigerlake-LP */
339 1.1 manu { "INT34C5", 0, 0, "GPP_A" },
340 1.1 manu { "INT34C5", 1, 25, "GPP_R" },
341 1.1 manu { "INT34C5", 2, 45, "GPP_B" },
342 1.1 manu { "INT34C5", 3, 71, "vGPIO_0" },
343 1.1 manu { "INT34C5", 0, 79, "GPP_D" },
344 1.1 manu { "INT34C5", 1, 105, "GPP_C" },
345 1.1 manu { "INT34C5", 2, 129, "GPP_S" },
346 1.1 manu { "INT34C5", 3, 137, "GPP_G" },
347 1.1 manu { "INT34C5", 4, 154, "vGPIO" },
348 1.1 manu { "INT34C5", 0, 181, "GPP_E" },
349 1.1 manu { "INT34C5", 1, 194, "GPP_F" },
350 1.1 manu { "INT34C5", 0, 218, "GPP_H" },
351 1.1 manu { "INT34C5", 1, 242, "GPP_J" },
352 1.1 manu { "INT34C5", 2, 252, "GPP_K" },
353 1.1 manu { "INT34C5", 0, 267, "GPP_I" },
354 1.1 manu { "INT34C5", 1, 282, "JTAG" },
355 1.1 manu
356 1.1 manu
357 1.1 manu /* Tigerlake-LP */
358 1.1 manu { "INTC1055", 0, 0, "GPP_A" },
359 1.1 manu { "INTC1055", 1, 25, "GPP_R" },
360 1.1 manu { "INTC1055", 2, 45, "GPP_B" },
361 1.1 manu { "INTC1055", 3, 71, "vGPIO_0" },
362 1.1 manu { "INTC1055", 0, 79, "GPP_D" },
363 1.1 manu { "INTC1055", 1, 105, "GPP_C" },
364 1.1 manu { "INTC1055", 2, 129, "GPP_S" },
365 1.1 manu { "INTC1055", 3, 137, "GPP_G" },
366 1.1 manu { "INTC1055", 4, 154, "vGPIO" },
367 1.1 manu { "INTC1055", 0, 181, "GPP_E" },
368 1.1 manu { "INTC1055", 1, 194, "GPP_F" },
369 1.1 manu { "INTC1055", 0, 218, "GPP_H" },
370 1.1 manu { "INTC1055", 1, 242, "GPP_J" },
371 1.1 manu { "INTC1055", 2, 252, "GPP_K" },
372 1.1 manu { "INTC1055", 0, 267, "GPP_I" },
373 1.1 manu { "INTC1055", 1, 282, "JTAG" },
374 1.1 manu
375 1.1 manu
376 1.1 manu /* Tigerlake-LP */
377 1.1 manu { "INTC1057", 0, 0, "GPP_A" },
378 1.1 manu { "INTC1057", 1, 25, "GPP_R" },
379 1.1 manu { "INTC1057", 2, 45, "GPP_B" },
380 1.1 manu { "INTC1057", 3, 71, "vGPIO_0" },
381 1.1 manu { "INTC1057", 0, 79, "GPP_D" },
382 1.1 manu { "INTC1057", 1, 105, "GPP_C" },
383 1.1 manu { "INTC1057", 2, 129, "GPP_S" },
384 1.1 manu { "INTC1057", 3, 137, "GPP_G" },
385 1.1 manu { "INTC1057", 4, 154, "vGPIO" },
386 1.1 manu { "INTC1057", 0, 181, "GPP_E" },
387 1.1 manu { "INTC1057", 1, 194, "GPP_F" },
388 1.1 manu { "INTC1057", 0, 218, "GPP_H" },
389 1.1 manu { "INTC1057", 1, 242, "GPP_J" },
390 1.1 manu { "INTC1057", 2, 252, "GPP_K" },
391 1.1 manu { "INTC1057", 0, 267, "GPP_I" },
392 1.1 manu { "INTC1057", 1, 282, "JTAG" },
393 1.1 manu
394 1.1 manu /* Tigerlake-H */
395 1.1 manu { "INT34C6", 0, 0, "GPP_B" },
396 1.1 manu { "INT34C6", 1, 26, "GPP_T" },
397 1.1 manu { "INT34C6", 2, 42, "GPP_A" },
398 1.1 manu { "INT34C6", 0, 67, "GPP_S" },
399 1.1 manu { "INT34C6", 1, 75, "GPP_H" },
400 1.1 manu { "INT34C6", 2, 99, "GPP_D" },
401 1.1 manu { "INT34C6", 3, 120, "GPP_U" },
402 1.1 manu { "INT34C6", 4, 144, "vGPIO" },
403 1.1 manu { "INT34C6", 0, 171, "GPP_C" },
404 1.1 manu { "INT34C6", 1, 195, "GPP_F" },
405 1.1 manu { "INT34C6", 2, 220, "HVCMOS" },
406 1.1 manu { "INT34C6", 3, 226, "GPP_E" },
407 1.1 manu { "INT34C6", 4, 251, "JTAG" },
408 1.1 manu { "INT34C6", 0, 260, "GPP_R" },
409 1.1 manu { "INT34C6", 1, 268, "SPI" },
410 1.1 manu
411 1.1 manu /* Jasperlake */
412 1.1 manu { "INT34C8", 0, 0, "GPP_F" },
413 1.1 manu { "INT34C8", 1, 20, "SPI" },
414 1.1 manu { "INT34C8", 2, 29, "GPP_B" },
415 1.1 manu { "INT34C8", 3, 55, "GPP_A" },
416 1.1 manu { "INT34C8", 4, 76, "GPP_S" },
417 1.1 manu { "INT34C8", 5, 84, "GPP_R" },
418 1.1 manu { "INT34C8", 0, 92, "GPP_H" },
419 1.1 manu { "INT34C8", 1, 116, "GPP_D" },
420 1.1 manu { "INT34C8", 2, 142, "vGPIO" },
421 1.1 manu { "INT34C8", 3, 171, "GPP_C" },
422 1.1 manu { "INT34C8", 0, 195, "HVCMOS" },
423 1.1 manu { "INT34C8", 1, 201, "GPP_E" },
424 1.1 manu { "INT34C8", 0, 225, "GPP_G" },
425 1.1 manu
426 1.1 manu
427 1.1 manu /* Lewisburg */
428 1.1 manu { "INT3536", 0, 7, "" },
429 1.1 manu
430 1.1 manu /* Emmitsburg */
431 1.1 manu { "INTC1071", 0, 0, "GPP_A" },
432 1.1 manu { "INTC1071", 1, 21, "GPP_B" },
433 1.1 manu { "INTC1071", 2, 45, "SPI" },
434 1.1 manu { "INTC1071", 0, 66, "GPP_C" },
435 1.1 manu { "INTC1071", 1, 88, "GPP_D" },
436 1.1 manu { "INTC1071", 0, 112, "GPP_E" },
437 1.1 manu { "INTC1071", 1, 136, "JTAG" },
438 1.1 manu { "INTC1071", 0, 146, "GPP_H" },
439 1.1 manu { "INTC1071", 1, 166, "GPP_J" },
440 1.1 manu { "INTC1071", 0, 184, "GPP_I" },
441 1.1 manu { "INTC1071", 1, 208, "GPP_L" },
442 1.1 manu { "INTC1071", 2, 226, "GPP_M" },
443 1.1 manu { "INTC1071", 3, 244, "GPP_N" },
444 1.1 manu
445 1.1 manu /* Denverton */
446 1.1 manu { "INTC3000", 0, 0, "North" },
447 1.1 manu { "INTC3000", 1, 32, "North" },
448 1.1 manu { "INTC3000", 0, 41, "South" },
449 1.1 manu { "INTC3000", 1, 59, "South" },
450 1.1 manu { "INTC3000", 2, 91, "South" },
451 1.1 manu { "INTC3000", 3, 112, "South" },
452 1.1 manu { "INTC3000", 4, 144, "South" },
453 1.1 manu
454 1.1 manu
455 1.1 manu /* Cedarfork */
456 1.1 manu { "INTC3001", 0, 0, "WEST2" },
457 1.1 manu { "INTC3001", 1, 24, "WEST3" },
458 1.1 manu { "INTC3001", 2, 48, "WEST01" },
459 1.1 manu { "INTC3001", 3, 71, "WEST5" },
460 1.1 manu { "INTC3001", 4, 91, "WESTC" },
461 1.1 manu { "INTC3001", 5, 97, "WESTC_DFX" },
462 1.1 manu { "INTC3001", 6, 102, "WESTA" },
463 1.1 manu { "INTC3001", 7, 112, "WESTB" },
464 1.1 manu { "INTC3001", 8, 124, "WESTD" },
465 1.1 manu { "INTC3001", 9, 144, "WESTD_PECI" },
466 1.1 manu { "INTC3001", 10, 145, "WESTF" },
467 1.1 manu { "INTC3001", 0, 168, "EAST2" },
468 1.1 manu { "INTC3001", 1, 192, "EAST3" },
469 1.1 manu { "INTC3001", 2, 203, "EAST0" },
470 1.1 manu { "INTC3001", 3, 226, "EMMC" },
471 1.1 manu
472 1.1 manu /* Geminilake */
473 1.1 manu { "INT3453", 0, 34, "" },
474 1.1 manu
475 1.1 manu #ifdef notyet
476 1.1 manu /*
477 1.1 manu * BAR mappings not obvious, further studying required
478 1.1 manu */
479 1.1 manu /* Broxton */
480 1.1 manu { "apollolake-pinctrl", 0, 0, "" },
481 1.1 manu { "broxton-pinctrl", 0, 0, "" },
482 1.1 manu { "INT34D1", 0, 0, "" },
483 1.1 manu { "INT3452", 0, 0, "" },
484 1.1 manu
485 1.1 manu /* Cherryview */
486 1.1 manu { "INT33FF", 0, 0, "" },
487 1.1 manu #endif
488 1.1 manu
489 1.1 manu { NULL, 0, 0, 0 },
490 1.1 manu };
491 1.1 manu
492 1.1 manu #endif /* _IGPIOREG_H */
493 1.1 manu
494