igpioreg.h revision 1.8 1 1.8 msaitoh /* $NetBSD: igpioreg.h,v 1.8 2023/01/07 11:15:00 msaitoh 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.8 msaitoh int ibs_gpi_is; /* Interrupt Status */
86 1.8 msaitoh int ibs_gpi_ie; /* Interrupt Enable */
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.5 msaitoh /* Coffee Lake-S (Same as Sunrisepoint-H(INT345D)) */
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.5 msaitoh /* Cannon Lake-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.5 msaitoh /* Cannon Lake-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.5 msaitoh /* Ice Lake-LP */
132 1.1 manu { "INT3455", 0, 0, 58, 0x100, 0x110 },
133 1.1 manu { "INT3455", 1, 59, 152, 0x100, 0x110 },
134 1.1 manu { "INT3455", 2, 153, 215, 0x100, 0x110 },
135 1.1 manu { "INT3455", 3, 216, 240, 0x100, 0x110 },
136 1.1 manu
137 1.8 msaitoh /* Ice Lake-N */
138 1.8 msaitoh { "INT34C3", 0, 0, 71, 0x100, 0x120 },
139 1.8 msaitoh { "INT34C3", 1, 72, 174, 0x100, 0x120 },
140 1.8 msaitoh { "INT34C3", 2, 175, 204, 0x100, 0x120 },
141 1.8 msaitoh { "INT34C3", 3, 205, 212, 0x100, 0x120 },
142 1.8 msaitoh
143 1.1 manu /* Lakefield */
144 1.1 manu { "INT34C4", 0, 0, 59, 0x100, 0x110 },
145 1.1 manu { "INT34C4", 1, 60, 148, 0x100, 0x110 },
146 1.1 manu { "INT34C4", 2, 149, 237, 0x100, 0x110 },
147 1.1 manu { "INT34C4", 3, 238, 266, 0x100, 0x110 },
148 1.1 manu
149 1.5 msaitoh /* Tiger Lake-LP */
150 1.1 manu { "INT34C5", 0, 0, 66, 0x100, 0x120 },
151 1.1 manu { "INT34C5", 1, 67, 170, 0x100, 0x120 },
152 1.1 manu { "INT34C5", 2, 171, 259, 0x100, 0x120 },
153 1.1 manu { "INT34C5", 3, 260, 276, 0x100, 0x120 },
154 1.1 manu
155 1.8 msaitoh /* Alder Lake-P (Same as Tiger Lake-LP(INT34C5)) */
156 1.5 msaitoh { "INTC1055", 0, 0, 66, 0x100, 0x120 },
157 1.5 msaitoh { "INTC1055", 1, 67, 170, 0x100, 0x120 },
158 1.5 msaitoh { "INTC1055", 2, 171, 259, 0x100, 0x120 },
159 1.5 msaitoh { "INTC1055", 3, 260, 276, 0x100, 0x120 },
160 1.5 msaitoh
161 1.5 msaitoh /* Tiger Lake-H */
162 1.1 manu { "INT34C6", 0, 0, 78, 0x100, 0x120 },
163 1.1 manu { "INT34C6", 1, 79, 180, 0x100, 0x120 },
164 1.1 manu { "INT34C6", 2, 181, 217, 0x100, 0x120 },
165 1.1 manu { "INT34C6", 3, 218, 266, 0x100, 0x120 },
166 1.1 manu { "INT34C6", 4, 267, 290, 0x100, 0x120 },
167 1.1 manu
168 1.5 msaitoh /* Jasper Lake */
169 1.1 manu { "INT34C8", 0, 0, 91, 0x100, 0x120 },
170 1.1 manu { "INT34C8", 1, 92, 194, 0x100, 0x120 },
171 1.1 manu { "INT34C8", 2, 195, 224, 0x100, 0x120 },
172 1.1 manu { "INT34C8", 3, 225, 232, 0x100, 0x120 },
173 1.1 manu
174 1.7 msaitoh /* Alder Lake-S */
175 1.7 msaitoh { "INTC1056", 0, 0, 94, 0x200, 0x220 },
176 1.7 msaitoh { "INTC1056", 1, 95, 150, 0x200, 0x220 },
177 1.7 msaitoh { "INTC1056", 2, 151, 199, 0x200, 0x220 },
178 1.7 msaitoh { "INTC1056", 3, 200, 269, 0x200, 0x220 },
179 1.7 msaitoh { "INTC1056", 4, 270, 303, 0x200, 0x220 },
180 1.7 msaitoh
181 1.8 msaitoh /* Alder Lake-N */
182 1.7 msaitoh { "INTC1057", 0, 0, 66, 0x100, 0x120 },
183 1.8 msaitoh { "INTC1057", 1, 67, 168, 0x100, 0x120 },
184 1.8 msaitoh { "INTC1057", 2, 169, 248, 0x100, 0x120 },
185 1.8 msaitoh { "INTC1057", 3, 249, 256, 0x100, 0x120 },
186 1.8 msaitoh
187 1.8 msaitoh /* Raptor Lake-S (Same as Alder Lake-S(INTC1056)) */
188 1.8 msaitoh { "INTC1085", 0, 0, 94, 0x200, 0x220 },
189 1.8 msaitoh { "INTC1085", 1, 95, 150, 0x200, 0x220 },
190 1.8 msaitoh { "INTC1085", 2, 151, 199, 0x200, 0x220 },
191 1.8 msaitoh { "INTC1085", 3, 200, 269, 0x200, 0x220 },
192 1.8 msaitoh { "INTC1085", 4, 270, 303, 0x200, 0x220 },
193 1.7 msaitoh
194 1.1 manu /* Lewisburg */
195 1.4 msaitoh { "INT3536", 0, 0, 71, 0x100, 0x110 },
196 1.3 msaitoh { "INT3536", 1, 72, 132, 0x100, 0x110 },
197 1.3 msaitoh { "INT3536", 3, 133, 143, 0x100, 0x110 },
198 1.3 msaitoh { "INT3536", 4, 144, 178, 0x100, 0x110 },
199 1.1 manu { "INT3536", 5, 179, 246, 0x100, 0x110 },
200 1.1 manu
201 1.1 manu /* Emmitsburg */
202 1.5 msaitoh { "INTC1071", 0, 0, 65, 0x200, 0x210 },
203 1.5 msaitoh { "INTC1071", 1, 66, 111, 0x200, 0x210 },
204 1.5 msaitoh { "INTC1071", 2, 112, 145, 0x200, 0x210 },
205 1.5 msaitoh { "INTC1071", 3, 146, 183, 0x200, 0x210 },
206 1.5 msaitoh { "INTC1071", 4, 184, 261, 0x200, 0x210 },
207 1.1 manu
208 1.1 manu /* Denverton */
209 1.5 msaitoh { "INTC3000", 0, 0, 40, 0x100, 0x120 },
210 1.5 msaitoh { "INTC3000", 1, 41, 153, 0x100, 0x120 },
211 1.1 manu
212 1.1 manu /* Cedarfork */
213 1.5 msaitoh { "INTC3001", 0, 0, 167, 0x200, 0x230 },
214 1.5 msaitoh { "INTC3001", 1, 168, 236, 0x200, 0x230 },
215 1.1 manu
216 1.5 msaitoh /* Gemini Lake */
217 1.5 msaitoh { "INT3453", 0, 0, 34, 0x100, 0x110 },
218 1.1 manu
219 1.1 manu #ifdef notyet
220 1.1 manu /*
221 1.1 manu * BAR mappings not obvious, further studying required
222 1.1 manu */
223 1.1 manu /* Broxton */
224 1.1 manu { "apollolake-pinctrl", 0, 0, 0, 0x100, 0x110 },
225 1.1 manu { "broxton-pinctrl", 0, 0, 0, 0x100, 0x110 },
226 1.5 msaitoh { "INT34D1", 0, 0, 0, 0x100, 0x110 },
227 1.5 msaitoh { "INT3452", 0, 0, 0, 0x100, 0x110 },
228 1.1 manu
229 1.1 manu /* Cherryview */
230 1.5 msaitoh { "INT33FF", 0, 0, 0, 0x000, 0x000 },
231 1.1 manu #endif
232 1.1 manu
233 1.5 msaitoh { NULL, 0, 0, 0, 0x000, 0x000 },
234 1.1 manu };
235 1.1 manu
236 1.1 manu struct igpio_pin_group igpio_pin_group[] = {
237 1.1 manu /* Sunrisepoint-LP */
238 1.8 msaitoh { "INT344B", 0, 0, "GPP_A" },
239 1.8 msaitoh { "INT344B", 1, 24, "GPP_B" },
240 1.8 msaitoh { "INT344B", 0, 48, "GPP_C" },
241 1.8 msaitoh { "INT344B", 1, 72, "GPP_D" },
242 1.8 msaitoh { "INT344B", 2, 96, "GPP_E" },
243 1.8 msaitoh { "INT344B", 0, 120, "GPP_F" },
244 1.1 manu
245 1.5 msaitoh /* Coffee Lake-S (Same as Sunrisepoint-H(INT345D)) */
246 1.8 msaitoh { "INT3451", 0, 0, "GPP_A" },
247 1.8 msaitoh { "INT3451", 1, 24, "GPP_B" },
248 1.8 msaitoh { "INT3451", 0, 48, "GPP_C" },
249 1.8 msaitoh { "INT3451", 1, 72, "GPP_D" },
250 1.8 msaitoh { "INT3451", 2, 96, "GPP_E" },
251 1.8 msaitoh { "INT3451", 3, 109, "GPP_F" },
252 1.8 msaitoh { "INT3451", 4, 133, "GPP_G" },
253 1.8 msaitoh { "INT3451", 5, 157, "GPP_H" },
254 1.8 msaitoh { "INT3451", 0, 181, "GPP_I" },
255 1.2 riastrad
256 1.1 manu /* Sunrisepoint-H */
257 1.8 msaitoh { "INT345D", 0, 0, "GPP_A" },
258 1.8 msaitoh { "INT345D", 1, 24, "GPP_B" },
259 1.8 msaitoh { "INT345D", 0, 48, "GPP_C" },
260 1.8 msaitoh { "INT345D", 1, 72, "GPP_D" },
261 1.8 msaitoh { "INT345D", 2, 96, "GPP_E" },
262 1.8 msaitoh { "INT345D", 3, 109, "GPP_F" },
263 1.8 msaitoh { "INT345D", 4, 133, "GPP_G" },
264 1.8 msaitoh { "INT345D", 5, 157, "GPP_H" },
265 1.8 msaitoh { "INT345D", 0, 181, "GPP_I" },
266 1.2 riastrad
267 1.1 manu
268 1.1 manu /* Baytrail */
269 1.5 msaitoh { "INT33B2", 0, 101, "A" },
270 1.8 msaitoh { "INT33FC", 0, 101, "A" },
271 1.1 manu
272 1.1 manu /* Lynxpoint */
273 1.5 msaitoh { "INT33C7", 0, 94, "A" },
274 1.5 msaitoh { "INT3437", 0, 94, "A" },
275 1.1 manu
276 1.5 msaitoh /* Cannon Lake-H */
277 1.5 msaitoh { "INT3450", 0, 0, "GPP_A" },
278 1.5 msaitoh { "INT3450", 1, 25, "GPP_B" },
279 1.5 msaitoh { "INT3450", 0, 51, "GPP_C" },
280 1.5 msaitoh { "INT3450", 1, 75, "GPP_D" },
281 1.5 msaitoh { "INT3450", 2, 99, "GPP_G" },
282 1.5 msaitoh { "INT3450", 3, 107, "AZA" },
283 1.5 msaitoh { "INT3450", 4, 115, "vGPIO_0" },
284 1.5 msaitoh { "INT3450", 5, 147, "vGPIO_1" },
285 1.5 msaitoh { "INT3450", 0, 155, "GPP_K" },
286 1.5 msaitoh { "INT3450", 1, 179, "GPP_H" },
287 1.5 msaitoh { "INT3450", 2, 203, "GPP_E" },
288 1.5 msaitoh { "INT3450", 3, 216, "GPP_F" },
289 1.5 msaitoh { "INT3450", 4, 240, "SPI" },
290 1.5 msaitoh { "INT3450", 0, 249, "CPU" },
291 1.5 msaitoh { "INT3450", 1, 260, "JTAG" },
292 1.5 msaitoh { "INT3450", 2, 269, "GPP_I" },
293 1.5 msaitoh { "INT3450", 3, 287, "GPP_J" },
294 1.5 msaitoh
295 1.5 msaitoh /* Cannon Lake-LP */
296 1.5 msaitoh { "INT34BB", 0, 0, "GPP_A" },
297 1.5 msaitoh { "INT34BB", 1, 25, "GPP_B" },
298 1.5 msaitoh { "INT34BB", 2, 51, "GPP_G" },
299 1.5 msaitoh { "INT34BB", 3, 59, "SPI" },
300 1.5 msaitoh { "INT34BB", 0, 68, "GPP_D" },
301 1.5 msaitoh { "INT34BB", 1, 93, "GPP_F" },
302 1.5 msaitoh { "INT34BB", 2, 117, "GPP_H" },
303 1.8 msaitoh { "INT34BB", 3, 141, "vGPIO_0" },
304 1.8 msaitoh { "INT34BB", 4, 173, "vGPIO_1" },
305 1.5 msaitoh { "INT34BB", 0, 181, "GPP_C" },
306 1.5 msaitoh { "INT34BB", 1, 205, "GPP_E" },
307 1.5 msaitoh { "INT34BB", 2, 229, "JTAG" },
308 1.5 msaitoh { "INT34BB", 3, 238, "HVCMOS" },
309 1.1 manu
310 1.8 msaitoh /* Ice Lake-LP */
311 1.5 msaitoh { "INT3455", 0, 0, "GPP_G" },
312 1.5 msaitoh { "INT3455", 1, 8, "GPP_B" },
313 1.5 msaitoh { "INT3455", 2, 34, "GPP_A" },
314 1.5 msaitoh { "INT3455", 0, 59, "GPP_H" },
315 1.5 msaitoh { "INT3455", 1, 83, "GPP_D" },
316 1.5 msaitoh { "INT3455", 2, 104, "GPP_F" },
317 1.5 msaitoh { "INT3455", 3, 124, "vGPIO" },
318 1.5 msaitoh { "INT3455", 0, 153, "GPP_C" },
319 1.5 msaitoh { "INT3455", 1, 177, "HVCMOS" },
320 1.5 msaitoh { "INT3455", 2, 183, "GPP_E" },
321 1.5 msaitoh { "INT3455", 3, 207, "JTAG" },
322 1.8 msaitoh { "INT3455", 0, 216, "GPP_R" },
323 1.8 msaitoh { "INT3455", 1, 224, "GPP_S" },
324 1.5 msaitoh { "INT3455", 2, 232, "SPI" },
325 1.1 manu
326 1.8 msaitoh /* Ice Lake-N */
327 1.8 msaitoh { "INT34C3", 0, 0, "SPI" },
328 1.8 msaitoh { "INT34C3", 1, 9, "GPP_B" },
329 1.8 msaitoh { "INT34C3", 2, 35, "GPP_A" },
330 1.8 msaitoh { "INT34C3", 3, 56, "GPP_S" },
331 1.8 msaitoh { "INT34C3", 4, 64, "GPP_R" },
332 1.8 msaitoh { "INT34C3", 0, 72, "GPP_H" },
333 1.8 msaitoh { "INT34C3", 1, 96, "GPP_D" },
334 1.8 msaitoh { "INT34C3", 2, 122, "vGPIO" },
335 1.8 msaitoh { "INT34C3", 3, 151, "GPP_C" },
336 1.8 msaitoh { "INT34C3", 0, 175, "HVCMOS" },
337 1.8 msaitoh { "INT34C3", 1, 181, "GPP_E" },
338 1.8 msaitoh { "INT34C3", 0, 205, "GPP_G" },
339 1.1 manu
340 1.1 manu /* Lakefield */
341 1.5 msaitoh { "INT34C4", 0, 0, "EAST_0" },
342 1.5 msaitoh { "INT34C4", 1, 32, "EAST_1" },
343 1.5 msaitoh { "INT34C4", 0, 60, "NORTHWEST_0" },
344 1.5 msaitoh { "INT34C4", 1, 92, "NORTHWEST_1" },
345 1.5 msaitoh { "INT34C4", 2, 124, "NORTHWEST_2" },
346 1.5 msaitoh { "INT34C4", 0, 149, "WEST_0" },
347 1.5 msaitoh { "INT34C4", 1, 181, "WEST_1" },
348 1.5 msaitoh { "INT34C4", 2, 213, "WEST_2" },
349 1.5 msaitoh { "INT34C4", 0, 238, "SOUTHEAST" },
350 1.5 msaitoh
351 1.5 msaitoh /* Tiger Lake-LP */
352 1.8 msaitoh { "INT34C5", 0, 0, "GPP_B" },
353 1.8 msaitoh { "INT34C5", 1, 26, "GPP_T" },
354 1.8 msaitoh { "INT34C5", 2, 42, "GPP_A" },
355 1.8 msaitoh { "INT34C5", 0, 67, "GPP_S" },
356 1.8 msaitoh { "INT34C5", 1, 75, "GPP_H" },
357 1.8 msaitoh { "INT34C5", 2, 99, "GPP_D" },
358 1.8 msaitoh { "INT34C5", 3, 120, "GPP_U" },
359 1.8 msaitoh { "INT34C5", 4, 144, "vGPIO" },
360 1.8 msaitoh { "INT34C5", 0, 171, "GPP_C" },
361 1.8 msaitoh { "INT34C5", 1, 195, "GPP_F" },
362 1.8 msaitoh { "INT34C5", 2, 220, "HVCMOS" },
363 1.8 msaitoh { "INT34C5", 3, 226, "GPP_E" },
364 1.8 msaitoh { "INT34C5", 4, 251, "JTAG" },
365 1.8 msaitoh { "INT34C5", 0, 260, "GPP_R" },
366 1.8 msaitoh { "INT34C5", 1, 268, "SPI" },
367 1.8 msaitoh
368 1.8 msaitoh /* Alder Lake-P (Same as Tiger Lake-LP(INT34C5)) */
369 1.8 msaitoh { "INTC1055", 0, 0, "GPP_B" },
370 1.8 msaitoh { "INTC1055", 1, 26, "GPP_T" },
371 1.8 msaitoh { "INTC1055", 2, 42, "GPP_A" },
372 1.8 msaitoh { "INTC1055", 0, 67, "GPP_S" },
373 1.8 msaitoh { "INTC1055", 1, 75, "GPP_H" },
374 1.8 msaitoh { "INTC1055", 2, 99, "GPP_D" },
375 1.8 msaitoh { "INTC1055", 3, 120, "GPP_U" },
376 1.8 msaitoh { "INTC1055", 4, 144, "vGPIO" },
377 1.8 msaitoh { "INTC1055", 0, 171, "GPP_C" },
378 1.8 msaitoh { "INTC1055", 1, 195, "GPP_F" },
379 1.8 msaitoh { "INTC1055", 2, 220, "HVCMOS" },
380 1.8 msaitoh { "INTC1055", 3, 226, "GPP_E" },
381 1.8 msaitoh { "INTC1055", 4, 251, "JTAG" },
382 1.8 msaitoh { "INTC1055", 0, 260, "GPP_R" },
383 1.8 msaitoh { "INTC1055", 1, 268, "SPI" },
384 1.1 manu
385 1.5 msaitoh /* Tiger Lake-H */
386 1.8 msaitoh { "INT34C6", 0, 0, "GPP_A" },
387 1.8 msaitoh { "INT34C6", 1, 25, "GPP_R" },
388 1.8 msaitoh { "INT34C6", 2, 45, "GPP_B" },
389 1.8 msaitoh { "INT34C6", 3, 71, "vGPIO_0" },
390 1.8 msaitoh { "INT34C6", 0, 79, "GPP_D" },
391 1.8 msaitoh { "INT34C6", 1, 105, "GPP_C" },
392 1.8 msaitoh { "INT34C6", 2, 129, "GPP_S" },
393 1.8 msaitoh { "INT34C6", 3, 137, "GPP_G" },
394 1.8 msaitoh { "INT34C6", 4, 154, "vGPIO" },
395 1.8 msaitoh { "INT34C6", 0, 181, "GPP_E" },
396 1.8 msaitoh { "INT34C6", 1, 194, "GPP_F" },
397 1.8 msaitoh { "INT34C6", 0, 218, "GPP_H" },
398 1.8 msaitoh { "INT34C6", 1, 242, "GPP_J" },
399 1.8 msaitoh { "INT34C6", 2, 252, "GPP_K" },
400 1.8 msaitoh { "INT34C6", 0, 267, "GPP_I" },
401 1.8 msaitoh { "INT34C6", 1, 282, "JTAG" },
402 1.5 msaitoh
403 1.5 msaitoh /* Jasper Lake */
404 1.5 msaitoh { "INT34C8", 0, 0, "GPP_F" },
405 1.5 msaitoh { "INT34C8", 1, 20, "SPI" },
406 1.5 msaitoh { "INT34C8", 2, 29, "GPP_B" },
407 1.5 msaitoh { "INT34C8", 3, 55, "GPP_A" },
408 1.5 msaitoh { "INT34C8", 4, 76, "GPP_S" },
409 1.5 msaitoh { "INT34C8", 5, 84, "GPP_R" },
410 1.5 msaitoh { "INT34C8", 0, 92, "GPP_H" },
411 1.5 msaitoh { "INT34C8", 1, 116, "GPP_D" },
412 1.5 msaitoh { "INT34C8", 2, 142, "vGPIO" },
413 1.5 msaitoh { "INT34C8", 3, 171, "GPP_C" },
414 1.5 msaitoh { "INT34C8", 0, 195, "HVCMOS" },
415 1.5 msaitoh { "INT34C8", 1, 201, "GPP_E" },
416 1.5 msaitoh { "INT34C8", 0, 225, "GPP_G" },
417 1.1 manu
418 1.8 msaitoh /* Alder Lake-S */
419 1.8 msaitoh { "INTC1056", 0, 0, "GPP_I" },
420 1.8 msaitoh { "INTC1056", 1, 25, "GPP_R" },
421 1.8 msaitoh { "INTC1056", 2, 48, "GPP_J" },
422 1.8 msaitoh { "INTC1056", 3, 60, "vGPIO" },
423 1.8 msaitoh { "INTC1056", 4, 87, "vGPIO_0" },
424 1.8 msaitoh { "INTC1056", 0, 95, "GPP_B" },
425 1.8 msaitoh { "INTC1056", 1, 119, "GPP_G" },
426 1.8 msaitoh { "INTC1056", 2, 127, "GPP_H" },
427 1.8 msaitoh { "INTC1056", 0, 151, "SPI0" },
428 1.8 msaitoh { "INTC1056", 1, 160, "GPP_A" },
429 1.8 msaitoh { "INTC1056", 2, 176, "GPP_C" },
430 1.8 msaitoh { "INTC1056", 0, 200, "GPP_S" },
431 1.8 msaitoh { "INTC1056", 1, 208, "GPP_E" },
432 1.8 msaitoh { "INTC1056", 2, 231, "GPP_K" },
433 1.8 msaitoh { "INTC1056", 3, 246, "GPP_F" },
434 1.8 msaitoh { "INTC1056", 0, 270, "GPP_D" },
435 1.8 msaitoh { "INTC1056", 1, 295, "JTAG" },
436 1.8 msaitoh
437 1.8 msaitoh /* Alder Lake-N */
438 1.8 msaitoh { "INTC1057", 0, 0, "GPP_B" },
439 1.8 msaitoh { "INTC1057", 1, 26, "GPP_T" },
440 1.8 msaitoh { "INTC1057", 2, 42, "GPP_A" },
441 1.8 msaitoh { "INTC1057", 0, 67, "GPP_S" },
442 1.8 msaitoh { "INTC1057", 1, 75, "GPP_I" },
443 1.8 msaitoh { "INTC1057", 2, 95, "GPP_H" },
444 1.8 msaitoh { "INTC1057", 3, 119, "GPP_D" },
445 1.8 msaitoh { "INTC1057", 4, 140, "vGPIO" },
446 1.8 msaitoh { "INTC1057", 0, 169, "GPP_C" },
447 1.8 msaitoh { "INTC1057", 1, 193, "GPP_F" },
448 1.8 msaitoh { "INTC1057", 2, 218, "HVCMOS" },
449 1.8 msaitoh { "INTC1057", 3, 224, "GPP_E" },
450 1.8 msaitoh { "INTC1057", 0, 249, "GPP_R" },
451 1.8 msaitoh
452 1.8 msaitoh /* Raptor Lake-S (Same as Alder Lake-S(INTC1056)) */
453 1.8 msaitoh { "INTC1085", 0, 0, "GPP_I" },
454 1.8 msaitoh { "INTC1085", 1, 25, "GPP_R" },
455 1.8 msaitoh { "INTC1085", 2, 48, "GPP_J" },
456 1.8 msaitoh { "INTC1085", 3, 60, "vGPIO" },
457 1.8 msaitoh { "INTC1085", 4, 87, "vGPIO_0" },
458 1.8 msaitoh { "INTC1085", 0, 95, "GPP_B" },
459 1.8 msaitoh { "INTC1085", 1, 119, "GPP_G" },
460 1.8 msaitoh { "INTC1085", 2, 127, "GPP_H" },
461 1.8 msaitoh { "INTC1085", 0, 151, "SPI0" },
462 1.8 msaitoh { "INTC1085", 1, 160, "GPP_A" },
463 1.8 msaitoh { "INTC1085", 2, 176, "GPP_C" },
464 1.8 msaitoh { "INTC1085", 0, 200, "GPP_S" },
465 1.8 msaitoh { "INTC1085", 1, 208, "GPP_E" },
466 1.8 msaitoh { "INTC1085", 2, 231, "GPP_K" },
467 1.8 msaitoh { "INTC1085", 3, 246, "GPP_F" },
468 1.8 msaitoh { "INTC1085", 0, 270, "GPP_D" },
469 1.8 msaitoh { "INTC1085", 1, 295, "JTAG" },
470 1.1 manu
471 1.1 manu /* Lewisburg */
472 1.8 msaitoh { "INT3536", 0, 0, "" },
473 1.1 manu
474 1.1 manu /* Emmitsburg */
475 1.5 msaitoh { "INTC1071", 0, 0, "GPP_A" },
476 1.1 manu { "INTC1071", 1, 21, "GPP_B" },
477 1.1 manu { "INTC1071", 2, 45, "SPI" },
478 1.1 manu { "INTC1071", 0, 66, "GPP_C" },
479 1.1 manu { "INTC1071", 1, 88, "GPP_D" },
480 1.5 msaitoh { "INTC1071", 0, 112, "GPP_E" },
481 1.5 msaitoh { "INTC1071", 1, 136, "JTAG" },
482 1.5 msaitoh { "INTC1071", 0, 146, "GPP_H" },
483 1.5 msaitoh { "INTC1071", 1, 166, "GPP_J" },
484 1.5 msaitoh { "INTC1071", 0, 184, "GPP_I" },
485 1.5 msaitoh { "INTC1071", 1, 208, "GPP_L" },
486 1.5 msaitoh { "INTC1071", 2, 226, "GPP_M" },
487 1.5 msaitoh { "INTC1071", 3, 244, "GPP_N" },
488 1.1 manu
489 1.1 manu /* Denverton */
490 1.8 msaitoh { "INTC3000", 0, 0, "North_ALL_0" },
491 1.8 msaitoh { "INTC3000", 1, 32, "North_ALL_1" },
492 1.8 msaitoh { "INTC3000", 0, 41, "South_DFX" },
493 1.8 msaitoh { "INTC3000", 1, 59, "South_GPP0_0" },
494 1.8 msaitoh { "INTC3000", 2, 91, "South_GPP0_1" },
495 1.8 msaitoh { "INTC3000", 3, 112, "South_GPP1_0" },
496 1.8 msaitoh { "INTC3000", 4, 144, "South_GPP1_1" },
497 1.1 manu
498 1.1 manu /* Cedarfork */
499 1.5 msaitoh { "INTC3001", 0, 0, "WEST2" },
500 1.1 manu { "INTC3001", 1, 24, "WEST3" },
501 1.1 manu { "INTC3001", 2, 48, "WEST01" },
502 1.1 manu { "INTC3001", 3, 71, "WEST5" },
503 1.1 manu { "INTC3001", 4, 91, "WESTC" },
504 1.1 manu { "INTC3001", 5, 97, "WESTC_DFX" },
505 1.5 msaitoh { "INTC3001", 6, 102, "WESTA" },
506 1.5 msaitoh { "INTC3001", 7, 112, "WESTB" },
507 1.5 msaitoh { "INTC3001", 8, 124, "WESTD" },
508 1.5 msaitoh { "INTC3001", 9, 144, "WESTD_PECI" },
509 1.5 msaitoh { "INTC3001", 10, 145, "WESTF" },
510 1.5 msaitoh { "INTC3001", 0, 168, "EAST2" },
511 1.5 msaitoh { "INTC3001", 1, 192, "EAST3" },
512 1.5 msaitoh { "INTC3001", 2, 203, "EAST0" },
513 1.5 msaitoh { "INTC3001", 3, 226, "EMMC" },
514 1.1 manu
515 1.5 msaitoh /* Gemini Lake */
516 1.5 msaitoh { "INT3453", 0, 34, "" },
517 1.1 manu
518 1.1 manu #ifdef notyet
519 1.1 manu /*
520 1.1 manu * BAR mappings not obvious, further studying required
521 1.1 manu */
522 1.1 manu /* Broxton */
523 1.1 manu { "apollolake-pinctrl", 0, 0, "" },
524 1.1 manu { "broxton-pinctrl", 0, 0, "" },
525 1.5 msaitoh { "INT34D1", 0, 0, "" },
526 1.5 msaitoh { "INT3452", 0, 0, "" },
527 1.1 manu
528 1.1 manu /* Cherryview */
529 1.5 msaitoh { "INT33FF", 0, 0, "" },
530 1.1 manu #endif
531 1.1 manu
532 1.5 msaitoh { NULL, 0, 0, 0 },
533 1.1 manu };
534 1.1 manu
535 1.1 manu #endif /* _IGPIOREG_H */
536