• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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//
24Device (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//
63Device (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//
102Device(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//
142Device(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//
182Device(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//
253Device(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//
328Device(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//
402Device(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//
490Device(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//
626Device(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//
715Device(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//
842Device(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//
927Device(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//
1012Device(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