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  - 2014, 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         Return(0xF)
    609       }
    610       Return(0)
    611     }
    612 
    613     Method (_DIS, 0x0, NotSerialized)
    614     {
    615 
    616     }
    617   } // Device (RTEK)
    618 } //  Device (I2C2)
    619 
    620 //
    621 // LPIO2 I2C #3
    622 //
    623 Device(I2C3)
    624 {
    625   Name (_ADR, 0)
    626   Name (_HID, "80860F41")
    627   Name (_CID, "80860F41")
    628   Name (_DDN, "Intel(R) I2C Controller #3 - 80860F43")
    629   Name (_UID, 3)
    630   Name(_DEP, Package(0x1)
    631   {
    632     PEPD
    633   })
    634   Name (RBUF, ResourceTemplate ()
    635   {
    636     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    637     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {34}  // I2C #3 IRQ
    638 
    639     FixedDMA(0x14, 0x4, Width32Bit, )
    640     FixedDMA(0x15, 0x5, Width32Bit, )
    641   })
    642 
    643   Method (SSCN, 0x0, NotSerialized)
    644   {
    645     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    646     Return (PKG)
    647   }
    648   Method (FMCN, 0x0, NotSerialized)
    649   {
    650     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    651     Return (PKG)
    652   }
    653   Method (FPCN, 0x0, NotSerialized)
    654   {
    655     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    656     Return (PKG)
    657   }
    658 
    659   Method (_HRV, 0x0, NotSerialized)
    660   {
    661     Return (SOCS)
    662   }
    663   Method (_CRS, 0x0, NotSerialized)
    664   {
    665     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    666     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    667     Store(I30A, B0BA)
    668     Store(I30L, B0LN)
    669     Return (RBUF)
    670   }
    671 
    672   Method (_STA, 0x0, NotSerialized)
    673   {
    674     //
    675     // PCIM>> 0:ACPI mode           1:PCI mode
    676     //
    677     If (LEqual(PCIM, 1)) {
    678       Return (0x0)
    679     }
    680 
    681     If (LOr(LEqual(I30A, 0), LEqual(L23D, 1)))
    682     {
    683       Return (0x0)
    684     }
    685     Return (0xF)
    686   }
    687 
    688   Method (_PS3, 0, NotSerialized)
    689   {
    690     OR(PSAT, 0x00000003, PSAT)
    691     OR(PSAT, 0X00000000, PSAT)
    692 
    693   }
    694   Method (_PS0, 0, NotSerialized)
    695   {
    696     And(PSAT, 0xfffffffC, PSAT)
    697     OR(PSAT, 0X00000000, PSAT)
    698   }
    699   OperationRegion (KEYS, SystemMemory, I31A, 0x100)
    700   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    701   {
    702     Offset (0x84),
    703     PSAT,   32
    704   }
    705 
    706 
    707 }
    708 
    709 //
    710 // LPIO2 I2C #4
    711 //
    712 Device(I2C4)
    713 {
    714   Name (_ADR, 0)
    715   Name (_HID, "80860F41")
    716   Name (_CID, "80860F41")
    717   Name (_DDN, "Intel(R) I2C Controller #4 - 80860F44")
    718   Name (_UID, 4)
    719   Name(_DEP, Package(0x1)
    720   {
    721     PEPD
    722   })
    723   Name (RBUF, ResourceTemplate ()
    724   {
    725     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    726     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {35}  // I2C #4 IRQ
    727 
    728     FixedDMA(0x16, 0x6, Width32Bit, )
    729     FixedDMA(0x17, 0x7, Width32Bit, )
    730   })
    731 
    732   Method (SSCN, 0x0, NotSerialized)
    733   {
    734     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    735     Return (PKG)
    736   }
    737   Method (FMCN, 0x0, NotSerialized)
    738   {
    739     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    740     Return (PKG)
    741   }
    742   Method (FPCN, 0x0, NotSerialized)
    743   {
    744     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    745     Return (PKG)
    746   }
    747 
    748 
    749   Method (_HRV, 0x0, NotSerialized)
    750   {
    751     Return (SOCS)
    752   }
    753   Method (_CRS, 0x0, NotSerialized)
    754   {
    755     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    756     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    757     Store(I40A, B0BA)
    758     Store(I40L, B0LN)
    759     Return (RBUF)
    760   }
    761 
    762   Method (_STA, 0x0, NotSerialized)
    763   {
    764     //
    765     // PCIM>> 0:ACPI mode           1:PCI mode
    766     //
    767     If (LEqual(PCIM, 1)) {
    768       Return (0x0)
    769     }
    770 
    771     If (LOr(LEqual(I40A, 0), LEqual(L24D, 1)))
    772     {
    773       Return (0x0)
    774     }
    775     Return (0xF)
    776   }
    777 
    778   Method (_PS3, 0, NotSerialized)
    779   {
    780     OR(PSAT, 0x00000003, PSAT)
    781     OR(PSAT, 0X00000000, PSAT)
    782 
    783   }
    784   Method (_PS0, 0, NotSerialized)
    785   {
    786     And(PSAT, 0xfffffffC, PSAT)
    787     OR(PSAT, 0X00000000, PSAT)
    788   }
    789   OperationRegion (KEYS, SystemMemory, I41A, 0x100)
    790   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    791   {
    792     Offset (0x84),
    793     PSAT,   32
    794   }
    795 
    796   PowerResource (CLK0, 0x00, 0x0000)
    797   {
    798     Method (_STA, 0, NotSerialized)   // _STA: Status
    799     {
    800       Return (CKC0)
    801     }
    802 
    803     Method (_ON, 0, NotSerialized)   // _ON_: Power On
    804     {
    805       Store (One, CKC0)
    806       Store (One, CKF0)
    807       Sleep (0x20)
    808     }
    809 
    810     Method (_OFF, 0, NotSerialized)   // _OFF: Power Off
    811     {
    812       Store (0x02, CKC0)
    813     }
    814   }
    815   PowerResource (CLK1, 0x00, 0x0000)
    816   {
    817     Method (_STA, 0, NotSerialized)   // _STA: Status
    818     {
    819       Return (CKC1)
    820     }
    821 
    822     Method (_ON, 0, NotSerialized)   // _ON_: Power On
    823     {
    824       Store (One, CKC1)
    825       Store (One, CKF1)
    826       Sleep (0x20)
    827     }
    828 
    829     Method (_OFF, 0, NotSerialized)   // _OFF: Power Off
    830     {
    831       Store (0x02, CKC1)
    832     }
    833   }
    834 }
    835 
    836 //
    837 // LPIO2 I2C #5
    838 //
    839 Device(I2C5)
    840 {
    841   Name (_ADR, 0)
    842   Name (_HID, "80860F41")
    843   Name (_CID, "80860F41")
    844   Name (_DDN, "Intel(R) I2C Controller #5 - 80860F45")
    845   Name (_UID, 5)
    846   Name(_DEP, Package(0x1)
    847   {
    848     PEPD
    849   })
    850   Name (RBUF, ResourceTemplate ()
    851   {
    852     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    853     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {36}  // I2C #5 IRQ
    854 
    855     FixedDMA(0x18, 0x0, Width32Bit, )
    856     FixedDMA(0x19, 0x1, Width32Bit, )
    857   })
    858 
    859   Method (SSCN, 0x0, NotSerialized)
    860   {
    861     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    862     Return (PKG)
    863   }
    864   Method (FMCN, 0x0, NotSerialized)
    865   {
    866     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    867     Return (PKG)
    868   }
    869   Method (FPCN, 0x0, NotSerialized)
    870   {
    871     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    872     Return (PKG)
    873   }
    874 
    875   Method (_HRV, 0x0, NotSerialized)
    876   {
    877     Return (SOCS)
    878   }
    879   Method (_CRS, 0x0, NotSerialized)
    880   {
    881     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    882     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    883     Store(I50A, B0BA)
    884     Store(I50L, B0LN)
    885     Return (RBUF)
    886   }
    887   Method (_STA, 0x0, NotSerialized)
    888   {
    889     //
    890     // PCIM>> 0:ACPI mode           1:PCI mode
    891     //
    892     If (LEqual(PCIM, 1)) {
    893       Return (0x0)
    894     }
    895 
    896     If (LOr(LEqual(I50A, 0), LEqual(L25D, 1)))
    897     {
    898       Return (0x0)
    899     }
    900     Return (0xF)
    901   }
    902 
    903   Method (_PS3, 0, NotSerialized)
    904   {
    905     OR(PSAT, 0x00000003, PSAT)
    906     OR(PSAT, 0X00000000, PSAT)
    907   }
    908   Method (_PS0, 0, NotSerialized)
    909   {
    910     And(PSAT, 0xfffffffC, PSAT)
    911     OR(PSAT, 0X00000000, PSAT)
    912   }
    913   OperationRegion (KEYS, SystemMemory, I51A, 0x100)
    914   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
    915   {
    916     Offset (0x84),
    917     PSAT,   32
    918   }
    919 }
    920 
    921 //
    922 // LPIO2 I2C #6
    923 //
    924 Device(I2C6)
    925 {
    926   Name (_ADR, 0)
    927   Name (_HID, "80860F41")
    928   Name (_CID, "80860F41")
    929   Name (_DDN, "Intel(R) I2C Controller #6 - 80860F46")
    930   Name (_UID, 6)
    931   Name(_DEP, Package(0x1)
    932   {
    933     PEPD
    934   })
    935   Name (RBUF, ResourceTemplate ()
    936   {
    937     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
    938     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {37}  // I2C #6 IRQ
    939 
    940     FixedDMA(0x1A, 0x02, Width32Bit, )
    941     FixedDMA(0x1B, 0x03, Width32Bit, )
    942   })
    943 
    944   Method (SSCN, 0x0, NotSerialized)
    945   {
    946     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
    947     Return (PKG)
    948   }
    949   Method (FMCN, 0x0, NotSerialized)
    950   {
    951     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
    952     Return (PKG)
    953   }
    954   Method (FPCN, 0x0, NotSerialized)
    955   {
    956     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
    957     Return (PKG)
    958   }
    959 
    960   Method (_HRV, 0x0, NotSerialized)
    961   {
    962     Return (SOCS)
    963   }
    964   Method (_CRS, 0x0, NotSerialized)
    965   {
    966     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
    967     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
    968     Store(I60A, B0BA)
    969     Store(I60L, B0LN)
    970     Return (RBUF)
    971   }
    972   Method (_STA, 0x0, NotSerialized)
    973   {
    974     //
    975     // PCIM>> 0:ACPI mode           1:PCI mode
    976     //
    977     If (LEqual(PCIM, 1)) {
    978       Return (0x0)
    979     }
    980 
    981     If (LOr(LEqual(I60A, 0), LEqual(L26D, 1)))
    982     {
    983       Return (0x0)
    984     }
    985     Return (0xF)
    986   }
    987 
    988   Method (_PS3, 0, NotSerialized)
    989   {
    990     OR(PSAT, 0x00000003, PSAT)
    991     OR(PSAT, 0X00000000, PSAT)
    992   }
    993   Method (_PS0, 0, NotSerialized)
    994   {
    995     And(PSAT, 0xfffffffC, PSAT)
    996     OR(PSAT, 0X00000000, PSAT)
    997   }
    998   OperationRegion (KEYS, SystemMemory, I61A, 0x100)
    999   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
   1000   {
   1001     Offset (0x84),
   1002            PSAT,   32
   1003   }
   1004 }
   1005 
   1006 //
   1007 // LPIO2 I2C #7
   1008 //
   1009 Device(I2C7)
   1010 {
   1011   Name (_ADR, 0)
   1012   Name (_HID, "80860F41")
   1013   Name (_CID, "80860F41")
   1014   //Name (_CLS, Package (3) {0x0C, 0x80, 0x00})
   1015   Name (_DDN, "Intel(R) I2C Controller #7 - 80860F47")
   1016   Name (_UID, 7)
   1017   Name(_DEP, Package(0x1)
   1018   {
   1019     PEPD
   1020   })
   1021   Name (RBUF, ResourceTemplate ()
   1022   {
   1023     Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
   1024     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {38}  // I2C #7 IRQ
   1025 
   1026     FixedDMA(0x1C, 0x4, Width32Bit, )
   1027     FixedDMA(0x1D, 0x5, Width32Bit, )
   1028   })
   1029 
   1030   Method (SSCN, 0x0, NotSerialized)
   1031   {
   1032     Name (PKG, Package(3) { 0x200, 0x200, 0x06 })
   1033     Return (PKG)
   1034   }
   1035   Method (FMCN, 0x0, NotSerialized)
   1036   {
   1037     Name (PKG, Package(3) { 0x55, 0x99, 0x06 })
   1038     Return (PKG)
   1039   }
   1040   Method (FPCN, 0x0, NotSerialized)
   1041   {
   1042     Name (PKG, Package(3) { 0x1b, 0x3a, 0x06 })
   1043     Return (PKG)
   1044   }
   1045 
   1046   Method (_HRV, 0x0, NotSerialized)
   1047   {
   1048     Return (SOCS)
   1049   }
   1050 
   1051   Method (_CRS, 0x0, NotSerialized)
   1052   {
   1053     CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
   1054     CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
   1055     Store(I70A, B0BA)
   1056     Store(I70L, B0LN)
   1057     Return (RBUF)
   1058   }
   1059 
   1060   Method (_STA, 0x0, NotSerialized)
   1061   {
   1062     //
   1063     // PCIM>> 0:ACPI mode           1:PCI mode
   1064     //
   1065     If (LEqual(PCIM, 1)) {
   1066       Return (0x0)
   1067     }
   1068 
   1069     If (LOr(LEqual(I70A, 0), LEqual(L27D, 1)))
   1070     {
   1071       Return (0x0)
   1072     }
   1073     Return (0xF)
   1074   }
   1075 
   1076   Method (_PS3, 0, NotSerialized)
   1077   {
   1078     OR(PSAT, 0x00000003, PSAT)
   1079     OR(PSAT, 0X00000000, PSAT)
   1080   }
   1081 
   1082   Method (_PS0, 0, NotSerialized)
   1083   {
   1084     And(PSAT, 0xfffffffC, PSAT)
   1085     OR(PSAT, 0X00000000, PSAT)
   1086   }
   1087 
   1088   OperationRegion (KEYS, SystemMemory, I71A, 0x100)
   1089   Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
   1090   {
   1091     Offset (0x84),
   1092     PSAT,   32
   1093   }
   1094 
   1095 }
   1096 
   1097