Home | History | Annotate | Download | only in AcpiTablesPCAT
      1 /**************************************************************************;
      2 ;*                                                                        *;
      3 ;*                                                                        *;
      4 ;*    Intel Corporation - ACPI Reference Code for the Baytrail            *;
      5 ;*    Family of Customer Reference Boards.                                *;
      6 ;*                                                                        *;
      7 ;*                                                                        *;
      8 ;*    Copyright (c) 2012  - 2016, Intel Corporation. All rights reserved    *;
      9 ;
     10 ; This program and the accompanying materials are licensed and made available under
     11 ; the terms and conditions of the BSD License that accompanies this distribution.
     12 ; The full text of the license may be found at
     13 ; http://opensource.org/licenses/bsd-license.php.
     14 ;
     15 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     16 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     17 ;
     18 ;*                                                                        *;
     19 ;*                                                                        *;
     20 ;**************************************************************************/
     21 //
     22 // LPIO1 DMA#1 (Synopsis GP DMA)
     23 //
     24 Device (GDM1)
     25 {
     26   Name (_HID, "INTL9C60")
     27   Name (_DDN, "Intel(R) DMA Controller #1 - INTL9C60")
     28   Name (_UID, 1)
     29 
     30   Name (RBUF, ResourceTemplate ()
     31   {
     32     Memory32Fixed (ReadWrite, 0x00000000, 0x00004000, BAR0)
     33     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {42}  // DMA #1 IRQ
     34   })
     35   Method (_CRS, 0x0, NotSerialized)
     36   {
     37     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
     38     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
     39     Store(D10A, B0BA)
     40     Store(D10L, B0LN)
     41     Return (RBUF)
     42   }
     43   Method (_STA, 0x0, NotSerialized)
     44   {
     45     //
     46     // PCIM>> 0:ACPI mode           1:PCI mode
     47     //
     48     If (LEqual(PCIM, 1)) {
     49       Return (0x0)
     50     }
     51 
     52     If (LOr(LEqual(D10A, 0), LEqual(L10D, 1)))
     53     {
     54       Return (0x0)
     55     }
     56     Return (0xF)
     57   }
     58 }
     59 
     60 //
     61 // LPIO1 DMA#2 (Synopsis GP DMA)
     62 //
     63 Device (GDM2)
     64 {
     65   Name (_HID, "INTL9C60")
     66   Name (_DDN, "Intel(R) DMA Controller #2 - INTL9C60")
     67   Name (_UID, 2)
     68 
     69   Name (RBUF, ResourceTemplate ()
     70   {
     71     Memory32Fixed (ReadWrite, 0x00000000, 0x00004000, BAR0)
     72     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {43}  // DMA #2 IRQ
     73   })
     74   Method (_CRS, 0x0, NotSerialized)
     75   {
     76     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
     77     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
     78     Store(D20A, B0BA)
     79     Store(D20L, B0LN)
     80     Return (RBUF)
     81   }
     82   Method (_STA, 0x0, NotSerialized)
     83   {
     84     //
     85     // PCIM>> 0:ACPI mode           1:PCI mode
     86     //
     87     If (LEqual(PCIM, 1)) {
     88       Return (0x0)
     89     }
     90 
     91     If (LOr(LEqual(D20A, 0), LEqual(L20D, 1)))
     92     {
     93       Return (0x0)
     94     }
     95     Return (0xF)
     96   }
     97 }
     98 
     99 //
    100 // LPIO1 PWM #1
    101 //
    102 Device(PWM1)
    103 {
    104   Name (_ADR, 0)
    105   Name (_HID, "80860F09")
    106   Name (_CID, "80860F09")
    107   Name (_DDN, "Intel(R) PWM Controller #1 - 80860F08")
    108   Name (_UID, 1)
    109 
    110   Name (RBUF, ResourceTemplate ()
    111   {
    112     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    113   })
    114   Method (_CRS, 0x0, NotSerialized)
    115   {
    116     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    117     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    118     Store(P10A, B0BA)
    119     Store(P10L, B0LN)
    120     Return (RBUF)
    121   }
    122   Method (_STA, 0x0, NotSerialized)
    123   {
    124     //
    125     // PCIM>> 0:ACPI mode           1:PCI mode
    126     //
    127     If (LEqual(PCIM, 1)) {
    128       Return (0x0)
    129     }
    130 
    131     If (LOr(LEqual(P10A, 0), LEqual(L11D, 1)))
    132     {
    133       Return (0x0)
    134     }
    135     Return (0xF)
    136   }
    137 }
    138 
    139 //
    140 // LPIO1 PWM #2
    141 //
    142 Device(PWM2)
    143 {
    144   Name (_ADR, 0)
    145   Name (_HID, "80860F09")
    146   Name (_CID, "80860F09")
    147   Name (_DDN, "Intel(R) PWM Controller #2 - 80860F09")
    148   Name (_UID, 2)
    149 
    150   Name (RBUF, ResourceTemplate ()
    151   {
    152     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    153   })
    154   Method (_CRS, 0x0, NotSerialized)
    155   {
    156     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    157     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    158     Store(P20A, B0BA)
    159     Store(P20L, B0LN)
    160     Return (RBUF)
    161   }
    162   Method (_STA, 0x0, NotSerialized)
    163   {
    164     //
    165     // PCIM>> 0:ACPI mode           1:PCI mode
    166     //
    167     If (LEqual(PCIM, 1)) {
    168       Return (0x0)
    169     }
    170 
    171     If (LOr(LEqual(P20A, 0), LEqual(L12D, 1)))
    172     {
    173       Return (0x0)
    174     }
    175     Return (0xF)
    176   }
    177 }
    178 
    179 //
    180 // LPIO1 HS-UART #1
    181 //
    182 Device(URT1)
    183 {
    184   Name (_ADR, 0)
    185   Name (_HID, "80860F0A")
    186   Name (_CID, "80860F0A")
    187   Name (_DDN, "Intel(R) HS-UART Controller #1 - 80860F0A")
    188   Name (_UID, 1)
    189   Name(_DEP, Package(0x1)
    190   {
    191     PEPD
    192   })
    193   Name (RBUF, ResourceTemplate ()
    194   {
    195     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    196     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {39}  // HS-UART #1 IRQ
    197 
    198     FixedDMA(0x2, 0x2, Width32Bit, )
    199     FixedDMA(0x3, 0x3, Width32Bit, )
    200   })
    201   Method (_HRV, 0x0, NotSerialized)
    202   {
    203     Return (SOCS)
    204   }
    205   Method (_CRS, 0x0, NotSerialized)
    206   {
    207     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    208     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    209     Store(U10A, B0BA)
    210     Store(U10L, B0LN)
    211     Return (RBUF)
    212   }
    213 
    214   Method (_STA, 0x0, NotSerialized)
    215   {
    216     //
    217     // PCIM>> 0:ACPI mode           1:PCI mode
    218     //
    219     If (LEqual(PCIM, 1)) {
    220       Return (0x0)
    221     }
    222 
    223     If (LOr(LEqual(U10A, 0), LEqual(L13D, 1)))
    224     {
    225       Return (0x0)
    226     }
    227     Return (0xF)
    228   }
    229 
    230   Method (_PS3, 0, NotSerialized)
    231   {
    232     OR(PSAT, 0x00000003, PSAT)
    233     OR(PSAT, 0X00000000, PSAT)
    234   }
    235 
    236   Method (_PS0, 0, NotSerialized)
    237   {
    238     And(PSAT, 0xfffffffC, PSAT)
    239     OR(PSAT, 0X00000000, PSAT)
    240   }
    241 
    242   OperationRegion (KEYS, SystemMemory, U11A, 0x100)
    243   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    244   {
    245     Offset (0x84),
    246     PSAT,   32
    247   }
    248 }//  Device (URT1)
    249 
    250 //
    251 // LPIO1 HS-UART #2
    252 //
    253 Device(URT2)
    254 {
    255   Name (_ADR, 0)
    256   Name (_HID, "80860F0A")
    257   Name (_CID, "80860F0A")
    258   Name (_DDN, "Intel(R) HS-UART Controller #2 - 80860F0C")
    259   Name (_UID, 2)
    260 
    261   Name(_DEP, Package(0x1)
    262   {
    263     PEPD
    264   })
    265 
    266   Name (RBUF, ResourceTemplate ()
    267   {
    268     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    269     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {40}  // HS-UART #2 IRQ
    270 
    271     FixedDMA(0x4, 0x4, Width32Bit, )
    272     FixedDMA(0x5, 0x5, Width32Bit, )
    273   })
    274 
    275   Method (_HRV, 0x0, NotSerialized)
    276   {
    277     Return (SOCS)
    278   }
    279 
    280   Method (_CRS, 0x0, NotSerialized)
    281   {
    282     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    283     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    284     Store(U20A, B0BA)
    285     Store(U20L, B0LN)
    286     Return (RBUF)
    287   }
    288 
    289   Method (_STA, 0x0, NotSerialized)
    290   {
    291     //
    292     // PCIM>> 0:ACPI mode           1:PCI mode
    293     //
    294     If (LEqual(PCIM, 1)) {
    295       Return (0x0)
    296     }
    297 
    298     If (LOr(LEqual(U20A, 0), LEqual(L14D, 1)))
    299     {
    300       Return (0x0)
    301     }
    302     Return (0xF)
    303   }
    304 
    305   Method (_PS3, 0, NotSerialized)
    306   {
    307     OR(PSAT, 0x00000003, PSAT)
    308     OR(PSAT, 0X00000000, PSAT)
    309   }
    310 
    311   Method (_PS0, 0, NotSerialized)
    312   {
    313     And(PSAT, 0xfffffffC, PSAT)
    314     OR(PSAT, 0X00000000, PSAT)
    315   }
    316 
    317   OperationRegion (KEYS, SystemMemory, U21A, 0x100)
    318   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    319   {
    320     Offset (0x84),
    321     PSAT,   32
    322   }
    323 }//  Device (URT2)
    324 
    325 //
    326 // LPIO1 SPI
    327 //
    328 Device(SPI1)
    329 {
    330   Name (_ADR, 0)
    331   Name (_HID, "80860F0E")
    332   Name (_CID, "80860F0E")
    333   Name (_UID, "0")  // Static bus number assignment
    334   Name(_DEP, Package(0x1)
    335   {
    336     PEPD
    337   })
    338   Name (_DDN, "Intel(R) SPI Controller - 80860F0E")
    339 
    340   Name (RBUF, ResourceTemplate ()
    341   {
    342     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    343     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {41}  // SPI IRQ
    344 
    345     FixedDMA(0x0, 0x0, Width32Bit, )
    346     FixedDMA(0x1, 0x1, Width32Bit, )
    347   })
    348 
    349   Method (_HRV, 0x0, NotSerialized)
    350   {
    351     Return (SOCS)
    352   }
    353 
    354   Method (_CRS, 0x0, NotSerialized)
    355   {
    356     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    357     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    358     Store(SP0A, B0BA)
    359     Store(SP0L, B0LN)
    360     Return (RBUF)
    361   }
    362 
    363   Method (_STA, 0x0, NotSerialized)
    364   {
    365     //
    366     // PCIM>> 0:ACPI mode           1:PCI mode
    367     //
    368     If (LEqual(PCIM, 1)) {
    369       Return (0x0)
    370     }
    371 
    372     If (LOr(LEqual(SP0A, 0), LEqual(L15D, 1)))
    373     {
    374       Return (0x0)
    375     }
    376     Return (0xF)
    377   }
    378 
    379   Method (_PS3, 0, NotSerialized)
    380   {
    381     OR(PSAT, 0x00000003, PSAT)
    382     OR(PSAT, 0X00000000, PSAT)
    383   }
    384 
    385   Method (_PS0, 0, NotSerialized)
    386   {
    387     And(PSAT, 0xfffffffC, PSAT)
    388     OR(PSAT, 0X00000000, PSAT)
    389   }
    390 
    391   OperationRegion (KEYS, SystemMemory, SP1A, 0x100)
    392   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    393   {
    394     Offset (0x84),
    395            PSAT,   32
    396   }
    397 }//  Device (SPI1)
    398 
    399 //
    400 // LPIO2 I2C #1
    401 //
    402 Device(I2C1)
    403 {
    404   Name (_ADR, 0)
    405   Name (_HID, "80860F41")
    406   Name (_CID, "80860F41")
    407   Name(_DEP, Package(0x1)
    408   {
    409     PEPD
    410   })
    411   Name (_DDN, "Intel(R) I2C Controller #1 - 80860F41")
    412   Name (_UID, 1)
    413 
    414   Name (RBUF, ResourceTemplate ()
    415   {
    416     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    417     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {32}  // I2C #1 IRQ
    418 
    419     FixedDMA(0x10, 0x0, Width32Bit, )
    420     FixedDMA(0x11, 0x1, Width32Bit, )
    421   })
    422 
    423   Method (SSCN, 0x0, NotSerialized)
    424   {
    425     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    426     Return (PKG)
    427   }
    428   Method (FMCN, 0x0, NotSerialized)
    429   {
    430     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    431     Return (PKG)
    432   }
    433   Method (FPCN, 0x0, NotSerialized)
    434   {
    435     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    436     Return (PKG)
    437   }
    438 
    439   Method (_HRV, 0x0, NotSerialized)
    440   {
    441     Return (SOCS)
    442   }
    443   Method (_CRS, 0x0, NotSerialized)
    444   {
    445     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    446     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    447     Store(I10A, B0BA)
    448     Store(I10L, B0LN)
    449     Return (RBUF)
    450   }
    451   Method (_STA, 0x0, NotSerialized)
    452   {
    453     //
    454     // PCIM>> 0:ACPI mode           1:PCI mode
    455     //
    456     If (LEqual(PCIM, 1)) {
    457       Return (0x0)
    458     }
    459 
    460     If (LOr(LEqual(I10A, 0), LEqual(L21D, 1)))
    461     {
    462       Return (0x0)
    463     }
    464     Return (0xF)
    465 
    466   }
    467 
    468   Method (_PS3, 0, NotSerialized)
    469   {
    470     OR(PSAT, 0x00000003, PSAT)
    471     OR(PSAT, 0X00000000, PSAT)
    472   }
    473   Method (_PS0, 0, NotSerialized)
    474   {
    475     And(PSAT, 0xfffffffC, PSAT)
    476     OR(PSAT, 0X00000000, PSAT)
    477   }
    478   OperationRegion (KEYS, SystemMemory, I11A, 0x100)
    479   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    480   {
    481     Offset (0x84),
    482            PSAT,   32
    483   }
    484 
    485 }
    486 
    487 //
    488 // LPIO2 I2C #2
    489 //
    490 Device(I2C2)
    491 {
    492   Name (_ADR, 0)
    493   Name (_HID, "80860F41")
    494   Name (_CID, "80860F41")
    495   Name(_DEP, Package(0x1)
    496   {
    497     PEPD
    498   })
    499   Name (_DDN, "Intel(R) I2C Controller #2 - 80860F42")
    500   Name (_UID, 2)
    501 
    502   Name (RBUF, ResourceTemplate ()
    503   {
    504     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    505     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {33}  // I2C #2 IRQ
    506 
    507     FixedDMA(0x12, 0x2, Width32Bit, )
    508     FixedDMA(0x13, 0x3, Width32Bit, )
    509   })
    510 
    511   Method (SSCN, 0x0, NotSerialized)
    512   {
    513     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    514     Return (PKG)
    515   }
    516   Method (FMCN, 0x0, NotSerialized)
    517   {
    518     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    519     Return (PKG)
    520   }
    521   Method (FPCN, 0x0, NotSerialized)
    522   {
    523     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    524     Return (PKG)
    525   }
    526 
    527   Method (_HRV, 0x0, NotSerialized)
    528   {
    529     Return (SOCS)
    530   }
    531   Method (_CRS, 0x0, NotSerialized)
    532   {
    533     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    534     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    535     Store(I20A, B0BA)
    536     Store(I20L, B0LN)
    537     Return (RBUF)
    538   }
    539   Method (_STA, 0x0, NotSerialized)
    540   {
    541     //
    542     // PCIM>> 0:ACPI mode           1:PCI mode
    543     //
    544     If (LEqual(PCIM, 1)) {
    545       Return (0x0)
    546     }
    547 
    548     If (LOr(LEqual(I20A, 0), LEqual(L22D, 1)))
    549     {
    550       Return (0x0)
    551     }
    552     Return (0xF)
    553   }
    554 
    555   Method (_PS3, 0, NotSerialized)
    556   {
    557     OR(PSAT, 0x00000003, PSAT)
    558     OR(PSAT, 0X00000000, PSAT)
    559 
    560   }
    561   Method (_PS0, 0, NotSerialized)
    562   {
    563     And(PSAT, 0xfffffffC, PSAT)
    564     OR(PSAT, 0X00000000, PSAT)
    565   }
    566   OperationRegion (KEYS, SystemMemory, I21A, 0x100)
    567   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    568   {
    569     Offset (0x84),
    570            PSAT,   32
    571   }
    572 
    573 
    574   //
    575   // Realtek Audio Codec
    576   //
    577   Device (RTEK)   //Audio Codec driver I2C
    578   {
    579     Name (_ADR, 0)
    580     Name (_HID, "10EC5640")
    581     Name (_CID, "10EC5640")
    582     Name (_DDN, "RTEK Codec Controller " )
    583     Name (_UID, 1)
    584 
    585 
    586     Method(_CRS, 0x0, Serialized)
    587     {
    588       Name(SBUF,ResourceTemplate ()
    589       {
    590         I2CSerialBus(0x1C,          //SlaveAddress: bus address
    591                      ,                         //SlaveMode: default to ControllerInitiated
    592                      400000,                   //ConnectionSpeed: in Hz
    593                      ,                         //Addressing Mode: default to 7 bit
    594                      "\\_SB.I2C2",             //ResourceSource: I2C bus controller name
    595                      ,                         //ResourceSourceIndex: defaults to 0
    596                      ,                         //ResourceUsage: Defaults to ResourceConsumer
    597                      ,                         //Descriptor Name: creates name for offset of resource descriptor
    598                     )  //VendorData
    599         GpioInt(Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0,"\\_SB.GPO2") {4} //  AUD_INT
    600       })
    601       Return (SBUF)
    602     }
    603 
    604     Method (_STA, 0x0, NotSerialized)
    605     {
    606 
    607       If (LEqual(LPEE, 2)) { // LPE enable/disable
    608         If (LEqual(LPAD, 1))
    609         {
    610           Return(0xF)
    611         }
    612       }
    613       Return(0)
    614     }
    615 
    616     Method (_DIS, 0x0, NotSerialized)
    617     {
    618 
    619     }
    620   } // Device (RTEK)
    621 } //  Device (I2C2)
    622 
    623 //
    624 // LPIO2 I2C #3
    625 //
    626 Device(I2C3)
    627 {
    628   Name (_ADR, 0)
    629   Name (_HID, "80860F41")
    630   Name (_CID, "80860F41")
    631   Name (_DDN, "Intel(R) I2C Controller #3 - 80860F43")
    632   Name (_UID, 3)
    633   Name(_DEP, Package(0x1)
    634   {
    635     PEPD
    636   })
    637   Name (RBUF, ResourceTemplate ()
    638   {
    639     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    640     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {34}  // I2C #3 IRQ
    641 
    642     FixedDMA(0x14, 0x4, Width32Bit, )
    643     FixedDMA(0x15, 0x5, Width32Bit, )
    644   })
    645 
    646   Method (SSCN, 0x0, NotSerialized)
    647   {
    648     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    649     Return (PKG)
    650   }
    651   Method (FMCN, 0x0, NotSerialized)
    652   {
    653     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    654     Return (PKG)
    655   }
    656   Method (FPCN, 0x0, NotSerialized)
    657   {
    658     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    659     Return (PKG)
    660   }
    661 
    662   Method (_HRV, 0x0, NotSerialized)
    663   {
    664     Return (SOCS)
    665   }
    666   Method (_CRS, 0x0, NotSerialized)
    667   {
    668     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    669     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    670     Store(I30A, B0BA)
    671     Store(I30L, B0LN)
    672     Return (RBUF)
    673   }
    674 
    675   Method (_STA, 0x0, NotSerialized)
    676   {
    677     //
    678     // PCIM>> 0:ACPI mode           1:PCI mode
    679     //
    680     If (LEqual(PCIM, 1)) {
    681       Return (0x0)
    682     }
    683 
    684     If (LOr(LEqual(I30A, 0), LEqual(L23D, 1)))
    685     {
    686       Return (0x0)
    687     }
    688     Return (0xF)
    689   }
    690 
    691   Method (_PS3, 0, NotSerialized)
    692   {
    693     OR(PSAT, 0x00000003, PSAT)
    694     OR(PSAT, 0X00000000, PSAT)
    695 
    696   }
    697   Method (_PS0, 0, NotSerialized)
    698   {
    699     And(PSAT, 0xfffffffC, PSAT)
    700     OR(PSAT, 0X00000000, PSAT)
    701   }
    702   OperationRegion (KEYS, SystemMemory, I31A, 0x100)
    703   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    704   {
    705     Offset (0x84),
    706     PSAT,   32
    707   }
    708 
    709 
    710 }
    711 
    712 //
    713 // LPIO2 I2C #4
    714 //
    715 Device(I2C4)
    716 {
    717   Name (_ADR, 0)
    718   Name (_HID, "80860F41")
    719   Name (_CID, "80860F41")
    720   Name (_DDN, "Intel(R) I2C Controller #4 - 80860F44")
    721   Name (_UID, 4)
    722   Name(_DEP, Package(0x1)
    723   {
    724     PEPD
    725   })
    726   Name (RBUF, ResourceTemplate ()
    727   {
    728     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    729     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {35}  // I2C #4 IRQ
    730 
    731     FixedDMA(0x16, 0x6, Width32Bit, )
    732     FixedDMA(0x17, 0x7, Width32Bit, )
    733   })
    734 
    735   Method (SSCN, 0x0, NotSerialized)
    736   {
    737     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    738     Return (PKG)
    739   }
    740   Method (FMCN, 0x0, NotSerialized)
    741   {
    742     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    743     Return (PKG)
    744   }
    745   Method (FPCN, 0x0, NotSerialized)
    746   {
    747     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    748     Return (PKG)
    749   }
    750 
    751 
    752   Method (_HRV, 0x0, NotSerialized)
    753   {
    754     Return (SOCS)
    755   }
    756   Method (_CRS, 0x0, NotSerialized)
    757   {
    758     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    759     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    760     Store(I40A, B0BA)
    761     Store(I40L, B0LN)
    762     Return (RBUF)
    763   }
    764 
    765   Method (_STA, 0x0, NotSerialized)
    766   {
    767     //
    768     // PCIM>> 0:ACPI mode           1:PCI mode
    769     //
    770     If (LEqual(PCIM, 1)) {
    771       Return (0x0)
    772     }
    773 
    774     If (LOr(LEqual(I40A, 0), LEqual(L24D, 1)))
    775     {
    776       Return (0x0)
    777     }
    778     Return (0xF)
    779   }
    780 
    781   Method (_PS3, 0, NotSerialized)
    782   {
    783     OR(PSAT, 0x00000003, PSAT)
    784     OR(PSAT, 0X00000000, PSAT)
    785 
    786   }
    787   Method (_PS0, 0, NotSerialized)
    788   {
    789     And(PSAT, 0xfffffffC, PSAT)
    790     OR(PSAT, 0X00000000, PSAT)
    791   }
    792   OperationRegion (KEYS, SystemMemory, I41A, 0x100)
    793   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    794   {
    795     Offset (0x84),
    796     PSAT,   32
    797   }
    798 
    799   PowerResource (CLK0, 0x00, 0x0000)
    800   {
    801     Method (_STA, 0, NotSerialized)   // _STA: Status
    802     {
    803       Return (CKC0)
    804     }
    805 
    806     Method (_ON, 0, NotSerialized)   // _ON_: Power On
    807     {
    808       Store (One, CKC0)
    809       Store (One, CKF0)
    810       Sleep (0x20)
    811     }
    812 
    813     Method (_OFF, 0, NotSerialized)   // _OFF: Power Off
    814     {
    815       Store (0x02, CKC0)
    816     }
    817   }
    818   PowerResource (CLK1, 0x00, 0x0000)
    819   {
    820     Method (_STA, 0, NotSerialized)   // _STA: Status
    821     {
    822       Return (CKC1)
    823     }
    824 
    825     Method (_ON, 0, NotSerialized)   // _ON_: Power On
    826     {
    827       Store (One, CKC1)
    828       Store (One, CKF1)
    829       Sleep (0x20)
    830     }
    831 
    832     Method (_OFF, 0, NotSerialized)   // _OFF: Power Off
    833     {
    834       Store (0x02, CKC1)
    835     }
    836   }
    837 }
    838 
    839 //
    840 // LPIO2 I2C #5
    841 //
    842 Device(I2C5)
    843 {
    844   Name (_ADR, 0)
    845   Name (_HID, "80860F41")
    846   Name (_CID, "80860F41")
    847   Name (_DDN, "Intel(R) I2C Controller #5 - 80860F45")
    848   Name (_UID, 5)
    849   Name(_DEP, Package(0x1)
    850   {
    851     PEPD
    852   })
    853   Name (RBUF, ResourceTemplate ()
    854   {
    855     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    856     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {36}  // I2C #5 IRQ
    857 
    858     FixedDMA(0x18, 0x0, Width32Bit, )
    859     FixedDMA(0x19, 0x1, Width32Bit, )
    860   })
    861 
    862   Method (SSCN, 0x0, NotSerialized)
    863   {
    864     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    865     Return (PKG)
    866   }
    867   Method (FMCN, 0x0, NotSerialized)
    868   {
    869     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    870     Return (PKG)
    871   }
    872   Method (FPCN, 0x0, NotSerialized)
    873   {
    874     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    875     Return (PKG)
    876   }
    877 
    878   Method (_HRV, 0x0, NotSerialized)
    879   {
    880     Return (SOCS)
    881   }
    882   Method (_CRS, 0x0, NotSerialized)
    883   {
    884     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    885     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    886     Store(I50A, B0BA)
    887     Store(I50L, B0LN)
    888     Return (RBUF)
    889   }
    890   Method (_STA, 0x0, NotSerialized)
    891   {
    892     //
    893     // PCIM>> 0:ACPI mode           1:PCI mode
    894     //
    895     If (LEqual(PCIM, 1)) {
    896       Return (0x0)
    897     }
    898 
    899     If (LOr(LEqual(I50A, 0), LEqual(L25D, 1)))
    900     {
    901       Return (0x0)
    902     }
    903     Return (0xF)
    904   }
    905 
    906   Method (_PS3, 0, NotSerialized)
    907   {
    908     OR(PSAT, 0x00000003, PSAT)
    909     OR(PSAT, 0X00000000, PSAT)
    910   }
    911   Method (_PS0, 0, NotSerialized)
    912   {
    913     And(PSAT, 0xfffffffC, PSAT)
    914     OR(PSAT, 0X00000000, PSAT)
    915   }
    916   OperationRegion (KEYS, SystemMemory, I51A, 0x100)
    917   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    918   {
    919     Offset (0x84),
    920     PSAT,   32
    921   }
    922 }
    923 
    924 //
    925 // LPIO2 I2C #6
    926 //
    927 Device(I2C6)
    928 {
    929   Name (_ADR, 0)
    930   Name (_HID, "80860F41")
    931   Name (_CID, "80860F41")
    932   Name (_DDN, "Intel(R) I2C Controller #6 - 80860F46")
    933   Name (_UID, 6)
    934   Name(_DEP, Package(0x1)
    935   {
    936     PEPD
    937   })
    938   Name (RBUF, ResourceTemplate ()
    939   {
    940     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    941     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {37}  // I2C #6 IRQ
    942 
    943     FixedDMA(0x1A, 0x02, Width32Bit, )
    944     FixedDMA(0x1B, 0x03, Width32Bit, )
    945   })
    946 
    947   Method (SSCN, 0x0, NotSerialized)
    948   {
    949     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    950     Return (PKG)
    951   }
    952   Method (FMCN, 0x0, NotSerialized)
    953   {
    954     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    955     Return (PKG)
    956   }
    957   Method (FPCN, 0x0, NotSerialized)
    958   {
    959     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    960     Return (PKG)
    961   }
    962 
    963   Method (_HRV, 0x0, NotSerialized)
    964   {
    965     Return (SOCS)
    966   }
    967   Method (_CRS, 0x0, NotSerialized)
    968   {
    969     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    970     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    971     Store(I60A, B0BA)
    972     Store(I60L, B0LN)
    973     Return (RBUF)
    974   }
    975   Method (_STA, 0x0, NotSerialized)
    976   {
    977     //
    978     // PCIM>> 0:ACPI mode           1:PCI mode
    979     //
    980     If (LEqual(PCIM, 1)) {
    981       Return (0x0)
    982     }
    983 
    984     If (LOr(LEqual(I60A, 0), LEqual(L26D, 1)))
    985     {
    986       Return (0x0)
    987     }
    988     Return (0xF)
    989   }
    990 
    991   Method (_PS3, 0, NotSerialized)
    992   {
    993     OR(PSAT, 0x00000003, PSAT)
    994     OR(PSAT, 0X00000000, PSAT)
    995   }
    996   Method (_PS0, 0, NotSerialized)
    997   {
    998     And(PSAT, 0xfffffffC, PSAT)
    999     OR(PSAT, 0X00000000, PSAT)
   1000   }
   1001   OperationRegion (KEYS, SystemMemory, I61A, 0x100)
   1002   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
   1003   {
   1004     Offset (0x84),
   1005            PSAT,   32
   1006   }
   1007 }
   1008 
   1009 //
   1010 // LPIO2 I2C #7
   1011 //
   1012 Device(I2C7)
   1013 {
   1014   Name (_ADR, 0)
   1015   Name (_HID, "80860F41")
   1016   Name (_CID, "80860F41")
   1017   //Name (_CLS, Package (3) {0x0C, 0x80, 0x00})
   1018   Name (_DDN, "Intel(R) I2C Controller #7 - 80860F47")
   1019   Name (_UID, 7)
   1020   Name(_DEP, Package(0x1)
   1021   {
   1022     PEPD
   1023   })
   1024   Name (RBUF, ResourceTemplate ()
   1025   {
   1026     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
   1027     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {38}  // I2C #7 IRQ
   1028 
   1029     FixedDMA(0x1C, 0x4, Width32Bit, )
   1030     FixedDMA(0x1D, 0x5, Width32Bit, )
   1031   })
   1032 
   1033   Method (SSCN, 0x0, NotSerialized)
   1034   {
   1035     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
   1036     Return (PKG)
   1037   }
   1038   Method (FMCN, 0x0, NotSerialized)
   1039   {
   1040     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
   1041     Return (PKG)
   1042   }
   1043   Method (FPCN, 0x0, NotSerialized)
   1044   {
   1045     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
   1046     Return (PKG)
   1047   }
   1048 
   1049   Method (_HRV, 0x0, NotSerialized)
   1050   {
   1051     Return (SOCS)
   1052   }
   1053 
   1054   Method (_CRS, 0x0, NotSerialized)
   1055   {
   1056     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
   1057     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
   1058     Store(I70A, B0BA)
   1059     Store(I70L, B0LN)
   1060     Return (RBUF)
   1061   }
   1062 
   1063   Method (_STA, 0x0, NotSerialized)
   1064   {
   1065     //
   1066     // PCIM>> 0:ACPI mode           1:PCI mode
   1067     //
   1068     If (LEqual(PCIM, 1)) {
   1069       Return (0x0)
   1070     }
   1071 
   1072     If (LOr(LEqual(I70A, 0), LEqual(L27D, 1)))
   1073     {
   1074       Return (0x0)
   1075     }
   1076     Return (0xF)
   1077   }
   1078 
   1079   Method (_PS3, 0, NotSerialized)
   1080   {
   1081     OR(PSAT, 0x00000003, PSAT)
   1082     OR(PSAT, 0X00000000, PSAT)
   1083   }
   1084 
   1085   Method (_PS0, 0, NotSerialized)
   1086   {
   1087     And(PSAT, 0xfffffffC, PSAT)
   1088     OR(PSAT, 0X00000000, PSAT)
   1089   }
   1090 
   1091   OperationRegion (KEYS, SystemMemory, I71A, 0x100)
   1092   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
   1093   {
   1094     Offset (0x84),
   1095     PSAT,   32
   1096   }
   1097 
   1098 }
   1099 
   1100