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