1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #ifndef EMMITSBURG_GPIO_DEFS_H 4 #define EMMITSBURG_GPIO_DEFS_H 5 6 #ifndef __ACPI__ 7 #include <stddef.h> 8 #endif 9 10 /* GPIO Community 0 */ 11 #define COMM_0 0 12 #define GPPC_A 0x0 13 #define GPPC_B 0x1 14 #define GPPC_S 0x2 15 /* GPIO Community 1 */ 16 #define COMM_1 1 17 #define GPPC_C 0x3 18 #define GPP_D 0x4 19 /* GPIO Community 3 */ 20 #define COMM_3 2 21 #define GPP_E 0x5 22 /* GPIO Community 4 */ 23 #define COMM_4 3 24 #define GPPC_H 0x6 25 #define GPPC_J 0x7 26 /* GPIO Community 5 */ 27 #define COMM_5 4 28 #define GPP_I 0x8 29 #define GPP_L 0x9 30 #define GPP_M 0xA 31 #define GPP_N 0xB 32 /* GPIO Community 2 */ 33 #define COMM_2 5 34 #define GPP_O 0xC 35 36 #define GPIO_MAX_NUM_PER_GROUP 24 37 38 /* Group A */ 39 #define GPPC_A0 0 40 #define GPPC_A1 1 41 #define GPPC_A2 2 42 #define GPPC_A3 3 43 #define GPPC_A4 4 44 #define GPPC_A5 5 45 #define GPPC_A6 6 46 #define GPPC_A7 7 47 #define GPPC_A8 8 48 #define GPPC_A9 9 49 #define GPPC_A10 10 50 #define GPPC_A11 11 51 #define GPPC_A12 12 52 #define GPPC_A13 13 53 #define GPPC_A14 14 54 #define GPPC_A15 15 55 #define GPPC_A16 16 56 #define GPPC_A17 17 57 #define GPPC_A18 18 58 #define GPPC_A19 19 59 #define ESPI_CLK_LOOPBK 20 60 61 /* Group B */ 62 #define GPPC_B0 21 63 #define GPPC_B1 22 64 #define GPPC_B2 23 65 #define GPPC_B3 24 66 #define GPPC_B4 25 67 #define GPPC_B5 26 68 #define GPPC_B6 27 69 #define GPPC_B7 28 70 #define GPPC_B8 29 71 #define GPPC_B9 30 72 #define GPPC_B10 31 73 #define GPPC_B11 32 74 #define GPPC_B12 33 75 #define GPPC_B13 34 76 #define GPPC_B14 35 77 #define GPPC_B15 36 78 #define GPPC_B16 37 79 #define GPPC_B17 38 80 #define GPPC_B18 39 81 #define GPPC_B19 40 82 #define GPPC_B20 41 83 #define GPPC_B21 42 84 #define GPPC_B22 43 85 #define GPPC_B23 44 86 87 /* 88 * Order 45-52 belongs to fields which are not described in EDS but 89 * can be found while using Cscript. Keep the order here to make GPIO 90 * table can be set as expected. 91 */ 92 93 /* Group S */ 94 #define GPPC_S0 53 95 #define GPPC_S1 54 96 #define GPPC_S2 55 97 #define GPPC_S3 56 98 #define GPPC_S4 57 99 #define GPPC_S5 58 100 #define GPPC_S6 59 101 #define GPPC_S7 60 102 #define GPPC_S8 61 103 #define GPPC_S9 62 104 #define GPPC_S10 63 105 #define GPPC_S11 64 106 #define SPI_CLK_LOOPBK 65 107 108 #define NUM_GPIO_COM0_PADS (SPI_CLK_LOOPBK - GPPC_A0 + 1) 109 110 /* Community 1 */ 111 /* Group C */ 112 #define GPPC_C0 66 113 #define GPPC_C1 67 114 #define GPPC_C2 68 115 #define GPPC_C3 69 116 #define GPPC_C4 70 117 #define GPPC_C5 71 118 #define GPPC_C6 72 119 #define GPPC_C7 73 120 #define GPPC_C8 74 121 #define GPPC_C9 75 122 #define GPPC_C10 76 123 #define GPPC_C11 77 124 #define GPPC_C12 78 125 #define GPPC_C13 79 126 #define GPPC_C14 80 127 #define GPPC_C15 81 128 #define GPPC_C16 82 129 #define GPPC_C17 83 130 #define GPPC_C18 84 131 #define GPPC_C19 85 132 #define GPPC_C20 86 133 #define GPPC_C21 87 134 135 /* Group D */ 136 #define GPP_D0 88 137 #define GPP_D1 89 138 #define GPP_D2 90 139 #define GPP_D3 91 // Not described in EDS 140 #define GPP_D4 92 // Not described in EDS 141 #define GPP_D5 93 // Not described in EDS 142 #define GPP_D6 94 143 #define GPP_D7 95 144 #define GPP_D8 96 145 #define GPP_D9 97 146 #define GPP_D10 98 147 #define GPP_D11 99 148 #define GPP_D12 100 149 #define GPP_D13 101 150 #define GPP_D14 102 151 #define GPP_D15 103 152 #define GPP_D16 104 153 #define GPP_D17 105 154 #define GPP_D18 106 155 #define GPP_D19 107 156 #define GPP_D20 108 157 #define GPP_D21 109 158 #define GPP_D22 110 159 #define GPP_D23 111 160 161 #define NUM_GPIO_COM1_PADS (GPP_D23 - GPPC_C0 + 1) 162 163 /* Community 3 */ 164 /* Group E */ 165 #define GPP_E0 112 166 #define GPP_E1 113 167 #define GPP_E2 114 168 #define GPP_E3 115 169 #define GPP_E4 116 170 #define GPP_E5 117 171 #define GPP_E6 118 172 #define GPP_E7 119 173 #define GPP_E8 120 174 #define GPP_E9 121 175 #define GPP_E10 122 176 #define GPP_E11 123 177 #define GPP_E12 124 178 #define GPP_E13 125 179 #define GPP_E14 126 180 #define GPP_E15 127 181 #define GPP_E16 128 182 #define GPP_E17 129 183 #define GPP_E18 130 184 #define GPP_E19 131 185 #define GPP_E20 132 // Not described in EDS 186 #define GPP_E21 133 // Not described in EDS 187 #define GPP_E22 134 // Not described in EDS 188 #define GPP_E23 135 // Not described in EDS 189 190 #define NUM_GPIO_COM3_PADS (GPP_E23 - GPP_E0 + 1) 191 192 /* Community 4 */ 193 /* Group H */ 194 #define GPPC_H0 136 195 #define GPPC_H1 137 196 #define GPPC_H2 138 // Not described in EDS 197 #define GPPC_H3 139 // Not described in EDS 198 #define GPPC_H4 140 // Not described in EDS 199 #define GPPC_H5 141 // Not described in EDS 200 #define GPPC_H6 142 201 #define GPPC_H7 143 202 #define GPPC_H8 144 // Not described in EDS 203 #define GPPC_H9 145 // Not described in EDS 204 #define GPPC_H10 146 // Not described in EDS 205 #define GPPC_H11 147 // Not described in EDS 206 #define GPPC_H12 148 // Not described in EDS 207 #define GPPC_H13 149 // Not described in EDS 208 #define GPPC_H14 150 // Not described in EDS 209 #define GPPC_H15 151 210 #define GPPC_H16 152 211 #define GPPC_H17 153 212 #define GPPC_H18 154 213 #define GPPC_H19 155 214 215 /* Group J */ 216 #define GPP_J0 156 217 #define GPP_J1 157 218 #define GPP_J2 158 219 #define GPP_J3 159 220 #define GPP_J4 160 221 #define GPP_J5 161 222 #define GPP_J6 162 223 #define GPP_J7 163 224 #define GPP_J8 164 225 #define GPP_J9 165 // Not described in EDS 226 #define GPP_J10 166 // Not described in EDS 227 #define GPP_J11 167 // Not described in EDS 228 #define GPP_J12 168 229 #define GPP_J13 169 230 #define GPP_J14 170 231 #define GPP_J15 171 232 #define GPP_J16 172 // Not described in EDS 233 #define GPP_J17 173 // Not described in EDS 234 235 #define NUM_GPIO_COM4_PADS (GPP_J17 - GPPC_H0 + 1) 236 237 /* Community 5 */ 238 /* Group I */ 239 #define GPP_I0 180 // Not described in EDS 240 #define GPP_I1 181 // Not described in EDS 241 #define GPP_I2 182 // Not described in EDS 242 #define GPP_I3 183 // Not described in EDS 243 #define GPP_I4 184 // Not described in EDS 244 #define GPP_I5 185 // Not described in EDS 245 #define GPP_I6 186 // Not described in EDS 246 #define GPP_I7 187 // Not described in EDS 247 #define GPP_I8 188 // Not described in EDS 248 #define GPP_I9 189 // Not described in EDS 249 #define GPP_I10 190 // Not described in EDS 250 #define GPP_I11 191 // Not described in EDS 251 #define GPP_I12 192 252 #define GPP_I13 193 253 #define GPP_I14 194 254 #define GPP_I15 195 255 #define GPP_I16 196 256 #define GPP_I17 197 257 #define GPP_I18 198 // Not described in EDS 258 #define GPP_I19 199 // Not described in EDS 259 #define GPP_I20 200 // Not described in EDS 260 #define GPP_I21 201 261 #define GPP_I22 202 262 #define GPP_I23 203 263 264 /* Group L */ 265 #define GPP_L0 204 266 #define GPP_L1 205 267 #define GPP_L2 206 268 #define GPP_L3 207 269 #define GPP_L4 208 270 #define GPP_L5 209 271 #define GPP_L6 210 272 #define GPP_L7 211 273 #define GPP_L8 212 274 #define GPP_L9 213 // Not described in EDS 275 #define GPP_L10 214 // Not described in EDS 276 #define GPP_L11 215 // Not described in EDS 277 #define GPP_L12 216 // Not described in EDS 278 #define GPP_L13 217 // Not described in EDS 279 #define GPP_L14 218 // Not described in EDS 280 #define GPP_L15 219 // Not described in EDS 281 #define GPP_L16 220 // Not described in EDS 282 #define GPP_L17 221 // Not described in EDS 283 284 /* Group M */ 285 #define GPP_M0 222 286 #define GPP_M1 223 287 #define GPP_M2 224 288 #define GPP_M3 225 289 #define GPP_M4 226 290 #define GPP_M5 227 291 #define GPP_M6 228 292 #define GPP_M7 229 293 #define GPP_M8 230 294 #define GPP_M9 231 // Not described in EDS 295 #define GPP_M10 232 // Not described in EDS 296 #define GPP_M11 233 297 #define GPP_M12 234 298 #define GPP_M13 235 // Not described in EDS 299 #define GPP_M14 236 // Not described in EDS 300 #define GPP_M15 237 301 #define GPP_M16 238 302 #define GPP_M17 239 303 304 /* Group N */ 305 #define GPP_N0 240 // Not described in EDS 306 #define GPP_N1 241 307 #define GPP_N2 242 // Not described in EDS 308 #define GPP_N3 243 // Not described in EDS 309 #define GPP_N4 244 310 #define GPP_N5 245 // Not described in EDS 311 #define GPP_N6 246 // Not described in EDS 312 #define GPP_N7 247 // Not described in EDS 313 #define GPP_N8 248 // Not described in EDS 314 #define GPP_N9 249 // Not described in EDS 315 #define GPP_N10 250 // Not described in EDS 316 #define GPP_N11 251 // Not described in EDS 317 #define GPP_N12 252 // Not described in EDS 318 #define GPP_N13 253 // Not described in EDS 319 #define GPP_N14 254 // Not described in EDS 320 #define GPP_N15 255 // Not described in EDS 321 #define GPP_N16 256 // Not described in EDS 322 #define GPP_N17 257 // Not described in EDS 323 324 #define NUM_GPIO_COM5_PADS (GPP_N17 - GPP_I0 + 1) 325 326 /* Community 2 */ 327 /* Group O */ 328 #define GPP_O0 258 329 #define GPP_O1 259 330 #define GPP_O2 260 331 #define GPP_O3 261 332 #define GPP_O4 262 333 #define GPP_O5 263 334 #define GPP_O6 264 335 #define GPP_O7 265 336 #define GPP_O8 266 337 #define GPP_O9 267 338 #define GPP_O10 268 339 #define GPP_O11 269 340 #define GPP_O12 270 341 #define GPP_O13 271 342 #define GPP_O14 272 343 #define GPP_O15 273 344 #define GPP_O16 274 345 346 #define NUM_GPIO_COM2_PADS (GPP_O16 - GPP_O0 + 1) 347 348 #define TOTAL_PADS (GPP_O16 + 1) 349 350 #define GPIO_NUM_PAD_CFG_REGS 4 /* DW0, DW1, DW2, DW3 */ 351 352 #define NUM_GPIO_COMx_GPI_REGS(n) \ 353 (ALIGN_UP((n), GPIO_MAX_NUM_PER_GROUP) / GPIO_MAX_NUM_PER_GROUP) 354 355 #define NUM_GPIO_COM0_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM0_PADS) 356 #define NUM_GPIO_COM1_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM1_PADS) 357 #define NUM_GPIO_COM2_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM2_PADS) 358 #define NUM_GPIO_COM3_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM3_PADS) 359 #define NUM_GPIO_COM4_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM4_PADS) 360 #define NUM_GPIO_COM5_GPI_REGS NUM_GPIO_COMx_GPI_REGS(NUM_GPIO_COM5_PADS) 361 362 #define NUM_GPI_STATUS_REGS \ 363 ((NUM_GPIO_COM0_GPI_REGS) + \ 364 (NUM_GPIO_COM1_GPI_REGS) + \ 365 (NUM_GPIO_COM3_GPI_REGS) + \ 366 (NUM_GPIO_COM4_GPI_REGS) + \ 367 (NUM_GPIO_COM5_GPI_REGS) + \ 368 (NUM_GPIO_COM2_GPI_REGS)) 369 370 /* Register defines */ 371 #define GPIO_MISCCFG 0x10 372 373 #define HOSTSW_OWN_REG_0 0x130 374 #define PAD_CFG_BASE 0x700 375 #define GPI_INT_STS_0 0x200 376 #define GPI_INT_EN_0 0x210 377 #define GPI_SMI_STS_0 0x270 378 #define GPI_SMI_EN_0 0x290 379 380 #define PAD_CFG_LOCK_A 0x100 381 #define PAD_CFG_LOCK_B 0x108 382 #define PAD_CFG_LOCK_C 0x100 383 #define PAD_CFG_LOCK_D 0x108 384 385 #endif /* EMMITSBURG_GPIO_DEFS_H */ 386