1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3/* The below definitions are used for customization 4 * Some boards/devices may need different data hold time 5 */ 6#ifndef BOARD_I2C1_DATA_HOLD_TIME 7#define BOARD_I2C1_DATA_HOLD_TIME 6 8#endif 9 10#ifndef BOARD_I2C2_DATA_HOLD_TIME 11#define BOARD_I2C2_DATA_HOLD_TIME 6 12#endif 13 14#ifndef BOARD_I2C3_DATA_HOLD_TIME 15#define BOARD_I2C3_DATA_HOLD_TIME 6 16#endif 17 18#ifndef BOARD_I2C4_DATA_HOLD_TIME 19#define BOARD_I2C4_DATA_HOLD_TIME 6 20#endif 21 22#ifndef BOARD_I2C5_DATA_HOLD_TIME 23#define BOARD_I2C5_DATA_HOLD_TIME 6 24#endif 25 26#ifndef BOARD_I2C6_DATA_HOLD_TIME 27#define BOARD_I2C6_DATA_HOLD_TIME 6 28#endif 29 30#ifndef BOARD_I2C7_DATA_HOLD_TIME 31#define BOARD_I2C7_DATA_HOLD_TIME 6 32#endif 33 34Device (SDM1) 35{ 36 Name (_HID, "INTL9C60") 37 Name (_UID, 1) 38 Name (_DDN, "DMA Controller #1") 39 40 Name (RBUF, ResourceTemplate() 41 { 42 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 43 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 44 { 45 LPSS_DMA1_IRQ 46 } 47 }) 48 49 Method (_CRS) 50 { 51 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 52 RBAS = \S0B0 53 Return (^RBUF) 54 } 55 56 Method (_STA) 57 { 58 If (\S0EN == 1) { 59 Return (0xF) 60 } Else { 61 Return (0x0) 62 } 63 } 64} 65 66Device (SDM2) 67{ 68 Name (_HID, "INTL9C60") 69 Name (_UID, 2) 70 Name (_DDN, "DMA Controller #2") 71 72 Name (RBUF, ResourceTemplate() 73 { 74 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 75 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 76 { 77 LPSS_DMA2_IRQ 78 } 79 }) 80 81 Method (_CRS) 82 { 83 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 84 RBAS = \S8B0 85 Return (^RBUF) 86 } 87 88 Method (_STA) 89 { 90 If (\S8EN == 1) { 91 Return (0xF) 92 } Else { 93 Return (0x0) 94 } 95 } 96} 97 98Device (I2C1) 99{ 100 Name (_HID, "808622C1") 101 Name (_UID, 1) 102 Name (_DDN, "I2C Controller #1") 103 104 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 105 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C1_DATA_HOLD_TIME }) 106 107 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 108 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C1_DATA_HOLD_TIME }) 109 110 Name (RBUF, ResourceTemplate() 111 { 112 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 113 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 114 { 115 LPSS_I2C1_IRQ 116 } 117 FixedDMA (0x10, 0x0, Width32Bit, ) 118 FixedDMA (0x11, 0x1, Width32Bit, ) 119 }) 120 121 Method (_CRS) 122 { 123 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 124 RBAS = \S1B0 125 Return (^RBUF) 126 } 127 128 Method (_STA) 129 { 130 If (\S1EN == 1) { 131 Return (0xF) 132 } Else { 133 Return (0x0) 134 } 135 } 136 137 OperationRegion (KEYS, SystemMemory, S1B1, 0x100) 138 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 139 { 140 Offset (0x84), 141 PSAT, 32, 142 } 143 144 Method (_PS3) 145 { 146 PSAT |= 3 147 PSAT |= 0 148 } 149 150 Method (_PS0) 151 { 152 PSAT &= 0xfffffffc 153 PSAT |= 0 154 } 155} 156 157Device (I2C2) 158{ 159 Name (_HID, "808622C1") 160 Name (_UID, 2) 161 Name (_DDN, "I2C Controller #2") 162 163 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 164 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C2_DATA_HOLD_TIME }) 165 166 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 167 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C2_DATA_HOLD_TIME }) 168 169 Name (RBUF, ResourceTemplate() 170 { 171 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 172 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 173 { 174 LPSS_I2C2_IRQ 175 } 176 FixedDMA (0x12, 0x2, Width32Bit, ) 177 FixedDMA (0x13, 0x3, Width32Bit, ) 178 }) 179 180 Method (_CRS) 181 { 182 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 183 RBAS = \S2B0 184 Return (^RBUF) 185 } 186 187 Method (_STA) 188 { 189 If (\S2EN == 1) { 190 Return (0xF) 191 } Else { 192 Return (0x0) 193 } 194 } 195 196 OperationRegion (KEYS, SystemMemory, S2B1, 0x100) 197 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 198 { 199 Offset (0x84), 200 PSAT, 32, 201 } 202 203 Method (_PS3) 204 { 205 PSAT |= 3 206 PSAT |= 0 207 } 208 209 Method (_PS0) 210 { 211 PSAT &= 0xfffffffc 212 PSAT |= 0 213 } 214} 215 216Device (I2C3) 217{ 218 Name (_HID, "808622C1") 219 Name (_UID, 3) 220 Name (_DDN, "I2C Controller #3") 221 222 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 223 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C3_DATA_HOLD_TIME }) 224 225 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 226 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C3_DATA_HOLD_TIME }) 227 228 Name (RBUF, ResourceTemplate() 229 { 230 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 231 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 232 { 233 LPSS_I2C3_IRQ 234 } 235 FixedDMA (0x14, 0x4, Width32Bit, ) 236 FixedDMA (0x15, 0x5, Width32Bit, ) 237 }) 238 239 Method (_CRS) 240 { 241 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 242 RBAS = \S3B0 243 Return (^RBUF) 244 } 245 246 Method (_STA) 247 { 248 If (\S3EN == 1) { 249 Return (0xF) 250 } Else { 251 Return (0x0) 252 } 253 } 254 255 OperationRegion (KEYS, SystemMemory, S3B1, 0x100) 256 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 257 { 258 Offset (0x84), 259 PSAT, 32, 260 } 261 262 Method (_PS3) 263 { 264 PSAT |= 3 265 PSAT |= 0 266 } 267 268 Method (_PS0) 269 { 270 PSAT &= 0xfffffffc 271 PSAT |= 0 272 } 273} 274 275Device (I2C4) 276{ 277 Name (_HID, "808622C1") 278 Name (_UID, 4) 279 Name (_DDN, "I2C Controller #4") 280 281 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 282 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C4_DATA_HOLD_TIME }) 283 284 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 285 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C4_DATA_HOLD_TIME }) 286 287 Name (RBUF, ResourceTemplate() 288 { 289 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 290 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 291 { 292 LPSS_I2C4_IRQ 293 } 294 FixedDMA (0x16, 0x6, Width32Bit, ) 295 FixedDMA (0x17, 0x7, Width32Bit, ) 296 }) 297 298 Method (_CRS) 299 { 300 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 301 RBAS = \S4B0 302 Return (^RBUF) 303 } 304 305 Method (_STA) 306 { 307 If (\S4EN == 1) { 308 Return (0xF) 309 } Else { 310 Return (0x0) 311 } 312 } 313 314 OperationRegion (KEYS, SystemMemory, S4B1, 0x100) 315 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 316 { 317 Offset (0x84), 318 PSAT, 32, 319 } 320 321 Method (_PS3) 322 { 323 PSAT |= 3 324 PSAT |= 0 325 } 326 327 Method (_PS0) 328 { 329 PSAT &= 0xfffffffc 330 PSAT |= 0 331 } 332} 333 334Device (I2C5) 335{ 336 Name (_HID, "808622C1") 337 Name (_UID, 5) 338 Name (_DDN, "I2C Controller #5") 339 340 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 341 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C5_DATA_HOLD_TIME }) 342 343 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 344 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C5_DATA_HOLD_TIME }) 345 346 Name (RBUF, ResourceTemplate() 347 { 348 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 349 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 350 { 351 LPSS_I2C5_IRQ 352 } 353 FixedDMA (0x18, 0x0, Width32Bit, ) 354 FixedDMA (0x19, 0x1, Width32Bit, ) 355 }) 356 357 Method (_CRS) 358 { 359 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 360 RBAS = \S5B0 361 Return (^RBUF) 362 } 363 364 Method (_STA) 365 { 366 If (\S5EN == 1) { 367 Return (0xF) 368 } Else { 369 Return (0x0) 370 } 371 } 372 373 OperationRegion (KEYS, SystemMemory, S5B1, 0x100) 374 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 375 { 376 Offset (0x84), 377 PSAT, 32, 378 } 379 380 Method (_PS3) 381 { 382 PSAT |= 3 383 PSAT |= 0 384 } 385 386 Method (_PS0) 387 { 388 PSAT &= 0xfffffffc 389 PSAT |= 0 390 } 391} 392 393Device (I2C6) 394{ 395 Name (_HID, "808622C1") 396 Name (_UID, 6) 397 Name (_DDN, "I2C Controller #6") 398 399 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 400 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C6_DATA_HOLD_TIME }) 401 402 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 403 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C6_DATA_HOLD_TIME }) 404 405 Name (RBUF, ResourceTemplate() 406 { 407 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 408 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 409 { 410 LPSS_I2C6_IRQ 411 } 412 FixedDMA (0x1A, 0x2, Width32Bit, ) 413 FixedDMA (0x1B, 0x3, Width32Bit, ) 414 }) 415 416 Method (_CRS) 417 { 418 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 419 RBAS = \S6B0 420 Return (^RBUF) 421 } 422 423 Method (_STA) 424 { 425 If (\S6EN == 1) { 426 Return (0xF) 427 } Else { 428 Return (0x0) 429 } 430 } 431 432 OperationRegion (KEYS, SystemMemory, S6B1, 0x100) 433 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 434 { 435 Offset (0x84), 436 PSAT, 32, 437 } 438 439 Method (_PS3) 440 { 441 PSAT |= 3 442 PSAT |= 0 443 } 444 445 Method (_PS0) 446 { 447 PSAT &= 0xfffffffc 448 PSAT |= 0 449 } 450} 451 452Device (I2C7) 453{ 454 Name (_HID, "808622C1") 455 Name (_UID, 7) 456 Name (_DDN, "I2C Controller #7") 457 458 /* Standard Mode: HCNT, LCNT, SDA Hold Time */ 459 Name (SSCN, Package () { 0x200, 0x200, BOARD_I2C7_DATA_HOLD_TIME }) 460 461 /* Fast Mode: HCNT, LCNT, SDA Hold Time */ 462 Name (FMCN, Package () { 0x55, 0x99, BOARD_I2C7_DATA_HOLD_TIME }) 463 464 Name (RBUF, ResourceTemplate() 465 { 466 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 467 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 468 { 469 LPSS_I2C7_IRQ 470 } 471 FixedDMA (0x1C, 0x4, Width32Bit, ) 472 FixedDMA (0x1D, 0x5, Width32Bit, ) 473 }) 474 475 Method (_CRS) 476 { 477 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 478 RBAS = \S7B0 479 Return (^RBUF) 480 } 481 482 Method (_STA) 483 { 484 If (\S7EN == 1) { 485 Return (0xF) 486 } Else { 487 Return (0x0) 488 } 489 } 490 491 OperationRegion (KEYS, SystemMemory, S7B1, 0x100) 492 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 493 { 494 Offset (0x84), 495 PSAT, 32, 496 } 497 498 Method (_PS3) 499 { 500 PSAT |= 3 501 PSAT |= 0 502 } 503 504 Method (_PS0) 505 { 506 PSAT &= 0xfffffffc 507 PSAT |= 0 508 } 509} 510 511Device (UAR1) 512{ 513 Name (_HID, "8086228A") 514 Name (_UID, 1) 515 Name (_DDN, "HS-UART Controller #1") 516 517 Name (RBUF, ResourceTemplate() 518 { 519 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 520 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 521 { 522 LPSS_HSUART1_IRQ 523 } 524 FixedDMA (0x2, 0x2, Width32Bit, ) 525 FixedDMA (0x3, 0x3, Width32Bit, ) 526 }) 527 528 Method (_CRS) 529 { 530 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 531 RBAS = \SCB0 532 Return (^RBUF) 533 } 534 535 Method (_STA) 536 { 537 If (\SCEN == 1) { 538 Return (0xF) 539 } Else { 540 Return (0x0) 541 } 542 } 543 544 OperationRegion (KEYS, SystemMemory, SCB1, 0x100) 545 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 546 { 547 Offset (0x84), 548 PSAT, 32, 549 } 550 551 Method (_PS3) 552 { 553 PSAT |= 3 554 PSAT |= 0 555 } 556 557 Method (_PS0) 558 { 559 PSAT &= 0xfffffffc 560 PSAT |= 0 561 } 562} 563 564Device (UAR2) 565{ 566 Name (_HID, "8086228A") 567 Name (_UID, 2) 568 Name (_DDN, "HS-UART Controller #2") 569 570 Name (RBUF, ResourceTemplate() 571 { 572 Memory32Fixed (ReadWrite, 0, 0x1000, BAR0) 573 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,) 574 { 575 LPSS_HSUART2_IRQ 576 } 577 FixedDMA (0x4, 0x4, Width32Bit, ) 578 FixedDMA (0x5, 0x5, Width32Bit, ) 579 }) 580 581 Method (_CRS) 582 { 583 CreateDwordField (^RBUF, ^BAR0._BAS, RBAS) 584 RBAS = \SDB0 585 Return (^RBUF) 586 } 587 588 Method (_STA) 589 { 590 If (\SDEN == 1) { 591 Return (0xF) 592 } Else { 593 Return (0x0) 594 } 595 } 596 597 OperationRegion (KEYS, SystemMemory, SDB1, 0x100) 598 Field (KEYS, DWordAcc, NoLock, WriteAsZeros) 599 { 600 Offset (0x84), 601 PSAT, 32, 602 } 603 604 Method (_PS3) 605 { 606 PSAT |= 3 607 PSAT |= 0 608 } 609 610 Method (_PS0) 611 { 612 PSAT &= 0xfffffffc 613 PSAT |= 0 614 } 615} 616