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//
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        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//
623Device(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//
712Device(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//
839Device(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//
924Device(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//
1009Device(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