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