Fix audio interrupt index to make the mainline kernel driver work
[Teclast-X98-Air-3G_C6J6_custom_DSDT.git] / dsdt.dsl
1 /*
2  * Intel ACPI Component Architecture
3  * AML/ASL+ Disassembler version 20141107-64 [Nov 17 2014]
4  * Copyright (c) 2000 - 2014 Intel Corporation
5  * 
6  * Disassembling to symbolic ASL+ operators
7  *
8  * Disassembly of dsdt.dat, Tue Feb  3 11:29:51 2015
9  *
10  * Original Table Header:
11  *     Signature        "DSDT"
12  *     Length           0x000103C3 (66499)
13  *     Revision         0x02
14  *     Checksum         0x04
15  *     OEM ID           "ALASKA"
16  *     OEM Table ID     "A M I "
17  *     OEM Revision     0x00000003 (3)
18  *     Compiler ID      "AMI "
19  *     Compiler Version 0x0100000D (16777229)
20  */
21 DefinitionBlock ("dsdt.aml", "DSDT", 2, "ALASKA", "A M I ", 0x00000003)
22 {
23     /*
24      * iASL Warning: There were 2 external control methods found during
25      * disassembly, but additional ACPI tables to resolve these externals
26      * were not specified. This resulting disassembler output file may not
27      * compile because the disassembler did not know how many arguments
28      * to assign to these methods. To specify the tables needed to resolve
29      * external control method references, the -e option can be used to
30      * specify the filenames. Example iASL invocations:
31      *     iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml
32      *     iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml
33      *     iasl -e ssdt*.aml -d dsdt.aml
34      *
35      * In addition, the -fe option can be used to specify a file containing
36      * control method external declarations with the associated method
37      * argument counts. Each line of the file must be of the form:
38      *     External (<method pathname>, MethodObj, <argument count>)
39      * Invocation:
40      *     iasl -fe refs.txt -d dsdt.aml
41      *
42      * The following methods were unresolved and many not compile properly
43      * because the disassembler had to guess at the number of arguments
44      * required for each:
45      */
46     External (_SB_.PCI0.LPCB.TPM_.PTS_, MethodObj)    // Warning: Unresolved method, guessing 1 arguments
47     External (NDN3, MethodObj)    // Warning: Unresolved method, guessing 1 arguments
48
49     External (_PR_.CPU0._PPC, UnknownObj)
50     External (CFGD, UnknownObj)
51     External (DPTF, UnknownObj)
52     External (PDC0, UnknownObj)
53     External (PDC1, UnknownObj)
54     External (PDC2, UnknownObj)
55     External (PDC3, UnknownObj)
56     External (TCHG, UnknownObj)
57
58     Name (LAPB, 0xFEE00000)
59     Name (CPVD, Zero)
60     Name (SMBS, 0xEFA0)
61     Name (SMBL, 0x20)
62     Name (SRCB, 0xFED1C000)
63     Name (SRCL, 0x4000)
64     Name (PMBS, 0x0400)
65     Name (PMLN, 0x80)
66     Name (SMIP, 0xB2)
67     Name (GPBS, 0x0500)
68     Name (GPLN, 0x40)
69     Name (APCB, 0xFEC00000)
70     Name (APCL, 0x1000)
71     Name (RCRB, 0xFED1C000)
72     Name (RCRL, 0x4000)
73     Name (HPTB, 0xFED00000)
74     Name (HPTC, 0xFED1F404)
75     Name (ASSB, Zero)
76     Name (AOTB, Zero)
77     Name (AAXB, Zero)
78     Name (PEHP, One)
79     Name (SHPC, Zero)
80     Name (PEPM, One)
81     Name (PEER, One)
82     Name (PECS, One)
83     Name (ITKE, Zero)
84     Name (MBEC, 0xFFFF)
85     Name (PEBS, 0xE0000000)
86     Name (PELN, 0x10000000)
87     Name (SRSI, 0xB2)
88     Name (CSMI, 0x61)
89     Name (SP3O, 0x2E)
90     Name (IO4B, 0x0A20)
91     Name (IO4L, 0x20)
92     Name (SP1O, 0x4E)
93     Name (PFDR, 0xFED03034)
94     Name (PMCB, 0xFED03000)
95     Name (PCLK, 0xFED03060)
96     Name (PUNB, 0xFED05000)
97     Name (IBAS, 0xFED08000)
98     Name (MCHB, 0xFED14000)
99     Name (MCHL, 0x4000)
100     Name (EGPB, 0xFED19000)
101     Name (EGPL, 0x1000)
102     Name (DMIB, 0xFED18000)
103     Name (DMIL, 0x1000)
104     Name (IFPB, 0xFED14000)
105     Name (IFPL, 0x1000)
106     Name (FMBL, One)
107     Name (FDTP, 0x02)
108     Name (GCDD, One)
109     Name (DSTA, 0x0A)
110     Name (DSLO, 0x02)
111     Name (DSLC, 0x03)
112     Name (PITS, 0x10)
113     Name (SBCS, 0x12)
114     Name (SALS, 0x13)
115     Name (LSSS, 0x2A)
116     Name (PSSS, 0x2B)
117     Name (SOOT, 0x35)
118     Name (ESCS, 0x48)
119     Name (SDGV, 0x1C)
120     Name (ACPH, 0xDE)
121     Name (FTBL, 0x04)
122     OperationRegion (GNVS, SystemMemory, 0x7BEBAA98, 0x0334)
123     Field (GNVS, AnyAcc, Lock, Preserve)
124     {
125         OSYS,   16, 
126         SMIF,   8, 
127         PRM0,   8, 
128         PRM1,   8, 
129         SCIF,   8, 
130         PRM2,   8, 
131         PRM3,   8, 
132         LCKF,   8, 
133         PRM4,   8, 
134         PRM5,   8, 
135         P80D,   32, 
136         LIDS,   8, 
137         PWRS,   8, 
138         DBGS,   8, 
139         THOF,   8, 
140         Offset (0x15), 
141         PSVT,   8, 
142         TC1V,   8, 
143         TC2V,   8, 
144         TSPV,   8, 
145         CRTT,   8, 
146         DTSE,   8, 
147         DTS1,   8, 
148         DTS2,   8, 
149         DTSF,   8, 
150         BNUM,   8, 
151         B0SC,   8, 
152         B1SC,   8, 
153         B2SC,   8, 
154         B0SS,   8, 
155         B1SS,   8, 
156         B2SS,   8, 
157         Offset (0x28), 
158         APIC,   8, 
159         MPEN,   8, 
160         PCP0,   8, 
161         PCP1,   8, 
162         PPCM,   8, 
163         PPMF,   32, 
164         Offset (0x32), 
165         NATP,   8, 
166         CMAP,   8, 
167         CMBP,   8, 
168         LPTP,   8, 
169         FDCP,   8, 
170         CMCP,   8, 
171         CIRP,   8, 
172         W381,   8, 
173         NPCE,   8, 
174         Offset (0x3C), 
175         IGDS,   8, 
176         TLST,   8, 
177         CADL,   8, 
178         PADL,   8, 
179         CSTE,   16, 
180         NSTE,   16, 
181         SSTE,   16, 
182         NDID,   8, 
183         DID1,   32, 
184         DID2,   32, 
185         DID3,   32, 
186         DID4,   32, 
187         DID5,   32, 
188         KSV0,   32, 
189         KSV1,   8, 
190         Offset (0x67), 
191         BLCS,   8, 
192         BRTL,   8, 
193         ALSE,   8, 
194         ALAF,   8, 
195         LLOW,   8, 
196         LHIH,   8, 
197         Offset (0x6E), 
198         EMAE,   8, 
199         EMAP,   16, 
200         EMAL,   16, 
201         Offset (0x74), 
202         MEFE,   8, 
203         DSTS,   8, 
204         Offset (0x78), 
205         TPMP,   8, 
206         TPME,   8, 
207         MORD,   8, 
208         TCGP,   8, 
209         PPRP,   32, 
210         PPRQ,   8, 
211         LPPR,   8, 
212         GTF0,   56, 
213         GTF2,   56, 
214         IDEM,   8, 
215         GTF1,   56, 
216         Offset (0xAA), 
217         ASLB,   32, 
218         IBTT,   8, 
219         IPAT,   8, 
220         ITVF,   8, 
221         ITVM,   8, 
222         IPSC,   8, 
223         IBLC,   8, 
224         IBIA,   8, 
225         ISSC,   8, 
226         I409,   8, 
227         I509,   8, 
228         I609,   8, 
229         I709,   8, 
230         IDMM,   8, 
231         IDMS,   8, 
232         IF1E,   8, 
233         HVCO,   8, 
234         NXD1,   32, 
235         NXD2,   32, 
236         NXD3,   32, 
237         NXD4,   32, 
238         NXD5,   32, 
239         NXD6,   32, 
240         NXD7,   32, 
241         NXD8,   32, 
242         GSMI,   8, 
243         PAVP,   8, 
244         Offset (0xE1), 
245         OSCC,   8, 
246         NEXP,   8, 
247         Offset (0xEB), 
248         DSEN,   8, 
249         ECON,   8, 
250         GPIC,   8, 
251         CTYP,   8, 
252         L01C,   8, 
253         VFN0,   8, 
254         VFN1,   8, 
255         Offset (0x100), 
256         NVGA,   32, 
257         NVHA,   32, 
258         AMDA,   32, 
259         DID6,   32, 
260         DID7,   32, 
261         DID8,   32, 
262         Offset (0x14C), 
263         USEL,   8, 
264         PU1E,   8, 
265         PU2E,   8, 
266         LPE0,   32, 
267         LPE1,   32, 
268         LPE2,   32, 
269         ACST,   8, 
270         BTST,   8, 
271         PFLV,   8, 
272         Offset (0x15F), 
273         AOAC,   8, 
274         XHCI,   8, 
275         PMEN,   8, 
276         LPEE,   8, 
277         ISPA,   32, 
278         ISPD,   8, 
279         PCIB,   32, 
280         PCIT,   32, 
281         D10A,   32, 
282         D10L,   32, 
283         D11A,   32, 
284         D11L,   32, 
285         P10A,   32, 
286         P10L,   32, 
287         P11A,   32, 
288         P11L,   32, 
289         P20A,   32, 
290         P20L,   32, 
291         P21A,   32, 
292         P21L,   32, 
293         U10A,   32, 
294         U10L,   32, 
295         U11A,   32, 
296         U11L,   32, 
297         U20A,   32, 
298         U20L,   32, 
299         U21A,   32, 
300         U21L,   32, 
301         SP0A,   32, 
302         SP0L,   32, 
303         SP1A,   32, 
304         SP1L,   32, 
305         D20A,   32, 
306         D20L,   32, 
307         D21A,   32, 
308         D21L,   32, 
309         I10A,   32, 
310         I10L,   32, 
311         I11A,   32, 
312         I11L,   32, 
313         I20A,   32, 
314         I20L,   32, 
315         I21A,   32, 
316         I21L,   32, 
317         I30A,   32, 
318         I30L,   32, 
319         I31A,   32, 
320         I31L,   32, 
321         I40A,   32, 
322         I40L,   32, 
323         I41A,   32, 
324         I41L,   32, 
325         I50A,   32, 
326         I50L,   32, 
327         I51A,   32, 
328         I51L,   32, 
329         I60A,   32, 
330         I60L,   32, 
331         I61A,   32, 
332         I61L,   32, 
333         I70A,   32, 
334         I70L,   32, 
335         I71A,   32, 
336         I71L,   32, 
337         EM0A,   32, 
338         EM0L,   32, 
339         EM1A,   32, 
340         EM1L,   32, 
341         SI0A,   32, 
342         SI0L,   32, 
343         SI1A,   32, 
344         SI1L,   32, 
345         SD0A,   32, 
346         SD0L,   32, 
347         SD1A,   32, 
348         SD1L,   32, 
349         MH0A,   32, 
350         MH0L,   32, 
351         MH1A,   32, 
352         MH1L,   32, 
353         OSSL,   8, 
354         Offset (0x294), 
355         DPTE,   8, 
356         THM0,   8, 
357         THM1,   8, 
358         THM2,   8, 
359         THM3,   8, 
360         THM4,   8, 
361         CHGR,   8, 
362         DDSP,   8, 
363         DSOC,   8, 
364         DPSR,   8, 
365         DPCT,   32, 
366         DPPT,   32, 
367         DGC0,   32, 
368         DGP0,   32, 
369         DGC1,   32, 
370         DGP1,   32, 
371         DGC2,   32, 
372         DGP2,   32, 
373         DGC3,   32, 
374         DGP3,   32, 
375         DGC4,   32, 
376         DGP4,   32, 
377         DLPM,   8, 
378         DSC0,   32, 
379         DSC1,   32, 
380         DSC2,   32, 
381         DSC3,   32, 
382         DSC4,   32, 
383         DDBG,   8, 
384         LPOE,   32, 
385         LPPS,   32, 
386         LPST,   32, 
387         LPPC,   32, 
388         LPPF,   32, 
389         DPME,   8, 
390         BCSL,   8, 
391         NFCS,   8, 
392         Offset (0x2FC), 
393         TPMA,   32, 
394         TPML,   32, 
395         ITSA,   8, 
396         S0IX,   8, 
397         SDMD,   8, 
398         EMVR,   8, 
399         BMBD,   32, 
400         USBM,   8, 
401         BDID,   8, 
402         FBID,   8, 
403         OTGM,   8, 
404         STEP,   8, 
405         SOCS,   8, 
406         AMTE,   8, 
407         SCPE,   8, 
408         SARE,   8, 
409         PSSD,   8, 
410         EDPV,   8, 
411         DIDX,   32, 
412         PAVB,   32, 
413         PAVL,   32, 
414         PMID,   8, 
415         PMIS,   8, 
416         ADOS,   8, 
417         MIPS,   8, 
418         WIFS,   8, 
419         BTSL,   8, 
420         GPSS,   8, 
421         RCAS,   8, 
422         FCAS,   8, 
423         CHRS,   8, 
424         FUES,   8, 
425         ALSS,   8, 
426         GYRS,   8, 
427         ACCS,   8, 
428         SARS,   8
429     }
430
431     Method (ADBG, 1, Serialized)
432     {
433         Return (Zero)
434     }
435
436     Name (WAKP, Package (0x02)
437     {
438         Zero, 
439         Zero
440     })
441     Scope (_SB)
442     {
443         Device (RTC0)
444         {
445             Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
446             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
447             {
448                 IO (Decode16,
449                     0x0070,             // Range Minimum
450                     0x0070,             // Range Maximum
451                     0x01,               // Alignment
452                     0x08,               // Length
453                     )
454             })
455         }
456     }
457
458     Scope (_SB)
459     {
460         Device (HPET)
461         {
462             Name (_HID, EisaId ("PNP0103") /* HPET System Timer */)  // _HID: Hardware ID
463             Name (_UID, Zero)  // _UID: Unique ID
464             Method (_STA, 0, NotSerialized)  // _STA: Status
465             {
466                 Return (0x0F)
467             }
468
469             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
470             {
471                 Name (RBUF, ResourceTemplate ()
472                 {
473                     Memory32Fixed (ReadWrite,
474                         0xFED00000,         // Address Base
475                         0x00000400,         // Address Length
476                         )
477                     Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, )
478                     {
479                         0x00000008,
480                     }
481                 })
482                 Return (RBUF) /* \_SB_.HPET._CRS.RBUF */
483             }
484         }
485     }
486
487     Scope (_SB)
488     {
489         Name (PRSA, ResourceTemplate ()
490         {
491             IRQ (Level, ActiveLow, Shared, )
492                 {3,4,5,6,10,11,12,14,15}
493         })
494         Alias (PRSA, PRSB)
495         Alias (PRSA, PRSC)
496         Alias (PRSA, PRSD)
497         Alias (PRSA, PRSE)
498         Alias (PRSA, PRSF)
499         Alias (PRSA, PRSG)
500         Alias (PRSA, PRSH)
501         Name (PR00, Package (0x11)
502         {
503             Package (0x04)
504             {
505                 0x0002FFFF, 
506                 Zero, 
507                 LNKA, 
508                 Zero
509             }, 
510
511             Package (0x04)
512             {
513                 0x0010FFFF, 
514                 Zero, 
515                 LNKA, 
516                 Zero
517             }, 
518
519             Package (0x04)
520             {
521                 0x0011FFFF, 
522                 Zero, 
523                 LNKB, 
524                 Zero
525             }, 
526
527             Package (0x04)
528             {
529                 0x0012FFFF, 
530                 Zero, 
531                 LNKC, 
532                 Zero
533             }, 
534
535             Package (0x04)
536             {
537                 0x0014FFFF, 
538                 Zero, 
539                 LNKE, 
540                 Zero
541             }, 
542
543             Package (0x04)
544             {
545                 0x0015FFFF, 
546                 Zero, 
547                 LNKF, 
548                 Zero
549             }, 
550
551             Package (0x04)
552             {
553                 0x0016FFFF, 
554                 Zero, 
555                 LNKG, 
556                 Zero
557             }, 
558
559             Package (0x04)
560             {
561                 0x0017FFFF, 
562                 Zero, 
563                 LNKH, 
564                 Zero
565             }, 
566
567             Package (0x04)
568             {
569                 0x0018FFFF, 
570                 Zero, 
571                 LNKB, 
572                 Zero
573             }, 
574
575             Package (0x04)
576             {
577                 0x0018FFFF, 
578                 0x02, 
579                 LNKD, 
580                 Zero
581             }, 
582
583             Package (0x04)
584             {
585                 0x0018FFFF, 
586                 0x03, 
587                 LNKC, 
588                 Zero
589             }, 
590
591             Package (0x04)
592             {
593                 0x0018FFFF, 
594                 One, 
595                 LNKA, 
596                 Zero
597             }, 
598
599             Package (0x04)
600             {
601                 0x001DFFFF, 
602                 Zero, 
603                 LNKH, 
604                 Zero
605             }, 
606
607             Package (0x04)
608             {
609                 0x001EFFFF, 
610                 Zero, 
611                 LNKD, 
612                 Zero
613             }, 
614
615             Package (0x04)
616             {
617                 0x001EFFFF, 
618                 0x03, 
619                 LNKA, 
620                 Zero
621             }, 
622
623             Package (0x04)
624             {
625                 0x001EFFFF, 
626                 One, 
627                 LNKB, 
628                 Zero
629             }, 
630
631             Package (0x04)
632             {
633                 0x001EFFFF, 
634                 0x02, 
635                 LNKC, 
636                 Zero
637             }
638         })
639         Name (AR00, Package (0x11)
640         {
641             Package (0x04)
642             {
643                 0x0002FFFF, 
644                 Zero, 
645                 Zero, 
646                 0x10
647             }, 
648
649             Package (0x04)
650             {
651                 0x0010FFFF, 
652                 Zero, 
653                 Zero, 
654                 0x10
655             }, 
656
657             Package (0x04)
658             {
659                 0x0011FFFF, 
660                 Zero, 
661                 Zero, 
662                 0x11
663             }, 
664
665             Package (0x04)
666             {
667                 0x0012FFFF, 
668                 Zero, 
669                 Zero, 
670                 0x12
671             }, 
672
673             Package (0x04)
674             {
675                 0x0014FFFF, 
676                 Zero, 
677                 Zero, 
678                 0x14
679             }, 
680
681             Package (0x04)
682             {
683                 0x0015FFFF, 
684                 Zero, 
685                 Zero, 
686                 0x15
687             }, 
688
689             Package (0x04)
690             {
691                 0x0016FFFF, 
692                 Zero, 
693                 Zero, 
694                 0x16
695             }, 
696
697             Package (0x04)
698             {
699                 0x0017FFFF, 
700                 Zero, 
701                 Zero, 
702                 0x17
703             }, 
704
705             Package (0x04)
706             {
707                 0x0018FFFF, 
708                 Zero, 
709                 Zero, 
710                 0x11
711             }, 
712
713             Package (0x04)
714             {
715                 0x0018FFFF, 
716                 0x02, 
717                 Zero, 
718                 0x13
719             }, 
720
721             Package (0x04)
722             {
723                 0x0018FFFF, 
724                 0x03, 
725                 Zero, 
726                 0x12
727             }, 
728
729             Package (0x04)
730             {
731                 0x0018FFFF, 
732                 One, 
733                 Zero, 
734                 0x10
735             }, 
736
737             Package (0x04)
738             {
739                 0x001DFFFF, 
740                 Zero, 
741                 Zero, 
742                 0x17
743             }, 
744
745             Package (0x04)
746             {
747                 0x001EFFFF, 
748                 Zero, 
749                 Zero, 
750                 0x13
751             }, 
752
753             Package (0x04)
754             {
755                 0x001EFFFF, 
756                 0x03, 
757                 Zero, 
758                 0x10
759             }, 
760
761             Package (0x04)
762             {
763                 0x001EFFFF, 
764                 One, 
765                 Zero, 
766                 0x11
767             }, 
768
769             Package (0x04)
770             {
771                 0x001EFFFF, 
772                 0x02, 
773                 Zero, 
774                 0x12
775             }
776         })
777     }
778
779     Scope (_SB)
780     {
781         Device (PCI0)
782         {
783             Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */)  // _HID: Hardware ID
784             Name (_CID, EisaId ("PNP0A03") /* PCI Bus */)  // _CID: Compatible ID
785             Name (_ADR, Zero)  // _ADR: Address
786             Method (^BN00, 0, NotSerialized)
787             {
788                 Return (Zero)
789             }
790
791             Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
792             {
793                 Return (BN00 ())
794             }
795
796             Name (_UID, Zero)  // _UID: Unique ID
797             Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
798             {
799                 If (PICM)
800                 {
801                     Return (AR00) /* \_SB_.AR00 */
802                 }
803
804                 Return (PR00) /* \_SB_.PR00 */
805             }
806
807             Name (_DEP, Package (0x01)  // _DEP: Dependencies
808             {
809                 PEPD
810             })
811             Device (VLVC)
812             {
813                 Name (_ADR, Zero)  // _ADR: Address
814                 OperationRegion (HBUS, PCI_Config, Zero, 0xFF)
815                 Field (HBUS, DWordAcc, NoLock, Preserve)
816                 {
817                     Offset (0xD0), 
818                     SMCR,   32, 
819                     SMDR,   32, 
820                     MCRX,   32
821                 }
822
823                 Method (RMBR, 2, Serialized)
824                 {
825                     Local0 = ((Arg0 << 0x10) | (Arg1 << 0x08))
826                     SMCR = (0x100000F0 | Local0)
827                     Return (SMDR) /* \_SB_.PCI0.VLVC.SMDR */
828                 }
829
830                 Method (WMBR, 3, Serialized)
831                 {
832                     SMDR = Arg2
833                     Local0 = ((Arg0 << 0x10) | (Arg1 << 0x08))
834                     SMCR = (0x110000F0 | Local0)
835                 }
836             }
837
838             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
839             {
840                 If (TPMP)
841                 {
842                     CreateDWordField (RES0, \_SB.PCI0._Y00._LEN, TPML)  // _LEN: Length
843                     TPML = 0x1000
844                 }
845
846                 CreateDWordField (RES0, \_SB.PCI0._Y01._MIN, ISMN)  // _MIN: Minimum Base Address
847                 CreateDWordField (RES0, \_SB.PCI0._Y01._MAX, ISMX)  // _MAX: Maximum Base Address
848                 CreateDWordField (RES0, \_SB.PCI0._Y01._LEN, ISLN)  // _LEN: Length
849                 If ((ISPD == One))
850                 {
851                     ISMN = ISPA /* \ISPA */
852                     ISMX = (ISMN + ISLN) /* \_SB_.PCI0._CRS.ISLN */
853                     ISMX -= One
854                 }
855                 Else
856                 {
857                     ISMN = Zero
858                     ISMX = Zero
859                     ISLN = Zero
860                 }
861
862                 CreateDWordField (RES0, \_SB.PCI0._Y02._MIN, M1MN)  // _MIN: Minimum Base Address
863                 CreateDWordField (RES0, \_SB.PCI0._Y02._MAX, M1MX)  // _MAX: Maximum Base Address
864                 CreateDWordField (RES0, \_SB.PCI0._Y02._LEN, M1LN)  // _LEN: Length
865                 M1MN = (BMBD & 0xFF000000)
866                 M1MX = PCIT /* \PCIT */
867                 M1LN = ((M1MX - M1MN) + One)
868                 M1MX -= One
869                 CreateDWordField (RES0, \_SB.PCI0._Y03._MIN, GSMN)  // _MIN: Minimum Base Address
870                 CreateDWordField (RES0, \_SB.PCI0._Y03._MAX, GSMX)  // _MAX: Maximum Base Address
871                 CreateDWordField (RES0, \_SB.PCI0._Y03._LEN, GSLN)  // _LEN: Length
872                 GSMN = ^GFX0.GSTM /* \_SB_.PCI0.GFX0.GSTM */
873                 GSLN = (^GFX0.GUMA << 0x19)
874                 GSMX = (GSMN + GSLN) /* \_SB_.PCI0._CRS.GSLN */
875                 GSMX -= One
876                 Return (RES0) /* \_SB_.PCI0.RES0 */
877             }
878
879             Name (RES0, ResourceTemplate ()
880             {
881                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
882                     0x0000,             // Granularity
883                     0x0000,             // Range Minimum
884                     0x00FF,             // Range Maximum
885                     0x0000,             // Translation Offset
886                     0x0100,             // Length
887                     ,, )
888                 IO (Decode16,
889                     0x0070,             // Range Minimum
890                     0x0077,             // Range Maximum
891                     0x01,               // Alignment
892                     0x08,               // Length
893                     )
894                 IO (Decode16,
895                     0x0CF8,             // Range Minimum
896                     0x0CF8,             // Range Maximum
897                     0x01,               // Alignment
898                     0x08,               // Length
899                     )
900                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
901                     0x0000,             // Granularity
902                     0x0000,             // Range Minimum
903                     0x006F,             // Range Maximum
904                     0x0000,             // Translation Offset
905                     0x0070,             // Length
906                     ,, , TypeStatic)
907                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
908                     0x0000,             // Granularity
909                     0x0078,             // Range Minimum
910                     0x0CF7,             // Range Maximum
911                     0x0000,             // Translation Offset
912                     0x0C80,             // Length
913                     ,, , TypeStatic)
914                 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
915                     0x0000,             // Granularity
916                     0x0D00,             // Range Minimum
917                     0xFFFF,             // Range Maximum
918                     0x0000,             // Translation Offset
919                     0xF300,             // Length
920                     ,, , TypeStatic)
921                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
922                     0x00000000,         // Granularity
923                     0x000A0000,         // Range Minimum
924                     0x000BFFFF,         // Range Maximum
925                     0x00000000,         // Translation Offset
926                     0x00020000,         // Length
927                     ,, , AddressRangeMemory, TypeStatic)
928                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
929                     0x00000000,         // Granularity
930                     0x000C0000,         // Range Minimum
931                     0x000DFFFF,         // Range Maximum
932                     0x00000000,         // Translation Offset
933                     0x00020000,         // Length
934                     ,, , AddressRangeMemory, TypeStatic)
935                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
936                     0x00000000,         // Granularity
937                     0x000E0000,         // Range Minimum
938                     0x000FFFFF,         // Range Maximum
939                     0x00000000,         // Translation Offset
940                     0x00020000,         // Length
941                     ,, , AddressRangeMemory, TypeStatic)
942                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
943                     0x00000000,         // Granularity
944                     0x7A000000,         // Range Minimum
945                     0x7A3FFFFF,         // Range Maximum
946                     0x00000000,         // Translation Offset
947                     0x00400000,         // Length
948                     ,, _Y01, AddressRangeMemory, TypeStatic)
949                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
950                     0x00000000,         // Granularity
951                     0x7C000000,         // Range Minimum
952                     0x7FFFFFFF,         // Range Maximum
953                     0x00000000,         // Translation Offset
954                     0x04000000,         // Length
955                     ,, _Y03, AddressRangeMemory, TypeStatic)
956                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
957                     0x00000000,         // Granularity
958                     0x80000000,         // Range Minimum
959                     0xDFFFFFFF,         // Range Maximum
960                     0x00000000,         // Translation Offset
961                     0x60000000,         // Length
962                     ,, _Y02, AddressRangeMemory, TypeStatic)
963                 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
964                     0x00000000,         // Granularity
965                     0xFED40000,         // Range Minimum
966                     0xFED40FFF,         // Range Maximum
967                     0x00000000,         // Translation Offset
968                     0x00001000,         // Length
969                     ,, _Y00, AddressRangeMemory, TypeStatic)
970             })
971             Name (GUID, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)
972             Name (SUPP, Zero)
973             Name (CTRL, Zero)
974             Method (_OSC, 4, Serialized)  // _OSC: Operating System Capabilities
975             {
976                 Local0 = Arg3
977                 CreateDWordField (Local0, Zero, CDW1)
978                 CreateDWordField (Local0, 0x04, CDW2)
979                 CreateDWordField (Local0, 0x08, CDW3)
980                 If (((Arg0 == GUID) && NEXP))
981                 {
982                     SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */
983                     CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */
984                     If (~(CDW1 & One))
985                     {
986                         If ((CTRL & 0x02))
987                         {
988                             NHPG ()
989                         }
990
991                         If ((CTRL & 0x04))
992                         {
993                             NPME ()
994                         }
995                     }
996
997                     If ((Arg1 != One))
998                     {
999                         CDW1 |= 0x08
1000                     }
1001
1002                     If ((CDW3 != CTRL))
1003                     {
1004                         CDW1 |= 0x10
1005                     }
1006
1007                     CDW3 = CTRL /* \_SB_.PCI0.CTRL */
1008                     OSCC = CTRL /* \_SB_.PCI0.CTRL */
1009                     Return (Local0)
1010                 }
1011                 Else
1012                 {
1013                     CDW1 |= 0x04
1014                     Return (Local0)
1015                 }
1016             }
1017
1018             Device (GFX0)
1019             {
1020                 Name (_ADR, 0x00020000)  // _ADR: Address
1021                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
1022                 {
1023                     I2C4, 
1024                     PEPD
1025                 })
1026                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
1027                 {
1028                     Name (SBUF, ResourceTemplate ()
1029                     {
1030                         I2cSerialBus (0x002C, ControllerInitiated, 0x000186A0,
1031                             AddressingMode7Bit, "\\_SB.I2C4",
1032                             0x00, ResourceConsumer, ,
1033                             )
1034                     })
1035                     Return (SBUF) /* \_SB_.PCI0.GFX0._CRS.SBUF */
1036                 }
1037
1038                 Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
1039                 Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
1040                 {
1041                     DSEN = (Arg0 & 0x07)
1042                 }
1043
1044                 Method (_DOD, 0, Serialized)  // _DOD: Display Output Devices
1045                 {
1046                     NDID = Zero
1047                     If ((DIDL != Zero))
1048                     {
1049                         DID1 = SDDL (DIDL)
1050                     }
1051
1052                     If ((DDL2 != Zero))
1053                     {
1054                         DID2 = SDDL (DDL2)
1055                     }
1056
1057                     If ((DDL3 != Zero))
1058                     {
1059                         DID3 = SDDL (DDL3)
1060                     }
1061
1062                     If ((DDL4 != Zero))
1063                     {
1064                         DID4 = SDDL (DDL4)
1065                     }
1066
1067                     If ((DDL5 != Zero))
1068                     {
1069                         DID5 = SDDL (DDL5)
1070                     }
1071
1072                     If ((NDID == One))
1073                     {
1074                         Name (TMP1, Package (0x02)
1075                         {
1076                             0xFFFFFFFF, 
1077                             0xFFFFFFFF
1078                         })
1079                         Index (TMP1, Zero) = (0x00010000 | DID1)
1080                         If ((SOCS < 0x02))
1081                         {
1082                             Index (TMP1, One) = 0x00020F39
1083                         }
1084                         Else
1085                         {
1086                             Index (TMP1, One) = 0x00020F38
1087                         }
1088
1089                         Return (TMP1) /* \_SB_.PCI0.GFX0._DOD.TMP1 */
1090                     }
1091
1092                     If ((NDID == 0x02))
1093                     {
1094                         Name (TMP2, Package (0x03)
1095                         {
1096                             0xFFFFFFFF, 
1097                             0xFFFFFFFF, 
1098                             0xFFFFFFFF
1099                         })
1100                         Index (TMP2, Zero) = (0x00010000 | DID1)
1101                         Index (TMP2, One) = (0x00010000 | DID2)
1102                         If ((SOCS < 0x02))
1103                         {
1104                             Index (TMP2, 0x02) = 0x00020F39
1105                         }
1106                         Else
1107                         {
1108                             Index (TMP2, 0x02) = 0x00020F38
1109                         }
1110
1111                         Return (TMP2) /* \_SB_.PCI0.GFX0._DOD.TMP2 */
1112                     }
1113
1114                     If ((NDID == 0x03))
1115                     {
1116                         Name (TMP3, Package (0x04)
1117                         {
1118                             0xFFFFFFFF, 
1119                             0xFFFFFFFF, 
1120                             0xFFFFFFFF, 
1121                             0xFFFFFFFF
1122                         })
1123                         Index (TMP3, Zero) = (0x00010000 | DID1)
1124                         Index (TMP3, One) = (0x00010000 | DID2)
1125                         Index (TMP3, 0x02) = (0x00010000 | DID3)
1126                         If ((SOCS < 0x02))
1127                         {
1128                             Index (TMP3, 0x03) = 0x00020F39
1129                         }
1130                         Else
1131                         {
1132                             Index (TMP3, 0x03) = 0x00020F38
1133                         }
1134
1135                         Return (TMP3) /* \_SB_.PCI0.GFX0._DOD.TMP3 */
1136                     }
1137
1138                     If ((NDID == 0x04))
1139                     {
1140                         Name (TMP4, Package (0x05)
1141                         {
1142                             0xFFFFFFFF, 
1143                             0xFFFFFFFF, 
1144                             0xFFFFFFFF, 
1145                             0xFFFFFFFF, 
1146                             0xFFFFFFFF
1147                         })
1148                         Index (TMP4, Zero) = (0x00010000 | DID1)
1149                         Index (TMP4, One) = (0x00010000 | DID2)
1150                         Index (TMP4, 0x02) = (0x00010000 | DID3)
1151                         Index (TMP4, 0x03) = (0x00010000 | DID4)
1152                         If ((SOCS < 0x02))
1153                         {
1154                             Index (TMP4, 0x04) = 0x00020F39
1155                         }
1156                         Else
1157                         {
1158                             Index (TMP4, 0x04) = 0x00020F38
1159                         }
1160
1161                         Return (TMP4) /* \_SB_.PCI0.GFX0._DOD.TMP4 */
1162                     }
1163
1164                     If ((NDID > 0x04))
1165                     {
1166                         Name (TMP5, Package (0x06)
1167                         {
1168                             0xFFFFFFFF, 
1169                             0xFFFFFFFF, 
1170                             0xFFFFFFFF, 
1171                             0xFFFFFFFF, 
1172                             0xFFFFFFFF, 
1173                             0xFFFFFFFF
1174                         })
1175                         Index (TMP5, Zero) = (0x00010000 | DID1)
1176                         Index (TMP5, One) = (0x00010000 | DID2)
1177                         Index (TMP5, 0x02) = (0x00010000 | DID3)
1178                         Index (TMP5, 0x03) = (0x00010000 | DID4)
1179                         Index (TMP5, 0x04) = (0x00010000 | DID5)
1180                         If ((SOCS < 0x02))
1181                         {
1182                             Index (TMP5, 0x05) = 0x00020F39
1183                         }
1184                         Else
1185                         {
1186                             Index (TMP5, 0x05) = 0x00020F38
1187                         }
1188
1189                         Return (TMP5) /* \_SB_.PCI0.GFX0._DOD.TMP5 */
1190                     }
1191
1192                     If ((SOCS < 0x02))
1193                     {
1194                         Return (Package (0x02)
1195                         {
1196                             0x0400, 
1197                             0x00020F39
1198                         })
1199                     }
1200                     Else
1201                     {
1202                         Return (Package (0x02)
1203                         {
1204                             0x0400, 
1205                             0x00020F38
1206                         })
1207                     }
1208                 }
1209
1210                 Device (DD01)
1211                 {
1212                     Method (_ADR, 0, Serialized)  // _ADR: Address
1213                     {
1214                         If (((0x0F00 & DID1) == 0x0400))
1215                         {
1216                             EDPV = One
1217                             DIDX = DID1 /* \DID1 */
1218                             Return (One)
1219                         }
1220
1221                         If ((DID1 == Zero))
1222                         {
1223                             Return (One)
1224                         }
1225                         Else
1226                         {
1227                             Return ((0xFFFF & DID1))
1228                         }
1229                     }
1230
1231                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1232                     {
1233                         Return (CDDS (DID1))
1234                     }
1235
1236                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1237                     {
1238                         Return (NDDS (DID1))
1239                     }
1240
1241                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1242                     {
1243                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1244                         {
1245                             CSTE = NSTE /* \NSTE */
1246                         }
1247                     }
1248                 }
1249
1250                 Device (DD02)
1251                 {
1252                     Method (_ADR, 0, Serialized)  // _ADR: Address
1253                     {
1254                         If (((0x0F00 & DID2) == 0x0400))
1255                         {
1256                             EDPV = 0x02
1257                             DIDX = DID2 /* \DID2 */
1258                             Return (0x02)
1259                         }
1260
1261                         If ((DID2 == Zero))
1262                         {
1263                             Return (0x02)
1264                         }
1265                         Else
1266                         {
1267                             Return ((0xFFFF & DID2))
1268                         }
1269                     }
1270
1271                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1272                     {
1273                         Return (CDDS (DID2))
1274                     }
1275
1276                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1277                     {
1278                         Return (NDDS (DID2))
1279                     }
1280
1281                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1282                     {
1283                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1284                         {
1285                             CSTE = NSTE /* \NSTE */
1286                         }
1287                     }
1288                 }
1289
1290                 Device (DD03)
1291                 {
1292                     Method (_ADR, 0, Serialized)  // _ADR: Address
1293                     {
1294                         If (((0x0F00 & DID3) == 0x0400))
1295                         {
1296                             EDPV = 0x03
1297                             DIDX = DID3 /* \DID3 */
1298                             Return (0x03)
1299                         }
1300
1301                         If ((DID3 == Zero))
1302                         {
1303                             Return (0x03)
1304                         }
1305                         Else
1306                         {
1307                             Return ((0xFFFF & DID3))
1308                         }
1309                     }
1310
1311                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1312                     {
1313                         If ((DID3 == Zero))
1314                         {
1315                             Return (0x0B)
1316                         }
1317                         Else
1318                         {
1319                             Return (CDDS (DID3))
1320                         }
1321                     }
1322
1323                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1324                     {
1325                         Return (NDDS (DID3))
1326                     }
1327
1328                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1329                     {
1330                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1331                         {
1332                             CSTE = NSTE /* \NSTE */
1333                         }
1334                     }
1335                 }
1336
1337                 Device (DD04)
1338                 {
1339                     Method (_ADR, 0, Serialized)  // _ADR: Address
1340                     {
1341                         If (((0x0F00 & DID4) == 0x0400))
1342                         {
1343                             EDPV = 0x04
1344                             DIDX = DID4 /* \DID4 */
1345                             Return (0x04)
1346                         }
1347
1348                         If ((DID4 == Zero))
1349                         {
1350                             Return (0x04)
1351                         }
1352                         Else
1353                         {
1354                             Return ((0xFFFF & DID4))
1355                         }
1356                     }
1357
1358                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1359                     {
1360                         If ((DID4 == Zero))
1361                         {
1362                             Return (0x0B)
1363                         }
1364                         Else
1365                         {
1366                             Return (CDDS (DID4))
1367                         }
1368                     }
1369
1370                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1371                     {
1372                         Return (NDDS (DID4))
1373                     }
1374
1375                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1376                     {
1377                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1378                         {
1379                             CSTE = NSTE /* \NSTE */
1380                         }
1381                     }
1382                 }
1383
1384                 Device (DD05)
1385                 {
1386                     Method (_ADR, 0, Serialized)  // _ADR: Address
1387                     {
1388                         If (((0x0F00 & DID5) == 0x0400))
1389                         {
1390                             EDPV = 0x05
1391                             DIDX = DID5 /* \DID5 */
1392                             Return (0x05)
1393                         }
1394
1395                         If ((DID5 == Zero))
1396                         {
1397                             Return (0x05)
1398                         }
1399                         Else
1400                         {
1401                             Return ((0xFFFF & DID5))
1402                         }
1403                     }
1404
1405                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1406                     {
1407                         If ((DID5 == Zero))
1408                         {
1409                             Return (0x0B)
1410                         }
1411                         Else
1412                         {
1413                             Return (CDDS (DID5))
1414                         }
1415                     }
1416
1417                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1418                     {
1419                         Return (NDDS (DID5))
1420                     }
1421
1422                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1423                     {
1424                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1425                         {
1426                             CSTE = NSTE /* \NSTE */
1427                         }
1428                     }
1429                 }
1430
1431                 Device (DD06)
1432                 {
1433                     Method (_ADR, 0, Serialized)  // _ADR: Address
1434                     {
1435                         If (((0x0F00 & DID6) == 0x0400))
1436                         {
1437                             EDPV = 0x06
1438                             DIDX = DID6 /* \DID6 */
1439                             Return (0x06)
1440                         }
1441
1442                         If ((DID6 == Zero))
1443                         {
1444                             Return (0x06)
1445                         }
1446                         Else
1447                         {
1448                             Return ((0xFFFF & DID6))
1449                         }
1450                     }
1451
1452                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1453                     {
1454                         If ((DID6 == Zero))
1455                         {
1456                             Return (0x0B)
1457                         }
1458                         Else
1459                         {
1460                             Return (CDDS (DID6))
1461                         }
1462                     }
1463
1464                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1465                     {
1466                         Return (NDDS (DID6))
1467                     }
1468
1469                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1470                     {
1471                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1472                         {
1473                             CSTE = NSTE /* \NSTE */
1474                         }
1475                     }
1476                 }
1477
1478                 Device (DD07)
1479                 {
1480                     Method (_ADR, 0, Serialized)  // _ADR: Address
1481                     {
1482                         If (((0x0F00 & DID7) == 0x0400))
1483                         {
1484                             EDPV = 0x07
1485                             DIDX = DID7 /* \DID7 */
1486                             Return (0x07)
1487                         }
1488
1489                         If ((DID7 == Zero))
1490                         {
1491                             Return (0x07)
1492                         }
1493                         Else
1494                         {
1495                             Return ((0xFFFF & DID7))
1496                         }
1497                     }
1498
1499                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1500                     {
1501                         If ((DID7 == Zero))
1502                         {
1503                             Return (0x0B)
1504                         }
1505                         Else
1506                         {
1507                             Return (CDDS (DID7))
1508                         }
1509                     }
1510
1511                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1512                     {
1513                         Return (NDDS (DID7))
1514                     }
1515
1516                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1517                     {
1518                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1519                         {
1520                             CSTE = NSTE /* \NSTE */
1521                         }
1522                     }
1523                 }
1524
1525                 Device (DD08)
1526                 {
1527                     Method (_ADR, 0, Serialized)  // _ADR: Address
1528                     {
1529                         If (((0x0F00 & DID8) == 0x0400))
1530                         {
1531                             EDPV = 0x08
1532                             DIDX = DID8 /* \DID8 */
1533                             Return (0x08)
1534                         }
1535
1536                         If ((DID8 == Zero))
1537                         {
1538                             Return (0x08)
1539                         }
1540                         Else
1541                         {
1542                             Return ((0xFFFF & DID8))
1543                         }
1544                     }
1545
1546                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1547                     {
1548                         If ((DID8 == Zero))
1549                         {
1550                             Return (0x0B)
1551                         }
1552                         Else
1553                         {
1554                             Return (CDDS (DID8))
1555                         }
1556                     }
1557
1558                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1559                     {
1560                         Return (NDDS (DID8))
1561                     }
1562
1563                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1564                     {
1565                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1566                         {
1567                             CSTE = NSTE /* \NSTE */
1568                         }
1569                     }
1570                 }
1571
1572                 Device (DD1F)
1573                 {
1574                     Method (_ADR, 0, Serialized)  // _ADR: Address
1575                     {
1576                         If ((EDPV == Zero))
1577                         {
1578                             Return (0x1F)
1579                         }
1580                         Else
1581                         {
1582                             Return ((0xFFFF & DIDX))
1583                         }
1584                     }
1585
1586                     Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
1587                     {
1588                         If ((EDPV == Zero))
1589                         {
1590                             Return (Zero)
1591                         }
1592                         Else
1593                         {
1594                             Return (CDDS (DIDX))
1595                         }
1596                     }
1597
1598                     Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
1599                     {
1600                         Return (NDDS (DIDX))
1601                     }
1602
1603                     Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
1604                     {
1605                         If (((Arg0 & 0xC0000000) == 0xC0000000))
1606                         {
1607                             CSTE = NSTE /* \NSTE */
1608                         }
1609                     }
1610
1611                     Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
1612                     {
1613                         Return (Package (0x67)
1614                         {
1615                             0x50, 
1616                             0x32, 
1617                             Zero, 
1618                             One, 
1619                             0x02, 
1620                             0x03, 
1621                             0x04, 
1622                             0x05, 
1623                             0x06, 
1624                             0x07, 
1625                             0x08, 
1626                             0x09, 
1627                             0x0A, 
1628                             0x0B, 
1629                             0x0C, 
1630                             0x0D, 
1631                             0x0E, 
1632                             0x0F, 
1633                             0x10, 
1634                             0x11, 
1635                             0x12, 
1636                             0x13, 
1637                             0x14, 
1638                             0x15, 
1639                             0x16, 
1640                             0x17, 
1641                             0x18, 
1642                             0x19, 
1643                             0x1A, 
1644                             0x1B, 
1645                             0x1C, 
1646                             0x1D, 
1647                             0x1E, 
1648                             0x1F, 
1649                             0x20, 
1650                             0x21, 
1651                             0x22, 
1652                             0x23, 
1653                             0x24, 
1654                             0x25, 
1655                             0x26, 
1656                             0x27, 
1657                             0x28, 
1658                             0x29, 
1659                             0x2A, 
1660                             0x2B, 
1661                             0x2C, 
1662                             0x2D, 
1663                             0x2E, 
1664                             0x2F, 
1665                             0x30, 
1666                             0x31, 
1667                             0x32, 
1668                             0x33, 
1669                             0x34, 
1670                             0x35, 
1671                             0x36, 
1672                             0x37, 
1673                             0x38, 
1674                             0x39, 
1675                             0x3A, 
1676                             0x3B, 
1677                             0x3C, 
1678                             0x3D, 
1679                             0x3E, 
1680                             0x3F, 
1681                             0x40, 
1682                             0x41, 
1683                             0x42, 
1684                             0x43, 
1685                             0x44, 
1686                             0x45, 
1687                             0x46, 
1688                             0x47, 
1689                             0x48, 
1690                             0x49, 
1691                             0x4A, 
1692                             0x4B, 
1693                             0x4C, 
1694                             0x4D, 
1695                             0x4E, 
1696                             0x4F, 
1697                             0x50, 
1698                             0x51, 
1699                             0x52, 
1700                             0x53, 
1701                             0x54, 
1702                             0x55, 
1703                             0x56, 
1704                             0x57, 
1705                             0x58, 
1706                             0x59, 
1707                             0x5A, 
1708                             0x5B, 
1709                             0x5C, 
1710                             0x5D, 
1711                             0x5E, 
1712                             0x5F, 
1713                             0x60, 
1714                             0x61, 
1715                             0x62, 
1716                             0x63, 
1717                             0x64
1718                         })
1719                     }
1720
1721                     Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
1722                     {
1723                         If (((Arg0 >= Zero) && (Arg0 <= 0x64)))
1724                         {
1725                             AINT (One, Arg0)
1726                             BRTL = Arg0
1727                         }
1728                     }
1729
1730                     Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
1731                     {
1732                         Return (BRTL) /* \BRTL */
1733                     }
1734                 }
1735
1736                 Method (SDDL, 1, NotSerialized)
1737                 {
1738                     NDID++
1739                     Local0 = (Arg0 & 0x0F0F)
1740                     Local1 = (0x80000000 | Local0)
1741                     If ((DIDL == Local0))
1742                     {
1743                         Return (Local1)
1744                     }
1745
1746                     If ((DDL2 == Local0))
1747                     {
1748                         Return (Local1)
1749                     }
1750
1751                     If ((DDL3 == Local0))
1752                     {
1753                         Return (Local1)
1754                     }
1755
1756                     If ((DDL4 == Local0))
1757                     {
1758                         Return (Local1)
1759                     }
1760
1761                     If ((DDL5 == Local0))
1762                     {
1763                         Return (Local1)
1764                     }
1765
1766                     If ((DDL6 == Local0))
1767                     {
1768                         Return (Local1)
1769                     }
1770
1771                     If ((DDL7 == Local0))
1772                     {
1773                         Return (Local1)
1774                     }
1775
1776                     If ((DDL8 == Local0))
1777                     {
1778                         Return (Local1)
1779                     }
1780
1781                     Return (Zero)
1782                 }
1783
1784                 Method (CDDS, 1, NotSerialized)
1785                 {
1786                     Local0 = (Arg0 & 0x0F0F)
1787                     If ((Zero == Local0))
1788                     {
1789                         Return (0x1D)
1790                     }
1791
1792                     If ((CADL == Local0))
1793                     {
1794                         Return (0x1F)
1795                     }
1796
1797                     If ((CAL2 == Local0))
1798                     {
1799                         Return (0x1F)
1800                     }
1801
1802                     If ((CAL3 == Local0))
1803                     {
1804                         Return (0x1F)
1805                     }
1806
1807                     If ((CAL4 == Local0))
1808                     {
1809                         Return (0x1F)
1810                     }
1811
1812                     If ((CAL5 == Local0))
1813                     {
1814                         Return (0x1F)
1815                     }
1816
1817                     If ((CAL6 == Local0))
1818                     {
1819                         Return (0x1F)
1820                     }
1821
1822                     If ((CAL7 == Local0))
1823                     {
1824                         Return (0x1F)
1825                     }
1826
1827                     If ((CAL8 == Local0))
1828                     {
1829                         Return (0x1F)
1830                     }
1831
1832                     Return (0x1D)
1833                 }
1834
1835                 Method (NDDS, 1, NotSerialized)
1836                 {
1837                     Local0 = (Arg0 & 0x0F0F)
1838                     If ((Zero == Local0))
1839                     {
1840                         Return (Zero)
1841                     }
1842
1843                     If ((NADL == Local0))
1844                     {
1845                         Return (One)
1846                     }
1847
1848                     If ((NDL2 == Local0))
1849                     {
1850                         Return (One)
1851                     }
1852
1853                     If ((NDL3 == Local0))
1854                     {
1855                         Return (One)
1856                     }
1857
1858                     If ((NDL4 == Local0))
1859                     {
1860                         Return (One)
1861                     }
1862
1863                     If ((NDL5 == Local0))
1864                     {
1865                         Return (One)
1866                     }
1867
1868                     If ((NDL6 == Local0))
1869                     {
1870                         Return (One)
1871                     }
1872
1873                     If ((NDL7 == Local0))
1874                     {
1875                         Return (One)
1876                     }
1877
1878                     If ((NDL8 == Local0))
1879                     {
1880                         Return (One)
1881                     }
1882
1883                     Return (Zero)
1884                 }
1885
1886                 OperationRegion (IGDP, PCI_Config, Zero, 0x0100)
1887                 Field (IGDP, AnyAcc, NoLock, Preserve)
1888                 {
1889                     Offset (0x10), 
1890                     MADR,   32, 
1891                     Offset (0x50), 
1892                         ,   1, 
1893                     GIVD,   1, 
1894                         ,   1, 
1895                     GUMA,   5, 
1896                     Offset (0x52), 
1897                     Offset (0x54), 
1898                         ,   4, 
1899                     GMFN,   1, 
1900                     Offset (0x58), 
1901                     Offset (0x5C), 
1902                     GSTM,   32, 
1903                     Offset (0xE0), 
1904                     GSSE,   1, 
1905                     GSSB,   14, 
1906                     GSES,   1, 
1907                     Offset (0xE4), 
1908                     ASLE,   8, 
1909                     Offset (0xE8), 
1910                     Offset (0xFC), 
1911                     ASLS,   32
1912                 }
1913
1914                 OperationRegion (IGMM, SystemMemory, MADR, 0x3000)
1915                 Field (IGMM, AnyAcc, NoLock, Preserve)
1916                 {
1917                     Offset (0x20C8), 
1918                         ,   4, 
1919                     DCFE,   4
1920                 }
1921
1922                 OperationRegion (IGDM, SystemMemory, ASLB, 0x2000)
1923                 Field (IGDM, AnyAcc, NoLock, Preserve)
1924                 {
1925                     SIGN,   128, 
1926                     SIZE,   32, 
1927                     OVER,   32, 
1928                     SVER,   256, 
1929                     VVER,   128, 
1930                     GVER,   128, 
1931                     MBOX,   32, 
1932                     DMOD,   32, 
1933                     Offset (0x100), 
1934                     DRDY,   32, 
1935                     CSTS,   32, 
1936                     CEVT,   32, 
1937                     Offset (0x120), 
1938                     DIDL,   32, 
1939                     DDL2,   32, 
1940                     DDL3,   32, 
1941                     DDL4,   32, 
1942                     DDL5,   32, 
1943                     DDL6,   32, 
1944                     DDL7,   32, 
1945                     DDL8,   32, 
1946                     CPDL,   32, 
1947                     CPL2,   32, 
1948                     CPL3,   32, 
1949                     CPL4,   32, 
1950                     CPL5,   32, 
1951                     CPL6,   32, 
1952                     CPL7,   32, 
1953                     CPL8,   32, 
1954                     CAD1,   32, 
1955                     CAL2,   32, 
1956                     CAL3,   32, 
1957                     CAL4,   32, 
1958                     CAL5,   32, 
1959                     CAL6,   32, 
1960                     CAL7,   32, 
1961                     CAL8,   32, 
1962                     NADL,   32, 
1963                     NDL2,   32, 
1964                     NDL3,   32, 
1965                     NDL4,   32, 
1966                     NDL5,   32, 
1967                     NDL6,   32, 
1968                     NDL7,   32, 
1969                     NDL8,   32, 
1970                     ASLP,   32, 
1971                     TIDX,   32, 
1972                     CHPD,   32, 
1973                     CLID,   32, 
1974                     CDCK,   32, 
1975                     SXSW,   32, 
1976                     EVTS,   32, 
1977                     CNOT,   32, 
1978                     NRDY,   32, 
1979                     Offset (0x200), 
1980                     SCIE,   1, 
1981                     GEFC,   4, 
1982                     GXFC,   3, 
1983                     GESF,   8, 
1984                     Offset (0x204), 
1985                     PARM,   32, 
1986                     DSLP,   32, 
1987                     Offset (0x300), 
1988                     ARDY,   32, 
1989                     ASLC,   32, 
1990                     TCHE,   32, 
1991                     ALSI,   32, 
1992                     BCLP,   32, 
1993                     PFIT,   32, 
1994                     CBLV,   32, 
1995                     BCLM,   320, 
1996                     CPFM,   32, 
1997                     EPFM,   32, 
1998                     PLUT,   592, 
1999                     PFMB,   32, 
2000                     CCDV,   32, 
2001                     PCFT,   32, 
2002                     Offset (0x400), 
2003                     GVD1,   49152, 
2004                     PHED,   32, 
2005                     BDDC,   2048
2006                 }
2007
2008                 Name (DBTB, Package (0x15)
2009                 {
2010                     Zero, 
2011                     0x07, 
2012                     0x38, 
2013                     0x01C0, 
2014                     0x0E00, 
2015                     0x3F, 
2016                     0x01C7, 
2017                     0x0E07, 
2018                     0x01F8, 
2019                     0x0E38, 
2020                     0x0FC0, 
2021                     Zero, 
2022                     Zero, 
2023                     Zero, 
2024                     Zero, 
2025                     Zero, 
2026                     0x7000, 
2027                     0x7007, 
2028                     0x7038, 
2029                     0x71C0, 
2030                     0x7E00
2031                 })
2032                 Name (CDCT, Package (0x06)
2033                 {
2034                     Package (0x01)
2035                     {
2036                         0xA0
2037                     }, 
2038
2039                     Package (0x01)
2040                     {
2041                         0xC8
2042                     }, 
2043
2044                     Package (0x01)
2045                     {
2046                         0x010B
2047                     }, 
2048
2049                     Package (0x01)
2050                     {
2051                         0x0140
2052                     }, 
2053
2054                     Package (0x01)
2055                     {
2056                         0x0164
2057                     }, 
2058
2059                     Package (0x01)
2060                     {
2061                         0x0190
2062                     }
2063                 })
2064                 Name (SUCC, One)
2065                 Name (NVLD, 0x02)
2066                 Name (CRIT, 0x04)
2067                 Name (NCRT, 0x06)
2068                 Method (GSCI, 0, Serialized)
2069                 {
2070                     Method (GBDA, 0, Serialized)
2071                     {
2072                         If ((GESF == Zero))
2073                         {
2074                             PARM = 0x0279
2075                             GESF = Zero
2076                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2077                         }
2078
2079                         If ((GESF == One))
2080                         {
2081                             PARM = 0x0240
2082                             GESF = Zero
2083                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2084                         }
2085
2086                         If ((GESF == 0x04))
2087                         {
2088                             PARM &= 0xEFFF0000
2089                             PARM &= (DerefOf (Index (DBTB, IBTT)) << 0x10)
2090                             PARM |= IBTT /* \_SB_.PCI0.GFX0.PARM */
2091                             GESF = Zero
2092                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2093                         }
2094
2095                         If ((GESF == 0x05))
2096                         {
2097                             PARM = IPSC /* \IPSC */
2098                             PARM |= (IPAT << 0x08)
2099                             PARM += 0x0100
2100                             PARM |= (LIDS << 0x10)
2101                             PARM += 0x00010000
2102                             PARM |= (IBLC << 0x12)
2103                             PARM |= (IBIA << 0x14)
2104                             GESF = Zero
2105                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2106                         }
2107
2108                         If ((GESF == 0x06))
2109                         {
2110                             PARM = ITVF /* \ITVF */
2111                             PARM |= (ITVM << 0x04)
2112                             GESF = Zero
2113                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2114                         }
2115
2116                         If ((GESF == 0x07))
2117                         {
2118                             PARM = GIVD /* \_SB_.PCI0.GFX0.GIVD */
2119                             PARM ^= One
2120                             PARM |= (GMFN << One)
2121                             PARM |= 0x1800
2122                             PARM |= (IDMS << 0x11)
2123                             PARM |= (DerefOf (Index (CDCT, DCFE)) << 0x15) /* \_SB_.PCI0.GFX0.PARM */
2124                             GESF = One
2125                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2126                         }
2127
2128                         If ((GESF == 0x0A))
2129                         {
2130                             PARM = Zero
2131                             If (ISSC)
2132                             {
2133                                 PARM |= 0x03
2134                             }
2135
2136                             GESF = Zero
2137                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2138                         }
2139
2140                         GESF = Zero
2141                         Return (CRIT) /* \_SB_.PCI0.GFX0.CRIT */
2142                     }
2143
2144                     Method (SBCB, 0, Serialized)
2145                     {
2146                         If ((GESF == Zero))
2147                         {
2148                             PARM = Zero
2149                             If ((PFLV == FMBL))
2150                             {
2151                                 PARM = 0x000F87FD
2152                             }
2153
2154                             If ((PFLV == FDTP))
2155                             {
2156                                 PARM = 0x000F87BD
2157                             }
2158
2159                             GESF = Zero
2160                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2161                         }
2162
2163                         If ((GESF == One))
2164                         {
2165                             GESF = Zero
2166                             PARM = Zero
2167                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2168                         }
2169
2170                         If ((GESF == 0x03))
2171                         {
2172                             GESF = Zero
2173                             PARM = Zero
2174                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2175                         }
2176
2177                         If ((GESF == 0x04))
2178                         {
2179                             GESF = Zero
2180                             PARM = Zero
2181                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2182                         }
2183
2184                         If ((GESF == 0x05))
2185                         {
2186                             GESF = Zero
2187                             PARM = Zero
2188                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2189                         }
2190
2191                         If ((GESF == 0x06))
2192                         {
2193                             ITVF = (PARM & 0x0F)
2194                             ITVM = ((PARM & 0xF0) >> 0x04)
2195                             GESF = Zero
2196                             PARM = Zero
2197                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2198                         }
2199
2200                         If ((GESF == 0x07))
2201                         {
2202                             If ((PARM == Zero))
2203                             {
2204                                 Local0 = CLID /* \_SB_.PCI0.GFX0.CLID */
2205                                 If ((0x80000000 & Local0))
2206                                 {
2207                                     CLID &= 0x0F
2208                                     GLID (CLID)
2209                                 }
2210                             }
2211
2212                             GESF = Zero
2213                             PARM = Zero
2214                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2215                         }
2216
2217                         If ((GESF == 0x08))
2218                         {
2219                             GESF = Zero
2220                             PARM = Zero
2221                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2222                         }
2223
2224                         If ((GESF == 0x09))
2225                         {
2226                             IBTT = (PARM & 0xFF)
2227                             GESF = Zero
2228                             PARM = Zero
2229                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2230                         }
2231
2232                         If ((GESF == 0x0A))
2233                         {
2234                             IPSC = (PARM & 0xFF)
2235                             If (((PARM >> 0x08) & 0xFF))
2236                             {
2237                                 IPAT = ((PARM >> 0x08) & 0xFF)
2238                                 IPAT--
2239                             }
2240
2241                             IBLC = ((PARM >> 0x12) & 0x03)
2242                             IBIA = ((PARM >> 0x14) & 0x07)
2243                             GESF = Zero
2244                             PARM = Zero
2245                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2246                         }
2247
2248                         If ((GESF == 0x0B))
2249                         {
2250                             IF1E = ((PARM >> One) & One)
2251                             IDMS = ((PARM >> 0x11) & 0x0F)
2252                             GESF = Zero
2253                             PARM = Zero
2254                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2255                         }
2256
2257                         If ((GESF == 0x10))
2258                         {
2259                             GESF = Zero
2260                             PARM = Zero
2261                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2262                         }
2263
2264                         If ((GESF == 0x11))
2265                         {
2266                             PARM = (LIDS << 0x08)
2267                             PARM += 0x0100
2268                             GESF = Zero
2269                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2270                         }
2271
2272                         If ((GESF == 0x12))
2273                         {
2274                             If ((PARM & One))
2275                             {
2276                                 If (((PARM >> One) == One))
2277                                 {
2278                                     ISSC = One
2279                                 }
2280                                 Else
2281                                 {
2282                                     GESF = Zero
2283                                     Return (CRIT) /* \_SB_.PCI0.GFX0.CRIT */
2284                                 }
2285                             }
2286                             Else
2287                             {
2288                                 ISSC = Zero
2289                             }
2290
2291                             GESF = Zero
2292                             PARM = Zero
2293                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2294                         }
2295
2296                         If ((GESF == 0x13))
2297                         {
2298                             GESF = Zero
2299                             PARM = Zero
2300                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2301                         }
2302
2303                         If ((GESF == 0x14))
2304                         {
2305                             PAVP = (PARM & 0x0F)
2306                             GESF = Zero
2307                             PARM = Zero
2308                             Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2309                         }
2310
2311                         GESF = Zero
2312                         Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */
2313                     }
2314
2315                     If ((GEFC == 0x04))
2316                     {
2317                         GXFC = GBDA ()
2318                     }
2319
2320                     If ((GEFC == 0x06))
2321                     {
2322                         GXFC = SBCB ()
2323                     }
2324
2325                     GEFC = Zero
2326                     SCIS = One
2327                     GSSE = Zero
2328                     SCIE = Zero
2329                     Return (Zero)
2330                 }
2331
2332                 Method (PDRD, 0, NotSerialized)
2333                 {
2334                     If (!DRDY)
2335                     {
2336                         Sleep (ASLP)
2337                     }
2338
2339                     Return (!DRDY)
2340                 }
2341
2342                 Method (PSTS, 0, NotSerialized)
2343                 {
2344                     If ((CSTS > 0x02))
2345                     {
2346                         Sleep (ASLP)
2347                     }
2348
2349                     Return ((CSTS == 0x03))
2350                 }
2351
2352                 Method (GNOT, 2, NotSerialized)
2353                 {
2354                     If (PDRD ())
2355                     {
2356                         Return (One)
2357                     }
2358
2359                     CEVT = Arg0
2360                     CSTS = 0x03
2361                     If (((CHPD == Zero) && (Arg1 == Zero)))
2362                     {
2363                         If (((OSYS > 0x07D0) || (OSYS < 0x07D6)))
2364                         {
2365                             Notify (PCI0, Arg1)
2366                         }
2367                         Else
2368                         {
2369                             Notify (GFX0, Arg1)
2370                         }
2371                     }
2372
2373                     Notify (GFX0, 0x80) // Status Change
2374                     Return (Zero)
2375                 }
2376
2377                 Method (GHDS, 1, NotSerialized)
2378                 {
2379                     TIDX = Arg0
2380                     Return (GNOT (One, Zero))
2381                 }
2382
2383                 Method (GLID, 1, NotSerialized)
2384                 {
2385                     CLID = Arg0
2386                     Return (GNOT (0x02, Zero))
2387                 }
2388
2389                 Method (GDCK, 1, NotSerialized)
2390                 {
2391                     CDCK = Arg0
2392                     Return (GNOT (0x04, Zero))
2393                 }
2394
2395                 Method (PARD, 0, NotSerialized)
2396                 {
2397                     If (!ARDY)
2398                     {
2399                         Sleep (ASLP)
2400                     }
2401
2402                     Return (!ARDY)
2403                 }
2404
2405                 Method (AINT, 2, NotSerialized)
2406                 {
2407                     If (!(TCHE & (One << Arg0)))
2408                     {
2409                         Return (One)
2410                     }
2411
2412                     If (PARD ())
2413                     {
2414                         Return (One)
2415                     }
2416
2417                     If ((Arg0 == 0x02))
2418                     {
2419                         If (CPFM)
2420                         {
2421                             Local0 = (CPFM & 0x0F)
2422                             Local1 = (EPFM & 0x0F)
2423                             If ((Local0 == One))
2424                             {
2425                                 If ((Local1 & 0x06))
2426                                 {
2427                                     PFIT = 0x06
2428                                 }
2429                                 Else
2430                                 {
2431                                     If ((Local1 & 0x08))
2432                                     {
2433                                         PFIT = 0x08
2434                                     }
2435                                     Else
2436                                     {
2437                                         PFIT = One
2438                                     }
2439                                 }
2440                             }
2441
2442                             If ((Local0 == 0x06))
2443                             {
2444                                 If ((Local1 & 0x08))
2445                                 {
2446                                     PFIT = 0x08
2447                                 }
2448                                 Else
2449                                 {
2450                                     If ((Local1 & One))
2451                                     {
2452                                         PFIT = One
2453                                     }
2454                                     Else
2455                                     {
2456                                         PFIT = 0x06
2457                                     }
2458                                 }
2459                             }
2460
2461                             If ((Local0 == 0x08))
2462                             {
2463                                 If ((Local1 & One))
2464                                 {
2465                                     PFIT = One
2466                                 }
2467                                 Else
2468                                 {
2469                                     If ((Local1 & 0x06))
2470                                     {
2471                                         PFIT = 0x06
2472                                     }
2473                                     Else
2474                                     {
2475                                         PFIT = 0x08
2476                                     }
2477                                 }
2478                             }
2479                         }
2480                         Else
2481                         {
2482                             PFIT ^= 0x07
2483                         }
2484
2485                         PFIT |= 0x80000000
2486                         ASLC = 0x04
2487                     }
2488                     Else
2489                     {
2490                         If ((Arg0 == One))
2491                         {
2492                             BCLP = ((Arg1 * 0xFF) / 0x64)
2493                             BCLP |= 0x80000000
2494                             ASLC = 0x02
2495                         }
2496                         Else
2497                         {
2498                             If ((Arg0 == Zero))
2499                             {
2500                                 ALSI = Arg1
2501                                 ASLC = One
2502                             }
2503                             Else
2504                             {
2505                                 Return (One)
2506                             }
2507                         }
2508                     }
2509
2510                     ASLE = One
2511                     Return (Zero)
2512                 }
2513
2514                 Method (SCIP, 0, NotSerialized)
2515                 {
2516                     If ((OVER != Zero))
2517                     {
2518                         Return (!GSMI)
2519                     }
2520
2521                     Return (Zero)
2522                 }
2523
2524                 Device (ISP0)
2525                 {
2526                     Name (_ADR, 0x0F38)  // _ADR: Address
2527                     Name (_DDN, "VLV2 ISP - 80860F38")  // _DDN: DOS Device Name
2528                     Name (_UID, One)  // _UID: Unique ID
2529                     Name (_DEP, Package (0x01)  // _DEP: Dependencies
2530                     {
2531                         PEPD
2532                     })
2533                     Method (_STA, 0, NotSerialized)  // _STA: Status
2534                     {
2535                         If ((OSSL & 0x80))
2536                         {
2537                             Return (Zero)
2538                         }
2539
2540                         If ((SOCS >= 0x02))
2541                         {
2542                             If ((ISPD == One))
2543                             {
2544                                 Return (0x0F)
2545                             }
2546                             Else
2547                             {
2548                                 Return (Zero)
2549                             }
2550                         }
2551                         Else
2552                         {
2553                             _ADR = 0x0F39
2554                             _DDN = "VLV2 ISP - 80860F39"
2555                             If ((ISPD == One))
2556                             {
2557                                 Return (0x0F)
2558                             }
2559                             Else
2560                             {
2561                                 Return (Zero)
2562                             }
2563                         }
2564                     }
2565
2566                     Name (SBUF, ResourceTemplate ()
2567                     {
2568                         Memory32Fixed (ReadWrite,
2569                             0x00000000,         // Address Base
2570                             0x00400000,         // Address Length
2571                             )
2572                     })
2573                     Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
2574                     {
2575                         Return (SBUF) /* \_SB_.PCI0.GFX0.ISP0.SBUF */
2576                     }
2577
2578                     Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
2579                     {
2580                     }
2581
2582                     Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
2583                     {
2584                     }
2585
2586                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
2587                     {
2588                         If ((Arg0 == One))
2589                         {
2590                             Return (One)
2591                         }
2592                         Else
2593                         {
2594                             If ((Arg0 == 0x02))
2595                             {
2596                                 Return (0x02)
2597                             }
2598                             Else
2599                             {
2600                                 Return (0x0F)
2601                             }
2602                         }
2603                     }
2604                 }
2605             }
2606
2607             Device (LPCB)
2608             {
2609                 Name (_ADR, 0x001F0000)  // _ADR: Address
2610                 Scope (\_SB)
2611                 {
2612                     OperationRegion (ILBR, SystemMemory, IBAS, 0x8C)
2613                     Field (ILBR, AnyAcc, NoLock, Preserve)
2614                     {
2615                         Offset (0x08), 
2616                         PARC,   8, 
2617                         PBRC,   8, 
2618                         PCRC,   8, 
2619                         PDRC,   8, 
2620                         PERC,   8, 
2621                         PFRC,   8, 
2622                         PGRC,   8, 
2623                         PHRC,   8, 
2624                         Offset (0x88), 
2625                             ,   3, 
2626                         UI3E,   1, 
2627                         UI4E,   1
2628                     }
2629
2630                     Device (LNKA)
2631                     {
2632                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2633                         Name (_UID, One)  // _UID: Unique ID
2634                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2635                         {
2636                             PARC |= 0x80
2637                         }
2638
2639                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2640                         {
2641                             Return (PRSA) /* \_SB_.PRSA */
2642                         }
2643
2644                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2645                         {
2646                             Name (RTLA, ResourceTemplate ()
2647                             {
2648                                 IRQ (Level, ActiveLow, Shared, )
2649                                     {}
2650                             })
2651                             CreateWordField (RTLA, One, IRQ0)
2652                             IRQ0 = Zero
2653                             IRQ0 = (One << (PARC & 0x0F))
2654                             Return (RTLA) /* \_SB_.LNKA._CRS.RTLA */
2655                         }
2656
2657                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2658                         {
2659                             CreateWordField (Arg0, One, IRQ0)
2660                             FindSetRightBit (IRQ0, Local0)
2661                             Local0--
2662                             PARC = Local0
2663                         }
2664
2665                         Method (_STA, 0, Serialized)  // _STA: Status
2666                         {
2667                             If ((PARC & 0x80))
2668                             {
2669                                 Return (0x09)
2670                             }
2671                             Else
2672                             {
2673                                 Return (0x0B)
2674                             }
2675                         }
2676                     }
2677
2678                     Device (LNKB)
2679                     {
2680                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2681                         Name (_UID, 0x02)  // _UID: Unique ID
2682                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2683                         {
2684                             PBRC |= 0x80
2685                         }
2686
2687                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2688                         {
2689                             Return (PRSB) /* \_SB_.PRSB */
2690                         }
2691
2692                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2693                         {
2694                             Name (RTLB, ResourceTemplate ()
2695                             {
2696                                 IRQ (Level, ActiveLow, Shared, )
2697                                     {}
2698                             })
2699                             CreateWordField (RTLB, One, IRQ0)
2700                             IRQ0 = Zero
2701                             IRQ0 = (One << (PBRC & 0x0F))
2702                             Return (RTLB) /* \_SB_.LNKB._CRS.RTLB */
2703                         }
2704
2705                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2706                         {
2707                             CreateWordField (Arg0, One, IRQ0)
2708                             FindSetRightBit (IRQ0, Local0)
2709                             Local0--
2710                             PBRC = Local0
2711                         }
2712
2713                         Method (_STA, 0, Serialized)  // _STA: Status
2714                         {
2715                             If ((PBRC & 0x80))
2716                             {
2717                                 Return (0x09)
2718                             }
2719                             Else
2720                             {
2721                                 Return (0x0B)
2722                             }
2723                         }
2724                     }
2725
2726                     Device (LNKC)
2727                     {
2728                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2729                         Name (_UID, 0x03)  // _UID: Unique ID
2730                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2731                         {
2732                             PCRC |= 0x80
2733                         }
2734
2735                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2736                         {
2737                             Return (PRSC) /* \_SB_.PRSC */
2738                         }
2739
2740                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2741                         {
2742                             Name (RTLC, ResourceTemplate ()
2743                             {
2744                                 IRQ (Level, ActiveLow, Shared, )
2745                                     {}
2746                             })
2747                             CreateWordField (RTLC, One, IRQ0)
2748                             IRQ0 = Zero
2749                             IRQ0 = (One << (PCRC & 0x0F))
2750                             Return (RTLC) /* \_SB_.LNKC._CRS.RTLC */
2751                         }
2752
2753                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2754                         {
2755                             CreateWordField (Arg0, One, IRQ0)
2756                             FindSetRightBit (IRQ0, Local0)
2757                             Local0--
2758                             PCRC = Local0
2759                         }
2760
2761                         Method (_STA, 0, Serialized)  // _STA: Status
2762                         {
2763                             If ((PCRC & 0x80))
2764                             {
2765                                 Return (0x09)
2766                             }
2767                             Else
2768                             {
2769                                 Return (0x0B)
2770                             }
2771                         }
2772                     }
2773
2774                     Device (LNKD)
2775                     {
2776                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2777                         Name (_UID, 0x04)  // _UID: Unique ID
2778                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2779                         {
2780                             PDRC |= 0x80
2781                         }
2782
2783                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2784                         {
2785                             Return (PRSD) /* \_SB_.PRSD */
2786                         }
2787
2788                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2789                         {
2790                             Name (RTLD, ResourceTemplate ()
2791                             {
2792                                 IRQ (Level, ActiveLow, Shared, )
2793                                     {}
2794                             })
2795                             CreateWordField (RTLD, One, IRQ0)
2796                             IRQ0 = Zero
2797                             IRQ0 = (One << (PDRC & 0x0F))
2798                             Return (RTLD) /* \_SB_.LNKD._CRS.RTLD */
2799                         }
2800
2801                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2802                         {
2803                             CreateWordField (Arg0, One, IRQ0)
2804                             FindSetRightBit (IRQ0, Local0)
2805                             Local0--
2806                             PDRC = Local0
2807                         }
2808
2809                         Method (_STA, 0, Serialized)  // _STA: Status
2810                         {
2811                             If ((PDRC & 0x80))
2812                             {
2813                                 Return (0x09)
2814                             }
2815                             Else
2816                             {
2817                                 Return (0x0B)
2818                             }
2819                         }
2820                     }
2821
2822                     Device (LNKE)
2823                     {
2824                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2825                         Name (_UID, 0x05)  // _UID: Unique ID
2826                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2827                         {
2828                             PERC |= 0x80
2829                         }
2830
2831                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2832                         {
2833                             Return (PRSE) /* \_SB_.PRSE */
2834                         }
2835
2836                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2837                         {
2838                             Name (RTLE, ResourceTemplate ()
2839                             {
2840                                 IRQ (Level, ActiveLow, Shared, )
2841                                     {}
2842                             })
2843                             CreateWordField (RTLE, One, IRQ0)
2844                             IRQ0 = Zero
2845                             IRQ0 = (One << (PERC & 0x0F))
2846                             Return (RTLE) /* \_SB_.LNKE._CRS.RTLE */
2847                         }
2848
2849                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2850                         {
2851                             CreateWordField (Arg0, One, IRQ0)
2852                             FindSetRightBit (IRQ0, Local0)
2853                             Local0--
2854                             PERC = Local0
2855                         }
2856
2857                         Method (_STA, 0, Serialized)  // _STA: Status
2858                         {
2859                             If ((PERC & 0x80))
2860                             {
2861                                 Return (0x09)
2862                             }
2863                             Else
2864                             {
2865                                 Return (0x0B)
2866                             }
2867                         }
2868                     }
2869
2870                     Device (LNKF)
2871                     {
2872                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2873                         Name (_UID, 0x06)  // _UID: Unique ID
2874                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2875                         {
2876                             PFRC |= 0x80
2877                         }
2878
2879                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2880                         {
2881                             Return (PRSF) /* \_SB_.PRSF */
2882                         }
2883
2884                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2885                         {
2886                             Name (RTLF, ResourceTemplate ()
2887                             {
2888                                 IRQ (Level, ActiveLow, Shared, )
2889                                     {}
2890                             })
2891                             CreateWordField (RTLF, One, IRQ0)
2892                             IRQ0 = Zero
2893                             IRQ0 = (One << (PFRC & 0x0F))
2894                             Return (RTLF) /* \_SB_.LNKF._CRS.RTLF */
2895                         }
2896
2897                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2898                         {
2899                             CreateWordField (Arg0, One, IRQ0)
2900                             FindSetRightBit (IRQ0, Local0)
2901                             Local0--
2902                             PFRC = Local0
2903                         }
2904
2905                         Method (_STA, 0, Serialized)  // _STA: Status
2906                         {
2907                             If ((PFRC & 0x80))
2908                             {
2909                                 Return (0x09)
2910                             }
2911                             Else
2912                             {
2913                                 Return (0x0B)
2914                             }
2915                         }
2916                     }
2917
2918                     Device (LNKG)
2919                     {
2920                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2921                         Name (_UID, 0x07)  // _UID: Unique ID
2922                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2923                         {
2924                             PGRC |= 0x80
2925                         }
2926
2927                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2928                         {
2929                             Return (PRSG) /* \_SB_.PRSG */
2930                         }
2931
2932                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2933                         {
2934                             Name (RTLG, ResourceTemplate ()
2935                             {
2936                                 IRQ (Level, ActiveLow, Shared, )
2937                                     {}
2938                             })
2939                             CreateWordField (RTLG, One, IRQ0)
2940                             IRQ0 = Zero
2941                             IRQ0 = (One << (PGRC & 0x0F))
2942                             Return (RTLG) /* \_SB_.LNKG._CRS.RTLG */
2943                         }
2944
2945                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2946                         {
2947                             CreateWordField (Arg0, One, IRQ0)
2948                             FindSetRightBit (IRQ0, Local0)
2949                             Local0--
2950                             PGRC = Local0
2951                         }
2952
2953                         Method (_STA, 0, Serialized)  // _STA: Status
2954                         {
2955                             If ((PGRC & 0x80))
2956                             {
2957                                 Return (0x09)
2958                             }
2959                             Else
2960                             {
2961                                 Return (0x0B)
2962                             }
2963                         }
2964                     }
2965
2966                     Device (LNKH)
2967                     {
2968                         Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */)  // _HID: Hardware ID
2969                         Name (_UID, 0x08)  // _UID: Unique ID
2970                         Method (_DIS, 0, Serialized)  // _DIS: Disable Device
2971                         {
2972                             PHRC |= 0x80
2973                         }
2974
2975                         Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
2976                         {
2977                             Return (PRSH) /* \_SB_.PRSH */
2978                         }
2979
2980                         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
2981                         {
2982                             Name (RTLH, ResourceTemplate ()
2983                             {
2984                                 IRQ (Level, ActiveLow, Shared, )
2985                                     {}
2986                             })
2987                             CreateWordField (RTLH, One, IRQ0)
2988                             IRQ0 = Zero
2989                             IRQ0 = (One << (PHRC & 0x0F))
2990                             Return (RTLH) /* \_SB_.LNKH._CRS.RTLH */
2991                         }
2992
2993                         Method (_SRS, 1, Serialized)  // _SRS: Set Resource Settings
2994                         {
2995                             CreateWordField (Arg0, One, IRQ0)
2996                             FindSetRightBit (IRQ0, Local0)
2997                             Local0--
2998                             PHRC = Local0
2999                         }
3000
3001                         Method (_STA, 0, Serialized)  // _STA: Status
3002                         {
3003                             If ((PHRC & 0x80))
3004                             {
3005                                 Return (0x09)
3006                             }
3007                             Else
3008                             {
3009                                 Return (0x0B)
3010                             }
3011                         }
3012                     }
3013                 }
3014
3015                 OperationRegion (LPC0, PCI_Config, Zero, 0xC0)
3016                 Field (LPC0, AnyAcc, NoLock, Preserve)
3017                 {
3018                     Offset (0x08), 
3019                     SRID,   8, 
3020                     Offset (0x80), 
3021                     C1EN,   1, 
3022                     Offset (0x84)
3023                 }
3024
3025                 Device (FWHD)
3026                 {
3027                     Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */)  // _HID: Hardware ID
3028                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3029                     {
3030                         Memory32Fixed (ReadOnly,
3031                             0xFF000000,         // Address Base
3032                             0x01000000,         // Address Length
3033                             )
3034                     })
3035                 }
3036
3037                 Device (IPIC)
3038                 {
3039                     Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */)  // _HID: Hardware ID
3040                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3041                     {
3042                         IO (Decode16,
3043                             0x0020,             // Range Minimum
3044                             0x0020,             // Range Maximum
3045                             0x01,               // Alignment
3046                             0x02,               // Length
3047                             )
3048                         IO (Decode16,
3049                             0x0024,             // Range Minimum
3050                             0x0024,             // Range Maximum
3051                             0x01,               // Alignment
3052                             0x02,               // Length
3053                             )
3054                         IO (Decode16,
3055                             0x0028,             // Range Minimum
3056                             0x0028,             // Range Maximum
3057                             0x01,               // Alignment
3058                             0x02,               // Length
3059                             )
3060                         IO (Decode16,
3061                             0x002C,             // Range Minimum
3062                             0x002C,             // Range Maximum
3063                             0x01,               // Alignment
3064                             0x02,               // Length
3065                             )
3066                         IO (Decode16,
3067                             0x0030,             // Range Minimum
3068                             0x0030,             // Range Maximum
3069                             0x01,               // Alignment
3070                             0x02,               // Length
3071                             )
3072                         IO (Decode16,
3073                             0x0034,             // Range Minimum
3074                             0x0034,             // Range Maximum
3075                             0x01,               // Alignment
3076                             0x02,               // Length
3077                             )
3078                         IO (Decode16,
3079                             0x0038,             // Range Minimum
3080                             0x0038,             // Range Maximum
3081                             0x01,               // Alignment
3082                             0x02,               // Length
3083                             )
3084                         IO (Decode16,
3085                             0x003C,             // Range Minimum
3086                             0x003C,             // Range Maximum
3087                             0x01,               // Alignment
3088                             0x02,               // Length
3089                             )
3090                         IO (Decode16,
3091                             0x00A0,             // Range Minimum
3092                             0x00A0,             // Range Maximum
3093                             0x01,               // Alignment
3094                             0x02,               // Length
3095                             )
3096                         IO (Decode16,
3097                             0x00A4,             // Range Minimum
3098                             0x00A4,             // Range Maximum
3099                             0x01,               // Alignment
3100                             0x02,               // Length
3101                             )
3102                         IO (Decode16,
3103                             0x00A8,             // Range Minimum
3104                             0x00A8,             // Range Maximum
3105                             0x01,               // Alignment
3106                             0x02,               // Length
3107                             )
3108                         IO (Decode16,
3109                             0x00AC,             // Range Minimum
3110                             0x00AC,             // Range Maximum
3111                             0x01,               // Alignment
3112                             0x02,               // Length
3113                             )
3114                         IO (Decode16,
3115                             0x00B0,             // Range Minimum
3116                             0x00B0,             // Range Maximum
3117                             0x01,               // Alignment
3118                             0x02,               // Length
3119                             )
3120                         IO (Decode16,
3121                             0x00B4,             // Range Minimum
3122                             0x00B4,             // Range Maximum
3123                             0x01,               // Alignment
3124                             0x02,               // Length
3125                             )
3126                         IO (Decode16,
3127                             0x00B8,             // Range Minimum
3128                             0x00B8,             // Range Maximum
3129                             0x01,               // Alignment
3130                             0x02,               // Length
3131                             )
3132                         IO (Decode16,
3133                             0x00BC,             // Range Minimum
3134                             0x00BC,             // Range Maximum
3135                             0x01,               // Alignment
3136                             0x02,               // Length
3137                             )
3138                         IO (Decode16,
3139                             0x04D0,             // Range Minimum
3140                             0x04D0,             // Range Maximum
3141                             0x01,               // Alignment
3142                             0x02,               // Length
3143                             )
3144                         IRQNoFlags ()
3145                             {2}
3146                     })
3147                 }
3148
3149                 Device (LDRC)
3150                 {
3151                     Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
3152                     Name (_UID, 0x02)  // _UID: Unique ID
3153                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3154                     {
3155                         IO (Decode16,
3156                             0x002E,             // Range Minimum
3157                             0x002E,             // Range Maximum
3158                             0x01,               // Alignment
3159                             0x02,               // Length
3160                             )
3161                         IO (Decode16,
3162                             0x004E,             // Range Minimum
3163                             0x004E,             // Range Maximum
3164                             0x01,               // Alignment
3165                             0x02,               // Length
3166                             )
3167                         IO (Decode16,
3168                             0x0061,             // Range Minimum
3169                             0x0061,             // Range Maximum
3170                             0x01,               // Alignment
3171                             0x01,               // Length
3172                             )
3173                         IO (Decode16,
3174                             0x0063,             // Range Minimum
3175                             0x0063,             // Range Maximum
3176                             0x01,               // Alignment
3177                             0x01,               // Length
3178                             )
3179                         IO (Decode16,
3180                             0x0065,             // Range Minimum
3181                             0x0065,             // Range Maximum
3182                             0x01,               // Alignment
3183                             0x01,               // Length
3184                             )
3185                         IO (Decode16,
3186                             0x0067,             // Range Minimum
3187                             0x0067,             // Range Maximum
3188                             0x01,               // Alignment
3189                             0x01,               // Length
3190                             )
3191                         IO (Decode16,
3192                             0x0070,             // Range Minimum
3193                             0x0070,             // Range Maximum
3194                             0x01,               // Alignment
3195                             0x01,               // Length
3196                             )
3197                         IO (Decode16,
3198                             0x0080,             // Range Minimum
3199                             0x0080,             // Range Maximum
3200                             0x01,               // Alignment
3201                             0x10,               // Length
3202                             )
3203                         IO (Decode16,
3204                             0x0092,             // Range Minimum
3205                             0x0092,             // Range Maximum
3206                             0x01,               // Alignment
3207                             0x01,               // Length
3208                             )
3209                         IO (Decode16,
3210                             0x00B2,             // Range Minimum
3211                             0x00B2,             // Range Maximum
3212                             0x01,               // Alignment
3213                             0x02,               // Length
3214                             )
3215                         IO (Decode16,
3216                             0x0680,             // Range Minimum
3217                             0x0680,             // Range Maximum
3218                             0x01,               // Alignment
3219                             0x20,               // Length
3220                             )
3221                         IO (Decode16,
3222                             0x0400,             // Range Minimum
3223                             0x0400,             // Range Maximum
3224                             0x01,               // Alignment
3225                             0x80,               // Length
3226                             )
3227                         IO (Decode16,
3228                             0x0500,             // Range Minimum
3229                             0x0500,             // Range Maximum
3230                             0x01,               // Alignment
3231                             0xFF,               // Length
3232                             )
3233                         IO (Decode16,
3234                             0x0600,             // Range Minimum
3235                             0x0600,             // Range Maximum
3236                             0x01,               // Alignment
3237                             0x20,               // Length
3238                             )
3239                         IO (Decode16,
3240                             0x164E,             // Range Minimum
3241                             0x164E,             // Range Maximum
3242                             0x01,               // Alignment
3243                             0x02,               // Length
3244                             )
3245                     })
3246                 }
3247
3248                 Device (TIMR)
3249                 {
3250                     Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */)  // _HID: Hardware ID
3251                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3252                     {
3253                         IO (Decode16,
3254                             0x0040,             // Range Minimum
3255                             0x0040,             // Range Maximum
3256                             0x01,               // Alignment
3257                             0x04,               // Length
3258                             )
3259                         IO (Decode16,
3260                             0x0050,             // Range Minimum
3261                             0x0050,             // Range Maximum
3262                             0x10,               // Alignment
3263                             0x04,               // Length
3264                             )
3265                         IRQNoFlags ()
3266                             {0}
3267                     })
3268                 }
3269
3270                 Device (IUR3)
3271                 {
3272                     Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
3273                     Name (_UID, One)  // _UID: Unique ID
3274                     Method (_STA, 0, Serialized)  // _STA: Status
3275                     {
3276                         If ((USEL == Zero))
3277                         {
3278                             If ((PU1E == One))
3279                             {
3280                                 UI3E = One
3281                                 UI4E = One
3282                                 C1EN = One
3283                                 Return (0x0F)
3284                             }
3285                         }
3286
3287                         Return (Zero)
3288                     }
3289
3290                     Method (_DIS, 0, Serialized)  // _DIS: Disable Device
3291                     {
3292                         UI3E = Zero
3293                         UI4E = Zero
3294                         C1EN = Zero
3295                     }
3296
3297                     Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
3298                     {
3299                         Name (BUF0, ResourceTemplate ()
3300                         {
3301                             IO (Decode16,
3302                                 0x03F8,             // Range Minimum
3303                                 0x03F8,             // Range Maximum
3304                                 0x01,               // Alignment
3305                                 0x08,               // Length
3306                                 )
3307                             IRQNoFlags ()
3308                                 {3}
3309                         })
3310                         Name (BUF1, ResourceTemplate ()
3311                         {
3312                             IO (Decode16,
3313                                 0x03F8,             // Range Minimum
3314                                 0x03F8,             // Range Maximum
3315                                 0x01,               // Alignment
3316                                 0x08,               // Length
3317                                 )
3318                             IRQNoFlags ()
3319                                 {4}
3320                         })
3321                         If ((SRID <= 0x04))
3322                         {
3323                             Return (BUF0) /* \_SB_.PCI0.LPCB.IUR3._CRS.BUF0 */
3324                         }
3325                         Else
3326                         {
3327                             Return (BUF1) /* \_SB_.PCI0.LPCB.IUR3._CRS.BUF1 */
3328                         }
3329                     }
3330                 }
3331
3332                 OperationRegion (PKBS, SystemIO, 0x60, 0x05)
3333                 Field (PKBS, ByteAcc, Lock, Preserve)
3334                 {
3335                     PKBD,   8, 
3336                     Offset (0x02), 
3337                     Offset (0x03), 
3338                     Offset (0x04), 
3339                     PKBC,   8
3340                 }
3341
3342                 Device (PS2K)
3343                 {
3344                     Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */)  // _HID: Hardware ID
3345                     Method (_STA, 0, NotSerialized)  // _STA: Status
3346                     {
3347                         If (((PKBD == 0xFF) & (PKBC == 0xFF)))
3348                         {
3349                             Return (Zero)
3350                         }
3351
3352                         Return (0x0F)
3353                     }
3354
3355                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3356                     {
3357                         IO (Decode16,
3358                             0x0060,             // Range Minimum
3359                             0x0060,             // Range Maximum
3360                             0x01,               // Alignment
3361                             0x01,               // Length
3362                             )
3363                         IO (Decode16,
3364                             0x0064,             // Range Minimum
3365                             0x0064,             // Range Maximum
3366                             0x01,               // Alignment
3367                             0x01,               // Length
3368                             )
3369                         IRQ (Edge, ActiveHigh, Exclusive, )
3370                             {1}
3371                     })
3372                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
3373                     {
3374                         StartDependentFn (0x00, 0x00)
3375                         {
3376                             FixedIO (
3377                                 0x0060,             // Address
3378                                 0x01,               // Length
3379                                 )
3380                             FixedIO (
3381                                 0x0064,             // Address
3382                                 0x01,               // Length
3383                                 )
3384                             IRQNoFlags ()
3385                                 {1}
3386                         }
3387                         EndDependentFn ()
3388                     })
3389                 }
3390
3391                 Device (PS2M)
3392                 {
3393                     Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */)  // _HID: Hardware ID
3394                     Method (_STA, 0, NotSerialized)  // _STA: Status
3395                     {
3396                         If (((PKBD == 0xFF) & (PKBC == 0xFF)))
3397                         {
3398                             Return (Zero)
3399                         }
3400
3401                         Return (0x0F)
3402                     }
3403
3404                     Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
3405                     {
3406                         IRQ (Edge, ActiveHigh, Exclusive, )
3407                             {12}
3408                     })
3409                     Name (_PRS, ResourceTemplate ()  // _PRS: Possible Resource Settings
3410                     {
3411                         StartDependentFn (0x00, 0x00)
3412                         {
3413                             IRQNoFlags ()
3414                                 {12}
3415                         }
3416                         EndDependentFn ()
3417                     })
3418                 }
3419             }
3420
3421             Device (D004)
3422             {
3423                 Name (_ADR, 0x00100000)  // _ADR: Address
3424             }
3425
3426             Device (D005)
3427             {
3428                 Name (_ADR, 0x00110000)  // _ADR: Address
3429             }
3430
3431             Device (D006)
3432             {
3433                 Name (_ADR, 0x00120000)  // _ADR: Address
3434             }
3435
3436             Device (XHC1)
3437             {
3438                 Name (_ADR, 0x00140000)  // _ADR: Address
3439             }
3440
3441             Device (D008)
3442             {
3443                 Name (_ADR, 0x00150000)  // _ADR: Address
3444             }
3445
3446             Device (D009)
3447             {
3448                 Name (_ADR, 0x00160000)  // _ADR: Address
3449             }
3450
3451             Device (D00A)
3452             {
3453                 Name (_ADR, 0x00170000)  // _ADR: Address
3454             }
3455
3456             Device (D00B)
3457             {
3458                 Name (_ADR, 0x00180000)  // _ADR: Address
3459             }
3460
3461             Device (D00C)
3462             {
3463                 Name (_ADR, 0x00180001)  // _ADR: Address
3464             }
3465
3466             Device (D00D)
3467             {
3468                 Name (_ADR, 0x00180002)  // _ADR: Address
3469             }
3470
3471             Device (D00E)
3472             {
3473                 Name (_ADR, 0x00180003)  // _ADR: Address
3474             }
3475
3476             Device (EHC1)
3477             {
3478                 Name (_ADR, 0x001D0000)  // _ADR: Address
3479             }
3480
3481             Device (D010)
3482             {
3483                 Name (_ADR, 0x001E0000)  // _ADR: Address
3484             }
3485
3486             Device (D011)
3487             {
3488                 Name (_ADR, 0x001E0001)  // _ADR: Address
3489             }
3490
3491             Device (D012)
3492             {
3493                 Name (_ADR, 0x001E0002)  // _ADR: Address
3494             }
3495
3496             Device (D013)
3497             {
3498                 Name (_ADR, 0x001E0003)  // _ADR: Address
3499             }
3500         }
3501     }
3502
3503     Scope (_GPE)
3504     {
3505     }
3506
3507     Name (_S0, Package (0x04)  // _S0_: S0 System State
3508     {
3509         Zero, 
3510         Zero, 
3511         Zero, 
3512         Zero
3513     })
3514     Name (_S5, Package (0x04)  // _S5_: S5 System State
3515     {
3516         0x07, 
3517         Zero, 
3518         Zero, 
3519         Zero
3520     })
3521     Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
3522     {
3523         If (Arg0)
3524         {
3525             PPTS (Arg0)
3526         }
3527     }
3528
3529     Method (_WAK, 1, NotSerialized)  // _WAK: Wake
3530     {
3531         PWAK (Arg0)
3532         Return (WAKP) /* \WAKP */
3533     }
3534
3535     Scope (\)
3536     {
3537         OperationRegion (PMIO, SystemIO, PMBS, 0x46)
3538         Field (PMIO, ByteAcc, NoLock, Preserve)
3539         {
3540             Offset (0x01), 
3541             PWBS,   1, 
3542             Offset (0x20), 
3543                 ,   13, 
3544             PMEB,   1, 
3545             Offset (0x42), 
3546                 ,   1, 
3547             GPEC,   1
3548         }
3549
3550         Field (PMIO, ByteAcc, NoLock, WriteAsZeros)
3551         {
3552             Offset (0x20), 
3553                 ,   4, 
3554             PSCI,   1, 
3555             SCIS,   1
3556         }
3557
3558         OperationRegion (PMCR, SystemMemory, PFDR, 0x04)
3559         Field (PMCR, DWordAcc, Lock, Preserve)
3560         {
3561             L10D,   1, 
3562             L11D,   1, 
3563             L12D,   1, 
3564             L13D,   1, 
3565             L14D,   1, 
3566             L15D,   1, 
3567             Offset (0x01), 
3568             SD1D,   1, 
3569             SD2D,   1, 
3570             SD3D,   1, 
3571             HSID,   1, 
3572                 ,   1, 
3573             LPED,   1, 
3574             OTGD,   1, 
3575             Offset (0x02), 
3576                 ,   1, 
3577                 ,   1, 
3578                 ,   1, 
3579                 ,   1, 
3580             RP1D,   1, 
3581             RP2D,   1, 
3582             RP3D,   1, 
3583             RP4D,   1, 
3584             L20D,   1, 
3585             L21D,   1, 
3586             L22D,   1, 
3587             L23D,   1, 
3588             L24D,   1, 
3589             L25D,   1, 
3590             L26D,   1, 
3591             L27D,   1
3592         }
3593
3594         OperationRegion (CLKC, SystemMemory, PCLK, 0x18)
3595         Field (CLKC, DWordAcc, Lock, Preserve)
3596         {
3597             CKC0,   2, 
3598             CKF0,   1, 
3599             Offset (0x04), 
3600             CKC1,   2, 
3601             CKF1,   1, 
3602             Offset (0x08), 
3603             CKC2,   2, 
3604             CKF2,   1, 
3605             Offset (0x0C), 
3606             CKC3,   2, 
3607             CKF3,   1, 
3608             Offset (0x10), 
3609             CKC4,   2, 
3610             CKF4,   1, 
3611             Offset (0x14), 
3612             CKC5,   2, 
3613             CKF5,   1, 
3614             Offset (0x18)
3615         }
3616     }
3617
3618     Scope (_SB)
3619     {
3620         Device (LPEA)
3621         {
3622             Name (_ADR, Zero)  // _ADR: Address
3623             Name (_HID, "80860F28" /* Intel SST Audio DSP */)  // _HID: Hardware ID
3624             Name (_CID, "80860F28" /* Intel SST Audio DSP */)  // _CID: Compatible ID
3625             Name (_DDN, "Intel(R) Low Power Audio Controller - 80860F28")  // _DDN: DOS Device Name
3626             Name (_SUB, "80867270")  // _SUB: Subsystem ID
3627             Name (_UID, One)  // _UID: Unique ID
3628             Name (_DEP, Package (0x01)  // _DEP: Dependencies
3629             {
3630                 ^I2C2.RTEK
3631             })
3632             Name (WDEP, Package (0x01)
3633             {
3634                 ^I2C2.RTEK
3635             })
3636             Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
3637             {
3638                 PLPE
3639             })
3640             Method (_STA, 0, NotSerialized)  // _STA: Status
3641             {
3642                 If (((LPEE == 0x02) && (LPED == Zero)))
3643                 {
3644                     Return (0x0F)
3645                 }
3646
3647                 Return (Zero)
3648             }
3649
3650             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
3651             {
3652             }
3653
3654             Name (RBUF, ResourceTemplate ()
3655             {
3656                 Memory32Fixed (ReadWrite,
3657                     0x12345678,         // Address Base
3658                     0x00200000,         // Address Length
3659                     _Y04)
3660                 Memory32Fixed (ReadWrite,
3661                     0xFE830000,         // Address Base
3662                     0x00001000,         // Address Length
3663                     _Y05)
3664                 Memory32Fixed (ReadWrite,
3665                     0x55AA55AA,         // Address Base
3666                     0x00200000,         // Address Length
3667                     _Y06)
3668                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3669                 {
3670                     0x00000018,
3671                 }
3672                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3673                 {
3674                     0x00000019,
3675                 }
3676                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3677                 {
3678                     0x0000001A,
3679                 }
3680                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3681                 {
3682                     0x0000001B,
3683                 }
3684                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3685                 {
3686                     0x0000001C,
3687                 }
3688                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3689                 {
3690                     0x0000001D,
3691                 }
3692             })
3693             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3694             {
3695                 CreateDWordField (RBUF, \_SB.LPEA._Y04._BAS, B0BA)  // _BAS: Base Address
3696                 B0BA = LPE0 /* \LPE0 */
3697                 CreateDWordField (RBUF, \_SB.LPEA._Y05._BAS, B1BA)  // _BAS: Base Address
3698                 B1BA = LPE1 /* \LPE1 */
3699                 CreateDWordField (RBUF, \_SB.LPEA._Y06._BAS, B2BA)  // _BAS: Base Address
3700                 B2BA = LPE2 /* \LPE2 */
3701                 Return (RBUF) /* \_SB_.LPEA.RBUF */
3702             }
3703
3704             OperationRegion (KEYS, SystemMemory, LPE1, 0x0100)
3705             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
3706             {
3707                 Offset (0x84), 
3708                 PSAT,   32
3709             }
3710
3711             PowerResource (PLPE, 0x05, 0x0000)
3712             {
3713                 Method (_STA, 0, NotSerialized)  // _STA: Status
3714                 {
3715                     Return (One)
3716                 }
3717
3718                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
3719                 {
3720                     PSAT &= 0xFFFFFFFC
3721                     Local0 = PSAT /* \_SB_.LPEA.PSAT */
3722                 }
3723
3724                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
3725                 {
3726                     PSAT |= 0x03
3727                     Local0 = PSAT /* \_SB_.LPEA.PSAT */
3728                 }
3729             }
3730         }
3731
3732         Device (AMCR)
3733         {
3734             Name (_ADR, Zero)  // _ADR: Address
3735             Name (_HID, "AMCR0F28" /* Intel Audio Machine Driver */)  // _HID: Hardware ID
3736             Name (_CID, "AMCR0F28" /* Intel Audio Machine Driver */)  // _CID: Compatible ID
3737             Name (_DDN, "Intel(R) Audio Machine Driver - AMCR0F28")  // _DDN: DOS Device Name
3738             Name (_UID, One)  // _UID: Unique ID
3739             Name (_DEP, Package (0x02)  // _DEP: Dependencies
3740             {
3741                 GPO2, 
3742                 ^I2C2.RTEK
3743             })
3744             Method (_STA, 0, NotSerialized)  // _STA: Status
3745             {
3746                 If ((OSSL & 0x80))
3747                 {
3748                     Return (0x0F)
3749                 }
3750
3751                 Return (Zero)
3752             }
3753
3754             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
3755             {
3756                 Name (RBUF, ResourceTemplate ()
3757                 {
3758                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3759                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3760                         )
3761                         {   // Pin list
3762                             0x0004
3763                         }
3764                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3765                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3766                         )
3767                         {   // Pin list
3768                             0x001B
3769                         }
3770                 })
3771                 Return (RBUF) /* \_SB_.AMCR._CRS.RBUF */
3772             }
3773         }
3774
3775         Device (HAD)
3776         {
3777             Name (_ADR, Zero)  // _ADR: Address
3778             Name (_HID, "HAD0F28" /* Intel HDMI Audio Driver */)  // _HID: Hardware ID
3779             Name (_CID, "HAD0F28" /* Intel HDMI Audio Driver */)  // _CID: Compatible ID
3780             Name (_DDN, "Intel(R) HDMI Audio Driver - HAD")  // _DDN: DOS Device Name
3781             Name (_UID, One)  // _UID: Unique ID
3782             Method (_STA, 0, NotSerialized)  // _STA: Status
3783             {
3784                 If ((OSSL & 0x80))
3785                 {
3786                     Return (0x0F)
3787                 }
3788
3789                 Return (Zero)
3790             }
3791
3792             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
3793             {
3794                 Name (RBUF, ResourceTemplate ()
3795                 {
3796                     Memory32Fixed (ReadWrite,
3797                         0x00065800,         // Address Base
3798                         0x00000140,         // Address Length
3799                         )
3800                 })
3801                 Return (RBUF) /* \_SB_.HAD_._CRS.RBUF */
3802             }
3803         }
3804     }
3805
3806     Scope (_SB.PCI0)
3807     {
3808         Scope (XHC1)
3809         {
3810             Name (_DDN, "Baytrail XHCI controller (CCG core/Host only)")  // _DDN: DOS Device Name
3811             Name (_DEP, Package (0x01)  // _DEP: Dependencies
3812             {
3813                 PEPD
3814             })
3815             Name (_STR, Unicode ("Baytrail XHCI controller (CCG core/Host only)"))  // _STR: Description String
3816             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
3817             Name (MSET, Zero)
3818             Name (DDST, Zero)
3819             OperationRegion (PCSL, SystemMemory, 0xE00A0074, One)
3820             Field (PCSL, ByteAcc, NoLock, WriteAsZeros)
3821             {
3822                 PMPS,   2
3823             }
3824
3825             OperationRegion (PCSH, SystemMemory, 0xE00A0075, One)
3826             Field (PCSH, ByteAcc, NoLock, Preserve)
3827             {
3828                 PMCH,   8
3829             }
3830
3831             OperationRegion (XMSE, SystemMemory, 0xE00A0000, 0x0100)
3832             Field (XMSE, AnyAcc, NoLock, Preserve)
3833             {
3834                 Offset (0x04), 
3835                     ,   1, 
3836                 CMSE,   1, 
3837                 Offset (0x10), 
3838                 BAR0,   32, 
3839                 Offset (0x74), 
3840                 PMCS,   16, 
3841                 Offset (0xB0), 
3842                     ,   13, 
3843                 PHY2,   2, 
3844                     ,   13, 
3845                 USHP,   1, 
3846                     ,   1, 
3847                 SCFG,   1
3848             }
3849
3850             Method (PWOF, 0, Serialized)
3851             {
3852                 SCFG = One
3853             }
3854
3855             Method (PWON, 0, Serialized)
3856             {
3857                 SCFG = Zero
3858             }
3859
3860             OperationRegion (XPRT, SystemMemory, (PEBS + 0x000A0000), 0x0100)
3861             Field (XPRT, AnyAcc, NoLock, Preserve)
3862             {
3863                 DVID,   16, 
3864                 Offset (0x74), 
3865                 D0D3,   2, 
3866                 Offset (0x75), 
3867                 PMEE,   1, 
3868                     ,   6, 
3869                 PMES,   1, 
3870                 Offset (0xB0), 
3871                     ,   13, 
3872                 MB13,   1, 
3873                 MB14,   1, 
3874                 Offset (0xB4), 
3875                 Offset (0xD0), 
3876                 PR2,    32, 
3877                 PR2M,   32, 
3878                 PR3,    32, 
3879                 PR3M,   32
3880             }
3881
3882             OperationRegion (XHCP, SystemMemory, (PEBS + 0x000A0000), 0x0100)
3883             Field (XHCP, AnyAcc, Lock, Preserve)
3884             {
3885                 Offset (0x04), 
3886                 PDBM,   16, 
3887                 Offset (0x10), 
3888                 MEMB,   32
3889             }
3890
3891             Name (PCHS, Zero)
3892             Name (SRMB, 0x90800000)
3893             Method (_PS0, 0, Serialized)  // _PS0: Power State 0
3894             {
3895                 ADBG ("XHC D0")
3896                 P8XH (Zero, 0xA0)
3897                 If ((DVID == 0xFFFF))
3898                 {
3899                     Return (Zero)
3900                 }
3901
3902                 SRMB = (MEMB & 0xFFFFFFF0)
3903                 Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */
3904                 Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */
3905                 PDBM &= 0xFFFFFFFFFFFFFFF9
3906                 MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */
3907                 PDBM |= 0x02
3908                 OperationRegion (MCA1, SystemMemory, SRMB, 0x9000)
3909                 Field (MCA1, DWordAcc, Lock, Preserve)
3910                 {
3911                     Offset (0x510), 
3912                     R510,   32, 
3913                     Offset (0x520), 
3914                     R520,   32, 
3915                     Offset (0x530), 
3916                     R530,   32, 
3917                     Offset (0x540), 
3918                     R540,   32, 
3919                     Offset (0x8058), 
3920                     Offset (0x8059), 
3921                     CDES,   1, 
3922                     Offset (0x805A), 
3923                     STSP,   1, 
3924                         ,   3, 
3925                     CFEC,   1, 
3926                     Offset (0x8060), 
3927                         ,   25, 
3928                     EPRE,   1, 
3929                     Offset (0x8094), 
3930                         ,   14, 
3931                     CMMF,   1, 
3932                         ,   6, 
3933                     ESSP,   1, 
3934                         ,   1, 
3935                     DAPA,   1, 
3936                     Offset (0x80E0), 
3937                         ,   15, 
3938                     AX15,   1, 
3939                     Offset (0x80FC), 
3940                         ,   25, 
3941                     PPL1,   1, 
3942                     Offset (0x8110), 
3943                         ,   1, 
3944                     CRNC,   1, 
3945                     Offset (0x8111), 
3946                     EPTD,   1, 
3947                         ,   2, 
3948                     HTPP,   1, 
3949                         ,   8, 
3950                     TRMC,   1, 
3951                     Offset (0x8140), 
3952                     MIDS,   12, 
3953                     AWPC,   12, 
3954                     EIHR,   8, 
3955                         ,   6, 
3956                     SSII,   1, 
3957                     SSIO,   1, 
3958                     HSII,   1, 
3959                     Offset (0x8154), 
3960                         ,   31, 
3961                     CLK2,   1, 
3962                     Offset (0x8164), 
3963                     ETBC,   1, 
3964                     ERBC,   1, 
3965                     ESAI,   1, 
3966                     ETMA,   1, 
3967                     EOAI,   1, 
3968                     EIAI,   1, 
3969                     TTEA,   1, 
3970                     ECMA,   1, 
3971                     Offset (0x816C), 
3972                         ,   2, 
3973                     CLK0,   1, 
3974                         ,   11, 
3975                     CLK1,   1, 
3976                     Offset (0x8188), 
3977                     Offset (0x818B), 
3978                     FIDD,   1, 
3979                         ,   1, 
3980                     FTSS,   1
3981                 }
3982
3983                 Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */
3984                 If ((Local3 == 0x03))
3985                 {
3986                     D0D3 = Zero
3987                     Sleep (0x0A)
3988                 }
3989
3990                 If ((PCHS == 0x02))
3991                 {
3992                     MB13 = Zero
3993                     MB14 = Zero
3994                     CLK0 = Zero
3995                     CLK1 = Zero
3996                 }
3997
3998                 CLK2 = One
3999                 CDES = One
4000                 STSP = One
4001                 CFEC = Zero
4002                 EPRE = One
4003                 DAPA = One
4004                 ESSP = One
4005                 CMMF = One
4006                 PPL1 = One
4007                 CRNC = Zero
4008                 EPTD = Zero
4009                 HTPP = One
4010                 TRMC = One
4011                 MIDS = 0x3C
4012                 AWPC = 0x0F
4013                 EIHR = 0xFF
4014                 SSII = One
4015                 SSIO = One
4016                 HSII = One
4017                 ERBC = One
4018                 ETBC = One
4019                 ESAI = One
4020                 ETMA = One
4021                 EOAI = One
4022                 EIAI = One
4023                 TTEA = One
4024                 ECMA = One
4025                 FIDD = One
4026                 FTSS = One
4027                 USHP = Zero
4028                 If ((PCHS == 0x02))
4029                 {
4030                     While (((((R510 & 0x03FB) == 0x02E0) || ((R520 & 
4031                         0x03FB) == 0x02E0)) || (((R530 & 0x03FB) == 0x02E0) || ((R540 & 
4032                         0x03FB) == 0x02E0))))
4033                     {
4034                         Stall (0x32)
4035                     }
4036
4037                     Local0 = R510 /* \_SB_.PCI0.XHC1._PS0.R510 */
4038                     If (((Local0 & 0x000203FB) == 0x02A0))
4039                     {
4040                         R510 = (Local0 | 0x80000000)
4041                         While (((R510 & 0x00180000) == Zero))
4042                         {
4043                             Stall (0x32)
4044                         }
4045
4046                         Local0 = (R510 & 0xFFFFFFFFFFFFFFFD)
4047                         R510 = (Local0 | 0x00FE0000)
4048                     }
4049
4050                     Local0 = R520 /* \_SB_.PCI0.XHC1._PS0.R520 */
4051                     If (((Local0 & 0x000203FB) == 0x02A0))
4052                     {
4053                         R520 = (Local0 | 0x80000000)
4054                         While (((R520 & 0x00180000) == Zero))
4055                         {
4056                             Stall (0x32)
4057                         }
4058
4059                         Local0 = (R520 & 0xFFFFFFFFFFFFFFFD)
4060                         R520 = (Local0 | 0x00FE0000)
4061                     }
4062
4063                     Local0 = R530 /* \_SB_.PCI0.XHC1._PS0.R530 */
4064                     If (((Local0 & 0x000203FB) == 0x02A0))
4065                     {
4066                         R530 = (Local0 | 0x80000000)
4067                         While (((R530 & 0x00180000) == Zero))
4068                         {
4069                             Stall (0x32)
4070                         }
4071
4072                         Local0 = (R530 & 0xFFFFFFFFFFFFFFFD)
4073                         R530 = (Local0 | 0x00FE0000)
4074                     }
4075
4076                     Local0 = R540 /* \_SB_.PCI0.XHC1._PS0.R540 */
4077                     If (((Local0 & 0x000203FB) == 0x02A0))
4078                     {
4079                         R540 = (Local0 | 0x80000000)
4080                         While (((R540 & 0x00180000) == Zero))
4081                         {
4082                             Stall (0x32)
4083                         }
4084
4085                         Local0 = (R540 & 0xFFFFFFFFFFFFFFFD)
4086                         R540 = (Local0 | 0x00FE0000)
4087                     }
4088
4089                     AX15 = One
4090                 }
4091
4092                 If ((Local3 == 0x03))
4093                 {
4094                     ADBG ("PS0->D3")
4095                     P8XH (Zero, 0xA1)
4096                     D0D3 = 0x03
4097                 }
4098                 Else
4099                 {
4100                     P8XH (Zero, 0xA2)
4101                 }
4102
4103                 PDBM &= 0xFFFFFFFFFFFFFFFD
4104                 MEMB = Local2
4105                 PDBM = Local1
4106
4107                 Return (Zero)
4108             }
4109
4110             Method (_PS3, 0, Serialized)  // _PS3: Power State 3
4111             {
4112                 ADBG ("XHC D3")
4113                 P8XH (Zero, 0xB0)
4114                 If ((DVID == 0xFFFF))
4115                 {
4116                     Return (Zero)
4117                 }
4118
4119                 SRMB = (MEMB & 0xFFFFFFF0)
4120                 Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */
4121                 Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */
4122                 PDBM &= 0xFFFFFFFFFFFFFFF9
4123                 MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */
4124                 PDBM |= 0x02
4125                 OperationRegion (MCA1, SystemMemory, SRMB, 0x9000)
4126                 Field (MCA1, DWordAcc, Lock, Preserve)
4127                 {
4128                     Offset (0x80E0), 
4129                         ,   15, 
4130                     AX15,   1, 
4131                     Offset (0x8154), 
4132                         ,   31, 
4133                     CLK2,   1, 
4134                     Offset (0x816C), 
4135                         ,   2, 
4136                     CLK0,   1, 
4137                         ,   11, 
4138                     CLK1,   1, 
4139                     Offset (0x8170)
4140                 }
4141
4142                 Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */
4143                 If ((Local3 == 0x03))
4144                 {
4145                     D0D3 = Zero
4146                 }
4147
4148                 If ((PCHS == 0x02))
4149                 {
4150                     MB13 = One
4151                     MB14 = One
4152                     CLK0 = One
4153                     CLK1 = One
4154                 }
4155
4156                 CLK2 = Zero
4157                 If ((PCHS == 0x02))
4158                 {
4159                     AX15 = Zero
4160                 }
4161
4162                 If ((PMEE == One))
4163                 {
4164                     USHP = One
4165                 }
4166
4167                 If ((Local3 == 0x03))
4168                 {
4169                     ADBG ("PS3->D3")
4170                     P8XH (Zero, 0xB1)
4171                     D0D3 = 0x03
4172                 }
4173                 Else
4174                 {
4175                     P8XH (Zero, 0xB2)
4176                 }
4177
4178                 PDBM &= 0xFFFFFFFFFFFFFFFD
4179                 MEMB = Local2
4180                 PDBM = Local1
4181
4182                 Return (Zero)
4183             }
4184
4185             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
4186             {
4187             }
4188
4189             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4190             {
4191                 Return (Zero)
4192             }
4193
4194             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
4195             {
4196                 Return (Package (0x01)
4197                 {
4198                     USBC
4199                 })
4200             }
4201
4202             Method (_STA, 0, NotSerialized)  // _STA: Status
4203             {
4204                 If ((XHCI != Zero))
4205                 {
4206                     Return (0x0F)
4207                 }
4208                 Else
4209                 {
4210                     Return (Zero)
4211                 }
4212             }
4213
4214             Device (RHUB)
4215             {
4216                 Name (_ADR, Zero)  // _ADR: Address
4217                 Device (SSP1)
4218                 {
4219                     Name (_ADR, 0x07)  // _ADR: Address
4220                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4221                     {
4222                         Name (UPCP, Package (0x04)
4223                         {
4224                             Zero, 
4225                             0x06, 
4226                             Zero, 
4227                             Zero
4228                         })
4229                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._UPC.UPCP */
4230                     }
4231
4232                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4233                     {
4234                         Name (PLDP, Package (0x01)
4235                         {
4236                             Buffer (0x14)
4237                             {
4238                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4239                                 /* 0008 */  0x48, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* H....... */
4240                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4241                             }
4242                         })
4243                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._PLD.PLDP */
4244                     }
4245
4246                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4247                     {
4248                         ADBG ("DSM11")
4249                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4250                         {
4251                             ADBG ("DSM12")
4252                             If ((Arg1 == Zero))
4253                             {
4254                                 ADBG ("DSM13")
4255                                 If ((Arg2 == Zero))
4256                                 {
4257                                     ADBG ("SSP1 QUERY")
4258                                     Debug = "Method _DSM Function Query"
4259                                     Return (Buffer (One)
4260                                     {
4261                                          0x05                                             /* . */
4262                                     })
4263                                 }
4264
4265                                 If ((Arg2 == 0x02))
4266                                 {
4267                                     ADBG ("SSP1 DSM")
4268                                     Debug = "Method _DSM Function Index2"
4269                                     Return (Zero)
4270                                 }
4271                             }
4272                         }
4273                         Else
4274                         {
4275                             Return (Zero)
4276                         }
4277
4278                         Return (Zero)
4279                     }
4280                 }
4281
4282                 Device (HS01)
4283                 {
4284                     Name (_ADR, One)  // _ADR: Address
4285                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4286                     {
4287                         Name (UPCP, Package (0x04)
4288                         {
4289                             0xFF, 
4290                             0x06, 
4291                             Zero, 
4292                             Zero
4293                         })
4294                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS01._UPC.UPCP */
4295                     }
4296
4297                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4298                     {
4299                         Name (PLDP, Package (0x01)
4300                         {
4301                             Buffer (0x14)
4302                             {
4303                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4304                                 /* 0008 */  0x49, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* I....... */
4305                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4306                             }
4307                         })
4308                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS01._PLD.PLDP */
4309                     }
4310
4311                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4312                     {
4313                         ADBG ("DSM21")
4314                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4315                         {
4316                             ADBG ("DSM22")
4317                             If ((Arg1 == Zero))
4318                             {
4319                                 ADBG ("DSM23")
4320                                 If ((Arg2 == Zero))
4321                                 {
4322                                     ADBG ("HS01 QUERY")
4323                                     Debug = "Method _DSM Function Query"
4324                                     Return (Buffer (One)
4325                                     {
4326                                          0x05                                             /* . */
4327                                     })
4328                                 }
4329
4330                                 If ((Arg2 == 0x02))
4331                                 {
4332                                     ADBG ("HS01 DSM")
4333                                     Debug = "Method _DSM Function Index2"
4334                                     Return (Zero)
4335                                 }
4336                             }
4337                         }
4338                         Else
4339                         {
4340                             Return (Zero)
4341                         }
4342
4343                         Return (Zero)
4344                     }
4345                 }
4346
4347                 Device (HS02)
4348                 {
4349                     Name (_ADR, 0x02)  // _ADR: Address
4350                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4351                     {
4352                         Name (UPCP, Package (0x04)
4353                         {
4354                             0xFF, 
4355                             0xFF, 
4356                             Zero, 
4357                             Zero
4358                         })
4359                         Name (UPCR, Package (0x04)
4360                         {
4361                             0xFF, 
4362                             Zero, 
4363                             Zero, 
4364                             Zero
4365                         })
4366                         If ((BDID == 0x02))
4367                         {
4368                             Return (UPCR) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCR */
4369                         }
4370                         Else
4371                         {
4372                             Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCP */
4373                         }
4374                     }
4375
4376                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4377                     {
4378                         Name (PLDP, Package (0x01)
4379                         {
4380                             Buffer (0x14)
4381                             {
4382                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4383                                 /* 0008 */  0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* @....... */
4384                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4385                             }
4386                         })
4387                         Name (PLDR, Package (0x01)
4388                         {
4389                             Buffer (0x14)
4390                             {
4391                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4392                                 /* 0008 */  0x41, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* A....... */
4393                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4394                             }
4395                         })
4396                         If ((BDID == 0x02))
4397                         {
4398                             Return (PLDR) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDR */
4399                         }
4400                         Else
4401                         {
4402                             Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDP */
4403                         }
4404                     }
4405
4406                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4407                     {
4408                         ADBG ("DSM31")
4409                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4410                         {
4411                             ADBG ("DSM32")
4412                             If ((Arg1 == Zero))
4413                             {
4414                                 ADBG ("DSM33")
4415                                 If ((Arg2 == Zero))
4416                                 {
4417                                     ADBG ("HS02 QUERY")
4418                                     Debug = "Method _DSM Function Query"
4419                                     Return (Buffer (One)
4420                                     {
4421                                          0x05                                             /* . */
4422                                     })
4423                                 }
4424
4425                                 If ((Arg2 == 0x02))
4426                                 {
4427                                     ADBG ("HS02 DSM")
4428                                     Debug = "Method _DSM Function Index2"
4429                                     Return (Zero)
4430                                 }
4431                             }
4432                         }
4433                         Else
4434                         {
4435                             Return (Zero)
4436                         }
4437
4438                         Return (Zero)
4439                     }
4440                 }
4441
4442                 Device (HS03)
4443                 {
4444                     Name (_ADR, 0x03)  // _ADR: Address
4445                     Name (_DEP, Package (0x01)  // _DEP: Dependencies
4446                     {
4447                         GPO2
4448                     })
4449                     Name (PSTS, Zero)
4450                     PowerResource (WWPR, 0x00, 0x0000)
4451                     {
4452                         Name (_DEP, Package (0x01)  // _DEP: Dependencies
4453                         {
4454                             GPO2
4455                         })
4456                         Method (_STA, 0, NotSerialized)  // _STA: Status
4457                         {
4458                             If ((\_SB.GPO2.AVBL == One))
4459                             {
4460                                 Return (\_SB.GPO0.WWD3)
4461                             }
4462
4463                             Return (Zero)
4464                         }
4465
4466                         Method (_ON, 0, NotSerialized)  // _ON_: Power On
4467                         {
4468                             If ((PSTS == Zero))
4469                             {
4470                                 If ((\_SB.GPO2.AVBL == One))
4471                                 {
4472                                     Sleep (0x0200)
4473                                     \_SB.GPO0.WWD3 = One
4474                                     PSTS = One
4475                                 }
4476                             }
4477                         }
4478
4479                         Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
4480                         {
4481                             If ((\_SB.GPO2.AVBL == One))
4482                             {
4483                                 \_SB.GPO0.WWD3 = Zero
4484                                 PSTS = Zero
4485                             }
4486                         }
4487                     }
4488
4489                     Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
4490                     Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
4491                     {
4492                         WWPR
4493                     })
4494                     Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
4495                     {
4496                         WWPR
4497                     })
4498                     Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
4499                     {
4500                         WWPR
4501                     })
4502                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4503                     {
4504                         Name (UPCP, Package (0x04)
4505                         {
4506                             0xFF, 
4507                             0xFF, 
4508                             Zero, 
4509                             Zero
4510                         })
4511                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS03._UPC.UPCP */
4512                     }
4513
4514                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4515                     {
4516                         Name (PLDP, Package (0x01)
4517                         {
4518                             Buffer (0x14)
4519                             {
4520                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4521                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4522                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4523                             }
4524                         })
4525                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS03._PLD.PLDP */
4526                     }
4527
4528                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4529                     {
4530                         ADBG ("DSM41")
4531                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4532                         {
4533                             ADBG ("DSM42")
4534                             If ((Arg1 == Zero))
4535                             {
4536                                 ADBG ("DSM43")
4537                                 If ((Arg2 == Zero))
4538                                 {
4539                                     ADBG ("HS03 QUERY")
4540                                     Debug = "Method _DSM Function Query"
4541                                     Return (Buffer (One)
4542                                     {
4543                                          0x05                                             /* . */
4544                                     })
4545                                 }
4546
4547                                 If ((Arg2 == 0x02))
4548                                 {
4549                                     ADBG ("HS03 DSM")
4550                                     Debug = "Method _DSM Function Index2"
4551                                     Return (Zero)
4552                                 }
4553                             }
4554                         }
4555                         Else
4556                         {
4557                             Return (Zero)
4558                         }
4559
4560                         Return (Zero)
4561                     }
4562
4563                     Device (MODM)
4564                     {
4565                         Name (_ADR, 0x03)  // _ADR: Address
4566                         Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
4567                         {
4568                             WWPR
4569                         })
4570                         Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
4571                         {
4572                             WWPR
4573                         })
4574                         Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
4575                         {
4576                             WWPR
4577                         })
4578                     }
4579                 }
4580
4581                 Device (HS04)
4582                 {
4583                     Name (_ADR, 0x04)  // _ADR: Address
4584                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4585                     {
4586                         Name (UPCP, Package (0x04)
4587                         {
4588                             0xFF, 
4589                             0xFF, 
4590                             Zero, 
4591                             Zero
4592                         })
4593                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS04._UPC.UPCP */
4594                     }
4595
4596                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4597                     {
4598                         Name (PLDP, Package (0x01)
4599                         {
4600                             Buffer (0x14)
4601                             {
4602                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4603                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4604                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4605                             }
4606                         })
4607                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS04._PLD.PLDP */
4608                     }
4609
4610                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4611                     {
4612                         ADBG ("DSM51")
4613                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4614                         {
4615                             ADBG ("DSM52")
4616                             If ((Arg1 == Zero))
4617                             {
4618                                 ADBG ("DSM53")
4619                                 If ((Arg2 == Zero))
4620                                 {
4621                                     ADBG ("HS04 QUERY")
4622                                     Debug = "Method _DSM Function Query"
4623                                     Return (Buffer (One)
4624                                     {
4625                                          0x05                                             /* . */
4626                                     })
4627                                 }
4628
4629                                 If ((Arg2 == 0x02))
4630                                 {
4631                                     ADBG ("HS04 DSM")
4632                                     Debug = "Method _DSM Function Index2"
4633                                     Return (Zero)
4634                                 }
4635                             }
4636                         }
4637                         Else
4638                         {
4639                             Return (Zero)
4640                         }
4641
4642                         Return (Zero)
4643                     }
4644                 }
4645
4646                 Device (HSC1)
4647                 {
4648                     Name (_ADR, 0x05)  // _ADR: Address
4649                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4650                     {
4651                         Name (UPCP, Package (0x04)
4652                         {
4653                             0xFF, 
4654                             0xFF, 
4655                             Zero, 
4656                             Zero
4657                         })
4658                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._UPC.UPCP */
4659                     }
4660
4661                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4662                     {
4663                         Name (PLDP, Package (0x01)
4664                         {
4665                             Buffer (0x14)
4666                             {
4667                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4668                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4669                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4670                             }
4671                         })
4672                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._PLD.PLDP */
4673                     }
4674
4675                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4676                     {
4677                         ADBG ("DSM61")
4678                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4679                         {
4680                             ADBG ("DSM62")
4681                             If ((Arg1 == Zero))
4682                             {
4683                                 ADBG ("DSM63")
4684                                 If ((Arg2 == Zero))
4685                                 {
4686                                     ADBG ("HSIC1 QUERY")
4687                                     Debug = "Method _DSM Function Query"
4688                                     Return (Buffer (One)
4689                                     {
4690                                          0x05                                             /* . */
4691                                     })
4692                                 }
4693
4694                                 If ((Arg2 == 0x02))
4695                                 {
4696                                     ADBG ("HSIC1 DSM")
4697                                     Debug = "Method _DSM Function Index2"
4698                                     Return (One)
4699                                 }
4700                             }
4701                         }
4702                         Else
4703                         {
4704                             Return (Zero)
4705                         }
4706
4707                         Return (Zero)
4708                     }
4709                 }
4710
4711                 Device (HSC2)
4712                 {
4713                     Name (_ADR, 0x06)  // _ADR: Address
4714                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4715                     {
4716                         Name (UPCP, Package (0x04)
4717                         {
4718                             0xFF, 
4719                             0xFF, 
4720                             Zero, 
4721                             Zero
4722                         })
4723                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._UPC.UPCP */
4724                     }
4725
4726                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4727                     {
4728                         Name (PLDP, Package (0x01)
4729                         {
4730                             Buffer (0x14)
4731                             {
4732                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4733                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4734                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4735                             }
4736                         })
4737                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._PLD.PLDP */
4738                     }
4739
4740                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4741                     {
4742                         ADBG ("DSM71")
4743                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4744                         {
4745                             ADBG ("DSM72")
4746                             If ((Arg1 == Zero))
4747                             {
4748                                 ADBG ("DSM73")
4749                                 If ((Arg2 == Zero))
4750                                 {
4751                                     ADBG ("HSIC2 QUERY")
4752                                     Debug = "Method _DSM Function Query"
4753                                     Return (Buffer (One)
4754                                     {
4755                                          0x05                                             /* . */
4756                                     })
4757                                 }
4758
4759                                 If ((Arg2 == 0x02))
4760                                 {
4761                                     ADBG ("HSIC2 DSM called")
4762                                     Debug = "Method _DSM Function Index2"
4763                                     Return (One)
4764                                 }
4765                             }
4766                         }
4767                         Else
4768                         {
4769                             Return (Zero)
4770                         }
4771
4772                         Return (Zero)
4773                     }
4774                 }
4775             }
4776         }
4777
4778         Device (OTG1)
4779         {
4780             Name (_ADR, 0x00160000)  // _ADR: Address
4781             Name (_DDN, "Baytrail XHCI controller (Synopsys core/OTG)")  // _DDN: DOS Device Name
4782             Name (_STR, Unicode ("Baytrail XHCI controller (Synopsys core/OTG)"))  // _STR: Description String
4783             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
4784             OperationRegion (PMEB, PCI_Config, 0x84, 0x04)
4785             Field (PMEB, WordAcc, NoLock, Preserve)
4786             {
4787                 Offset (0x01), 
4788                 PMEE,   1, 
4789                     ,   6, 
4790                 PMES,   1
4791             }
4792
4793             OperationRegion (GENR, PCI_Config, 0xA0, 0x10)
4794             Field (GENR, WordAcc, NoLock, Preserve)
4795             {
4796                     ,   18, 
4797                 CPME,   1, 
4798                 U2EN,   1, 
4799                 U3EN,   1
4800             }
4801
4802             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
4803             {
4804                 CPME = One
4805                 U2EN = One
4806                 U3EN = One
4807             }
4808
4809             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
4810             {
4811                 CPME = Zero
4812                 U2EN = Zero
4813                 U3EN = Zero
4814             }
4815
4816             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
4817             {
4818             }
4819
4820             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4821             {
4822                 Return (Zero)
4823             }
4824
4825             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
4826             {
4827                 Return (Package (0x01)
4828                 {
4829                     USBC
4830                 })
4831             }
4832
4833             Method (_STA, 0, NotSerialized)  // _STA: Status
4834             {
4835                 If ((OTGM != Zero))
4836                 {
4837                     Return (0x0F)
4838                 }
4839                 Else
4840                 {
4841                     Return (Zero)
4842                 }
4843             }
4844         }
4845
4846         Scope (\_SB)
4847         {
4848             PowerResource (USBC, 0x00, 0x0000)
4849             {
4850                 Method (_STA, 0, NotSerialized)  // _STA: Status
4851                 {
4852                     Return (0x0F)
4853                 }
4854
4855                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
4856                 {
4857                 }
4858
4859                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
4860                 {
4861                 }
4862             }
4863         }
4864
4865         Scope (EHC1)
4866         {
4867             Name (_DEP, Package (0x01)  // _DEP: Dependencies
4868             {
4869                 PEPD
4870             })
4871             OperationRegion (PWKE, PCI_Config, 0x62, 0x04)
4872             Field (PWKE, DWordAcc, NoLock, Preserve)
4873             {
4874                     ,   1, 
4875                 PWUC,   8
4876             }
4877
4878             Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
4879             {
4880                 If (Arg0)
4881                 {
4882                     PWUC = Ones
4883                 }
4884                 Else
4885                 {
4886                     PWUC = Zero
4887                 }
4888             }
4889
4890             Device (HUBN)
4891             {
4892                 Name (_ADR, Zero)  // _ADR: Address
4893                 Device (PR01)
4894                 {
4895                     Name (_ADR, One)  // _ADR: Address
4896                     Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
4897                     {
4898                         0xFF, 
4899                         Zero, 
4900                         Zero, 
4901                         Zero
4902                     })
4903                     Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
4904                     {
4905                         ToPLD (
4906                             PLD_Revision       = 0x1,
4907                             PLD_IgnoreColor    = 0x1,
4908                             PLD_Red            = 0x0,
4909                             PLD_Green          = 0x0,
4910                             PLD_Blue           = 0x0,
4911                             PLD_Width          = 0x0,
4912                             PLD_Height         = 0x0,
4913                             PLD_UserVisible    = 0x0,
4914                             PLD_Dock           = 0x0,
4915                             PLD_Lid            = 0x0,
4916                             PLD_Panel          = "UNKNOWN",
4917                             PLD_VerticalPosition = "UPPER",
4918                             PLD_HorizontalPosition = "LEFT",
4919                             PLD_Shape          = "UNKNOWN",
4920                             PLD_GroupOrientation = 0x0,
4921                             PLD_GroupToken     = 0x0,
4922                             PLD_GroupPosition  = 0x0,
4923                             PLD_Bay            = 0x0,
4924                             PLD_Ejectable      = 0x0,
4925                             PLD_EjectRequired  = 0x0,
4926                             PLD_CabinetNumber  = 0x0,
4927                             PLD_CardCageNumber = 0x0,
4928                             PLD_Reference      = 0x0,
4929                             PLD_Rotation       = 0x0,
4930                             PLD_Order          = 0x0,
4931                             PLD_VerticalOffset = 0x0,
4932                             PLD_HorizontalOffset = 0x0)
4933
4934                     })
4935                     Device (PR11)
4936                     {
4937                         Name (_ADR, One)  // _ADR: Address
4938                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
4939                         {
4940                             0xFF, 
4941                             0xFF, 
4942                             Zero, 
4943                             Zero
4944                         })
4945                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
4946                         {
4947                             ToPLD (
4948                                 PLD_Revision       = 0x1,
4949                                 PLD_IgnoreColor    = 0x1,
4950                                 PLD_Red            = 0x0,
4951                                 PLD_Green          = 0x0,
4952                                 PLD_Blue           = 0x0,
4953                                 PLD_Width          = 0x0,
4954                                 PLD_Height         = 0x0,
4955                                 PLD_UserVisible    = 0x1,
4956                                 PLD_Dock           = 0x0,
4957                                 PLD_Lid            = 0x0,
4958                                 PLD_Panel          = "FRONT",
4959                                 PLD_VerticalPosition = "",
4960                                 PLD_HorizontalPosition = "LEFT",
4961                                 PLD_Shape          = "UNKNOWN",
4962                                 PLD_GroupOrientation = 0x0,
4963                                 PLD_GroupToken     = 0x0,
4964                                 PLD_GroupPosition  = 0x0,
4965                                 PLD_Bay            = 0x0,
4966                                 PLD_Ejectable      = 0x0,
4967                                 PLD_EjectRequired  = 0x0,
4968                                 PLD_CabinetNumber  = 0x0,
4969                                 PLD_CardCageNumber = 0x0,
4970                                 PLD_Reference      = 0x0,
4971                                 PLD_Rotation       = 0x0,
4972                                 PLD_Order          = 0x0,
4973                                 PLD_VerticalOffset = 0x0,
4974                                 PLD_HorizontalOffset = 0x0)
4975
4976                         })
4977                     }
4978
4979                     Device (PR12)
4980                     {
4981                         Name (_ADR, 0x02)  // _ADR: Address
4982                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
4983                         {
4984                             0xFF, 
4985                             0xFF, 
4986                             Zero, 
4987                             Zero
4988                         })
4989                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
4990                         {
4991                             ToPLD (
4992                                 PLD_Revision       = 0x1,
4993                                 PLD_IgnoreColor    = 0x1,
4994                                 PLD_Red            = 0x0,
4995                                 PLD_Green          = 0x0,
4996                                 PLD_Blue           = 0x0,
4997                                 PLD_Width          = 0x0,
4998                                 PLD_Height         = 0x0,
4999                                 PLD_UserVisible    = 0x1,
5000                                 PLD_Dock           = 0x0,
5001                                 PLD_Lid            = 0x0,
5002                                 PLD_Panel          = "FRONT",
5003                                 PLD_VerticalPosition = "",
5004                                 PLD_HorizontalPosition = "CENTER",
5005                                 PLD_Shape          = "UNKNOWN",
5006                                 PLD_GroupOrientation = 0x0,
5007                                 PLD_GroupToken     = 0x0,
5008                                 PLD_GroupPosition  = 0x0,
5009                                 PLD_Bay            = 0x0,
5010                                 PLD_Ejectable      = 0x0,
5011                                 PLD_EjectRequired  = 0x0,
5012                                 PLD_CabinetNumber  = 0x0,
5013                                 PLD_CardCageNumber = 0x0,
5014                                 PLD_Reference      = 0x0,
5015                                 PLD_Rotation       = 0x0,
5016                                 PLD_Order          = 0x0,
5017                                 PLD_VerticalOffset = 0x0,
5018                                 PLD_HorizontalOffset = 0x0)
5019
5020                         })
5021                     }
5022
5023                     Device (PR13)
5024                     {
5025                         Name (_ADR, 0x03)  // _ADR: Address
5026                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5027                         {
5028                             0xFF, 
5029                             0xFF, 
5030                             Zero, 
5031                             Zero
5032                         })
5033                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5034                         {
5035                             ToPLD (
5036                                 PLD_Revision       = 0x1,
5037                                 PLD_IgnoreColor    = 0x1,
5038                                 PLD_Red            = 0x0,
5039                                 PLD_Green          = 0x0,
5040                                 PLD_Blue           = 0x0,
5041                                 PLD_Width          = 0x0,
5042                                 PLD_Height         = 0x0,
5043                                 PLD_UserVisible    = 0x1,
5044                                 PLD_Dock           = 0x0,
5045                                 PLD_Lid            = 0x0,
5046                                 PLD_Panel          = "FRONT",
5047                                 PLD_VerticalPosition = "",
5048                                 PLD_HorizontalPosition = "CENTER",
5049                                 PLD_Shape          = "UNKNOWN",
5050                                 PLD_GroupOrientation = 0x0,
5051                                 PLD_GroupToken     = 0x0,
5052                                 PLD_GroupPosition  = 0x0,
5053                                 PLD_Bay            = 0x0,
5054                                 PLD_Ejectable      = 0x0,
5055                                 PLD_EjectRequired  = 0x0,
5056                                 PLD_CabinetNumber  = 0x0,
5057                                 PLD_CardCageNumber = 0x0,
5058                                 PLD_Reference      = 0x0,
5059                                 PLD_Rotation       = 0x0,
5060                                 PLD_Order          = 0x0,
5061                                 PLD_VerticalOffset = 0x0,
5062                                 PLD_HorizontalOffset = 0x0)
5063
5064                         })
5065                     }
5066
5067                     Device (PR14)
5068                     {
5069                         Name (_ADR, 0x04)  // _ADR: Address
5070                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5071                         {
5072                             0xFF, 
5073                             0xFF, 
5074                             Zero, 
5075                             Zero
5076                         })
5077                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5078                         {
5079                             ToPLD (
5080                                 PLD_Revision       = 0x1,
5081                                 PLD_IgnoreColor    = 0x1,
5082                                 PLD_Red            = 0x0,
5083                                 PLD_Green          = 0x0,
5084                                 PLD_Blue           = 0x0,
5085                                 PLD_Width          = 0x0,
5086                                 PLD_Height         = 0x0,
5087                                 PLD_UserVisible    = 0x1,
5088                                 PLD_Dock           = 0x0,
5089                                 PLD_Lid            = 0x0,
5090                                 PLD_Panel          = "FRONT",
5091                                 PLD_VerticalPosition = "",
5092                                 PLD_HorizontalPosition = "RIGHT",
5093                                 PLD_Shape          = "UNKNOWN",
5094                                 PLD_GroupOrientation = 0x0,
5095                                 PLD_GroupToken     = 0x0,
5096                                 PLD_GroupPosition  = 0x0,
5097                                 PLD_Bay            = 0x0,
5098                                 PLD_Ejectable      = 0x0,
5099                                 PLD_EjectRequired  = 0x0,
5100                                 PLD_CabinetNumber  = 0x0,
5101                                 PLD_CardCageNumber = 0x0,
5102                                 PLD_Reference      = 0x0,
5103                                 PLD_Rotation       = 0x0,
5104                                 PLD_Order          = 0x0,
5105                                 PLD_VerticalOffset = 0x0,
5106                                 PLD_HorizontalOffset = 0x0)
5107
5108                         })
5109                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5110                         {
5111                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5112                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5113                             {
5114                                 While (One)
5115                                 {
5116                                     T_0 = ToInteger (Arg2)
5117                                     If ((T_0 == Zero))
5118                                     {
5119                                         If ((Arg1 == One))
5120                                         {
5121                                             Return (Buffer (One)
5122                                             {
5123                                                  0x07                                             /* . */
5124                                             })
5125                                         }
5126                                         Else
5127                                         {
5128                                             Return (Buffer (One)
5129                                             {
5130                                                  0x00                                             /* . */
5131                                             })
5132                                         }
5133                                     }
5134                                     Else
5135                                     {
5136                                         If ((T_0 == One))
5137                                         {
5138                                             If ((SDGV == 0xFF))
5139                                             {
5140                                                 Return (Zero)
5141                                             }
5142                                             Else
5143                                             {
5144                                                 Return (One)
5145                                             }
5146                                         }
5147                                         Else
5148                                         {
5149                                             If ((T_0 == 0x02))
5150                                             {
5151                                                 Return (SDGV) /* \SDGV */
5152                                             }
5153                                         }
5154                                     }
5155
5156                                     Break
5157                                 }
5158                             }
5159
5160                             Return (Zero)
5161                         }
5162                     }
5163
5164                     Device (PR15)
5165                     {
5166                         Name (_ADR, 0x05)  // _ADR: Address
5167                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5168                         {
5169                             0xFF, 
5170                             0xFF, 
5171                             Zero, 
5172                             Zero
5173                         })
5174                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5175                         {
5176                             ToPLD (
5177                                 PLD_Revision       = 0x1,
5178                                 PLD_IgnoreColor    = 0x1,
5179                                 PLD_Red            = 0x0,
5180                                 PLD_Green          = 0x0,
5181                                 PLD_Blue           = 0x0,
5182                                 PLD_Width          = 0x0,
5183                                 PLD_Height         = 0x0,
5184                                 PLD_UserVisible    = 0x1,
5185                                 PLD_Dock           = 0x0,
5186                                 PLD_Lid            = 0x0,
5187                                 PLD_Panel          = "UNKNOWN",
5188                                 PLD_VerticalPosition = "LOWER",
5189                                 PLD_HorizontalPosition = "RIGHT",
5190                                 PLD_Shape          = "UNKNOWN",
5191                                 PLD_GroupOrientation = 0x0,
5192                                 PLD_GroupToken     = 0x0,
5193                                 PLD_GroupPosition  = 0x0,
5194                                 PLD_Bay            = 0x0,
5195                                 PLD_Ejectable      = 0x0,
5196                                 PLD_EjectRequired  = 0x0,
5197                                 PLD_CabinetNumber  = 0x0,
5198                                 PLD_CardCageNumber = 0x0,
5199                                 PLD_Reference      = 0x0,
5200                                 PLD_Rotation       = 0x0,
5201                                 PLD_Order          = 0x0,
5202                                 PLD_VerticalOffset = 0x0,
5203                                 PLD_HorizontalOffset = 0x0)
5204
5205                         })
5206                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5207                         {
5208                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5209                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5210                             {
5211                                 While (One)
5212                                 {
5213                                     T_0 = ToInteger (Arg2)
5214                                     If ((T_0 == Zero))
5215                                     {
5216                                         If ((Arg1 == One))
5217                                         {
5218                                             Return (Buffer (One)
5219                                             {
5220                                                  0x07                                             /* . */
5221                                             })
5222                                         }
5223                                         Else
5224                                         {
5225                                             Return (Buffer (One)
5226                                             {
5227                                                  0x00                                             /* . */
5228                                             })
5229                                         }
5230                                     }
5231                                     Else
5232                                     {
5233                                         If ((T_0 == One))
5234                                         {
5235                                             If ((SDGV == 0xFF))
5236                                             {
5237                                                 Return (Zero)
5238                                             }
5239                                             Else
5240                                             {
5241                                                 Return (One)
5242                                             }
5243                                         }
5244                                         Else
5245                                         {
5246                                             If ((T_0 == 0x02))
5247                                             {
5248                                                 Return (SDGV) /* \SDGV */
5249                                             }
5250                                         }
5251                                     }
5252
5253                                     Break
5254                                 }
5255                             }
5256
5257                             Return (Zero)
5258                         }
5259                     }
5260
5261                     Device (PR16)
5262                     {
5263                         Name (_ADR, 0x06)  // _ADR: Address
5264                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5265                         {
5266                             0xFF, 
5267                             0xFF, 
5268                             Zero, 
5269                             Zero
5270                         })
5271                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5272                         {
5273                             ToPLD (
5274                                 PLD_Revision       = 0x1,
5275                                 PLD_IgnoreColor    = 0x1,
5276                                 PLD_Red            = 0x0,
5277                                 PLD_Green          = 0x0,
5278                                 PLD_Blue           = 0x0,
5279                                 PLD_Width          = 0x0,
5280                                 PLD_Height         = 0x0,
5281                                 PLD_UserVisible    = 0x1,
5282                                 PLD_Dock           = 0x0,
5283                                 PLD_Lid            = 0x0,
5284                                 PLD_Panel          = "UNKNOWN",
5285                                 PLD_VerticalPosition = "LOWER",
5286                                 PLD_HorizontalPosition = "RIGHT",
5287                                 PLD_Shape          = "UNKNOWN",
5288                                 PLD_GroupOrientation = 0x0,
5289                                 PLD_GroupToken     = 0x0,
5290                                 PLD_GroupPosition  = 0x0,
5291                                 PLD_Bay            = 0x0,
5292                                 PLD_Ejectable      = 0x0,
5293                                 PLD_EjectRequired  = 0x0,
5294                                 PLD_CabinetNumber  = 0x0,
5295                                 PLD_CardCageNumber = 0x0,
5296                                 PLD_Reference      = 0x0,
5297                                 PLD_Rotation       = 0x0,
5298                                 PLD_Order          = 0x0,
5299                                 PLD_VerticalOffset = 0x0,
5300                                 PLD_HorizontalOffset = 0x0)
5301
5302                         })
5303                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5304                         {
5305                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5306                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5307                             {
5308                                 While (One)
5309                                 {
5310                                     T_0 = ToInteger (Arg2)
5311                                     If ((T_0 == Zero))
5312                                     {
5313                                         If ((Arg1 == One))
5314                                         {
5315                                             Return (Buffer (One)
5316                                             {
5317                                                  0x07                                             /* . */
5318                                             })
5319                                         }
5320                                         Else
5321                                         {
5322                                             Return (Buffer (One)
5323                                             {
5324                                                  0x00                                             /* . */
5325                                             })
5326                                         }
5327                                     }
5328                                     Else
5329                                     {
5330                                         If ((T_0 == One))
5331                                         {
5332                                             If ((SDGV == 0xFF))
5333                                             {
5334                                                 Return (Zero)
5335                                             }
5336                                             Else
5337                                             {
5338                                                 Return (One)
5339                                             }
5340                                         }
5341                                         Else
5342                                         {
5343                                             If ((T_0 == 0x02))
5344                                             {
5345                                                 Return (SDGV) /* \SDGV */
5346                                             }
5347                                         }
5348                                     }
5349
5350                                     Break
5351                                 }
5352                             }
5353
5354                             Return (Zero)
5355                         }
5356                     }
5357
5358                     Device (PR17)
5359                     {
5360                         Name (_ADR, 0x07)  // _ADR: Address
5361                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5362                         {
5363                             0xFF, 
5364                             0xFF, 
5365                             Zero, 
5366                             Zero
5367                         })
5368                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5369                         {
5370                             ToPLD (
5371                                 PLD_Revision       = 0x1,
5372                                 PLD_IgnoreColor    = 0x1,
5373                                 PLD_Red            = 0x0,
5374                                 PLD_Green          = 0x0,
5375                                 PLD_Blue           = 0x0,
5376                                 PLD_Width          = 0x0,
5377                                 PLD_Height         = 0x0,
5378                                 PLD_UserVisible    = 0x1,
5379                                 PLD_Dock           = 0x0,
5380                                 PLD_Lid            = 0x0,
5381                                 PLD_Panel          = "UNKNOWN",
5382                                 PLD_VerticalPosition = "LOWER",
5383                                 PLD_HorizontalPosition = "RIGHT",
5384                                 PLD_Shape          = "UNKNOWN",
5385                                 PLD_GroupOrientation = 0x0,
5386                                 PLD_GroupToken     = 0x0,
5387                                 PLD_GroupPosition  = 0x0,
5388                                 PLD_Bay            = 0x0,
5389                                 PLD_Ejectable      = 0x0,
5390                                 PLD_EjectRequired  = 0x0,
5391                                 PLD_CabinetNumber  = 0x0,
5392                                 PLD_CardCageNumber = 0x0,
5393                                 PLD_Reference      = 0x0,
5394                                 PLD_Rotation       = 0x0,
5395                                 PLD_Order          = 0x0,
5396                                 PLD_VerticalOffset = 0x0,
5397                                 PLD_HorizontalOffset = 0x0)
5398
5399                         })
5400                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5401                         {
5402                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5403                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5404                             {
5405                                 While (One)
5406                                 {
5407                                     T_0 = ToInteger (Arg2)
5408                                     If ((T_0 == Zero))
5409                                     {
5410                                         If ((Arg1 == One))
5411                                         {
5412                                             Return (Buffer (One)
5413                                             {
5414                                                  0x07                                             /* . */
5415                                             })
5416                                         }
5417                                         Else
5418                                         {
5419                                             Return (Buffer (One)
5420                                             {
5421                                                  0x00                                             /* . */
5422                                             })
5423                                         }
5424                                     }
5425                                     Else
5426                                     {
5427                                         If ((T_0 == One))
5428                                         {
5429                                             If ((SDGV == 0xFF))
5430                                             {
5431                                                 Return (Zero)
5432                                             }
5433                                             Else
5434                                             {
5435                                                 Return (One)
5436                                             }
5437                                         }
5438                                         Else
5439                                         {
5440                                             If ((T_0 == 0x02))
5441                                             {
5442                                                 Return (SDGV) /* \SDGV */
5443                                             }
5444                                         }
5445                                     }
5446
5447                                     Break
5448                                 }
5449                             }
5450
5451                             Return (Zero)
5452                         }
5453                     }
5454
5455                     Device (PR18)
5456                     {
5457                         Name (_ADR, 0x08)  // _ADR: Address
5458                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5459                         {
5460                             0xFF, 
5461                             0xFF, 
5462                             Zero, 
5463                             Zero
5464                         })
5465                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5466                         {
5467                             ToPLD (
5468                                 PLD_Revision       = 0x1,
5469                                 PLD_IgnoreColor    = 0x1,
5470                                 PLD_Red            = 0x0,
5471                                 PLD_Green          = 0x0,
5472                                 PLD_Blue           = 0x0,
5473                                 PLD_Width          = 0x0,
5474                                 PLD_Height         = 0x0,
5475                                 PLD_UserVisible    = 0x1,
5476                                 PLD_Dock           = 0x0,
5477                                 PLD_Lid            = 0x0,
5478                                 PLD_Panel          = "UNKNOWN",
5479                                 PLD_VerticalPosition = "LOWER",
5480                                 PLD_HorizontalPosition = "RIGHT",
5481                                 PLD_Shape          = "UNKNOWN",
5482                                 PLD_GroupOrientation = 0x0,
5483                                 PLD_GroupToken     = 0x0,
5484                                 PLD_GroupPosition  = 0x0,
5485                                 PLD_Bay            = 0x0,
5486                                 PLD_Ejectable      = 0x0,
5487                                 PLD_EjectRequired  = 0x0,
5488                                 PLD_CabinetNumber  = 0x0,
5489                                 PLD_CardCageNumber = 0x0,
5490                                 PLD_Reference      = 0x0,
5491                                 PLD_Rotation       = 0x0,
5492                                 PLD_Order          = 0x0,
5493                                 PLD_VerticalOffset = 0x0,
5494                                 PLD_HorizontalOffset = 0x0)
5495
5496                         })
5497                     }
5498                 }
5499             }
5500
5501             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
5502             OperationRegion (USBR, PCI_Config, 0x54, 0x04)
5503             Field (USBR, WordAcc, NoLock, Preserve)
5504             {
5505                 Offset (0x01), 
5506                 PMEE,   1, 
5507                     ,   6, 
5508                 PMES,   1
5509             }
5510
5511             Method (_STA, 0, NotSerialized)  // _STA: Status
5512             {
5513                 If ((XHCI == Zero))
5514                 {
5515                     Return (0x0F)
5516                 }
5517                 Else
5518                 {
5519                     Return (Zero)
5520                 }
5521             }
5522
5523             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
5524             {
5525             }
5526
5527             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
5528             {
5529                 Return (Zero)
5530             }
5531
5532             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
5533             {
5534                 Return (Package (0x01)
5535                 {
5536                     USBC
5537                 })
5538             }
5539         }
5540
5541         Device (SEC0)
5542         {
5543             Name (_ADR, 0x001A0000)  // _ADR: Address
5544             Name (_DEP, Package (0x01)  // _DEP: Dependencies
5545             {
5546                 PEPD
5547             })
5548             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
5549             OperationRegion (PMEB, PCI_Config, 0x84, 0x04)
5550             Field (PMEB, WordAcc, NoLock, Preserve)
5551             {
5552                 Offset (0x01), 
5553                 PMEE,   1, 
5554                     ,   6, 
5555                 PMES,   1
5556             }
5557
5558             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
5559             {
5560             }
5561
5562             Name (RBUF, ResourceTemplate ()
5563             {
5564                 Memory32Fixed (ReadWrite,
5565                     0x00000000,         // Address Base
5566                     0x00000000,         // Address Length
5567                     _Y09)
5568             })
5569             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
5570             {
5571                 If ((PAVP == 0x02))
5572                 {
5573                     CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._BAS, B0BA)  // _BAS: Base Address
5574                     CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._LEN, B0LN)  // _LEN: Length
5575                     B0BA = PAVB /* \PAVB */
5576                     B0LN = PAVL /* \PAVL */
5577                     Return (RBUF) /* \_SB_.PCI0.SEC0.RBUF */
5578                 }
5579
5580                 Return (ResourceTemplate ()
5581                 {
5582                 })
5583             }
5584         }
5585     }
5586
5587     Scope (_PR)
5588     {
5589         Processor (CPU0, 0x01, 0x00000000, 0x00) {}
5590         Processor (CPU1, 0x02, 0x00000000, 0x00) {}
5591         Processor (CPU2, 0x03, 0x00000000, 0x00) {}
5592         Processor (CPU3, 0x04, 0x00000000, 0x00) {}
5593     }
5594
5595     Mutex (MUTX, 0x00)
5596     OperationRegion (PRT0, SystemIO, 0x80, 0x04)
5597     Field (PRT0, DWordAcc, Lock, Preserve)
5598     {
5599         P80H,   32
5600     }
5601
5602     Method (P8XH, 2, Serialized)
5603     {
5604         If ((Arg0 == Zero))
5605         {
5606             P80D = ((P80D & 0xFFFFFF00) | Arg1)
5607         }
5608
5609         If ((Arg0 == One))
5610         {
5611             P80D = ((P80D & 0xFFFF00FF) | (Arg1 << 0x08))
5612         }
5613
5614         If ((Arg0 == 0x02))
5615         {
5616             P80D = ((P80D & 0xFF00FFFF) | (Arg1 << 0x10))
5617         }
5618
5619         If ((Arg0 == 0x03))
5620         {
5621             P80D = ((P80D & 0x00FFFFFF) | (Arg1 << 0x18))
5622         }
5623
5624         P80H = P80D /* \P80D */
5625     }
5626
5627     OperationRegion (SPRT, SystemIO, 0xB2, 0x02)
5628     Field (SPRT, ByteAcc, Lock, Preserve)
5629     {
5630         SSMP,   8
5631     }
5632
5633     Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
5634     {
5635         GPIC = Arg0
5636         PICM = Arg0
5637     }
5638
5639     OperationRegion (SWC0, SystemIO, 0x0610, 0x0F)
5640     Field (SWC0, ByteAcc, NoLock, Preserve)
5641     {
5642         G1S,    8, 
5643         Offset (0x04), 
5644         G1E,    8, 
5645         Offset (0x0A), 
5646         G1S2,   8, 
5647         G1S3,   8
5648     }
5649
5650     OperationRegion (SWC1, SystemIO, PMBS, 0x2C)
5651     Field (SWC1, DWordAcc, NoLock, Preserve)
5652     {
5653         Offset (0x20), 
5654         G0S,    32, 
5655         Offset (0x28), 
5656         G0EN,   32
5657     }
5658
5659     Method (PPTS, 1, NotSerialized)
5660     {
5661         P80D = Zero
5662         P8XH (Zero, Arg0)
5663         G1S3 = Ones
5664         G1S2 = Ones
5665         G1S = One
5666         G1E = One
5667         G0S = Ones
5668         If (CondRefOf (TCGM))
5669         {
5670             \_SB.PCI0.LPCB.TPM.PTS (Arg0)
5671         }
5672     }
5673
5674     Method (PWAK, 1, Serialized)
5675     {
5676         P8XH (One, 0xAB)
5677         If (NEXP)
5678         {
5679             If ((OSCC & 0x02))
5680             {
5681                 \_SB.PCI0.NHPG ()
5682             }
5683
5684             If ((OSCC & 0x04))
5685             {
5686                 \_SB.PCI0.NPME ()
5687             }
5688         }
5689
5690         If (((Arg0 == 0x03) || (Arg0 == 0x04)))
5691         {
5692             If ((PFLV == FMBL))
5693             {
5694                 If ((Arg0 == 0x04))
5695                 {
5696                     PNOT ()
5697                 }
5698             }
5699
5700             If ((CFGD & 0x01000000)) {}
5701             If ((OSYS == 0x07D2))
5702             {
5703                 If ((CFGD & One))
5704                 {
5705                     If ((\_PR.CPU0._PPC > Zero))
5706                     {
5707                         \_PR.CPU0._PPC -= One
5708                         PNOT ()
5709                         \_PR.CPU0._PPC += One
5710                         PNOT ()
5711                     }
5712                     Else
5713                     {
5714                         \_PR.CPU0._PPC += One
5715                         PNOT ()
5716                         \_PR.CPU0._PPC -= One
5717                         PNOT ()
5718                     }
5719                 }
5720             }
5721         }
5722     }
5723
5724     Method (PNOT, 0, Serialized)
5725     {
5726         If (MPEN)
5727         {
5728             If ((PDC0 & 0x08))
5729             {
5730                 Notify (\_PR.CPU0, 0x80) // Performance Capability Change
5731                 If ((PDC0 & 0x10))
5732                 {
5733                     Sleep (0x64)
5734                     Notify (\_PR.CPU0, 0x81) // C-State Change
5735                 }
5736             }
5737
5738             If ((PDC1 & 0x08))
5739             {
5740                 Notify (\_PR.CPU1, 0x80) // Performance Capability Change
5741                 If ((PDC1 & 0x10))
5742                 {
5743                     Sleep (0x64)
5744                     Notify (\_PR.CPU1, 0x81) // C-State Change
5745                 }
5746             }
5747
5748             If ((PDC2 & 0x08))
5749             {
5750                 Notify (\_PR.CPU2, 0x80) // Performance Capability Change
5751                 If ((PDC2 & 0x10))
5752                 {
5753                     Sleep (0x64)
5754                     Notify (\_PR.CPU2, 0x81) // C-State Change
5755                 }
5756             }
5757
5758             If ((PDC3 & 0x08))
5759             {
5760                 Notify (\_PR.CPU3, 0x80) // Performance Capability Change
5761                 If ((PDC3 & 0x10))
5762                 {
5763                     Sleep (0x64)
5764                     Notify (\_PR.CPU3, 0x81) // C-State Change
5765                 }
5766             }
5767         }
5768         Else
5769         {
5770             Notify (\_PR.CPU0, 0x80) // Performance Capability Change
5771             Sleep (0x64)
5772             Notify (\_PR.CPU0, 0x81) // C-State Change
5773         }
5774     }
5775
5776     Scope (_SB)
5777     {
5778         Name (CRTT, 0x6E)
5779         Name (ACTT, 0x55)
5780         Name (SCR0, 0x0102)
5781         Name (SCR1, 0x0102)
5782         Name (SCR2, 0x0102)
5783         Name (SCR3, 0x0102)
5784         Name (GCR0, 0x46)
5785         Name (GCR1, 0x46)
5786         Name (GCR2, 0x46)
5787         Name (GCR3, 0x46)
5788         Name (GCR4, 0x46)
5789         Name (PST0, 0x3C)
5790         Name (PST1, 0x3C)
5791         Name (PST2, 0x3C)
5792         Name (PST3, 0x3C)
5793         Name (PST4, 0x3C)
5794         Name (LPMV, 0x03)
5795         Name (PDBG, Zero)
5796         Name (PDPM, One)
5797         Name (PDBP, One)
5798         Name (DLPO, Package (0x06)
5799         {
5800             One, 
5801             One, 
5802             One, 
5803             0x19, 
5804             One, 
5805             One
5806         })
5807         Name (BRQD, Zero)
5808         Name (PSC1, Zero)
5809         Name (PSC2, Zero)
5810         Name (PSC3, Zero)
5811         Name (PSA1, Zero)
5812         Name (PSA2, Zero)
5813         Name (PSA3, Zero)
5814         Method (_INI, 0, NotSerialized)  // _INI: Initialize
5815         {
5816             CRTT = DPCT /* \DPCT */
5817             ACTT = DPPT /* \DPPT */
5818             GCR0 = DGC0 /* \DGC0 */
5819             GCR1 = DGC1 /* \DGC1 */
5820             GCR2 = DGC2 /* \DGC2 */
5821             GCR3 = DGC3 /* \DGC3 */
5822             GCR4 = DGC4 /* \DGC4 */
5823             PST0 = DGP0 /* \DGP0 */
5824             PST1 = DGP1 /* \DGP1 */
5825             PST2 = DGP2 /* \DGP2 */
5826             PST3 = DGP3 /* \DGP3 */
5827             PST4 = DGP4 /* \DGP4 */
5828             SCR0 = DSC0 /* \DSC0 */
5829             SCR1 = DSC1 /* \DSC1 */
5830             SCR2 = DSC2 /* \DSC2 */
5831             SCR3 = DSC3 /* \DSC3 */
5832             LPMV = DLPM /* \DLPM */
5833             PDBG = DDBG /* \DDBG */
5834             Index (DLPO, One) = LPOE /* \LPOE */
5835             Index (DLPO, 0x02) = LPPS /* \LPPS */
5836             Index (DLPO, 0x03) = LPST /* \LPST */
5837             Index (DLPO, 0x04) = LPPC /* \LPPC */
5838             Index (DLPO, 0x05) = LPPF /* \LPPF */
5839             PDPM = DPME /* \DPME */
5840         }
5841
5842         Scope (PCI0)
5843         {
5844             Method (_INI, 0, NotSerialized)  // _INI: Initialize
5845             {
5846                 OSYS = 0x07D0
5847                 If (CondRefOf (\_OSI, Local0))
5848                 {
5849                     If (_OSI ("Windows 2001"))
5850                     {
5851                         OSYS = 0x07D1
5852                     }
5853
5854                     If (_OSI ("Windows 2001 SP1"))
5855                     {
5856                         OSYS = 0x07D1
5857                     }
5858
5859                     If (_OSI ("Windows 2001 SP2"))
5860                     {
5861                         OSYS = 0x07D2
5862                     }
5863
5864                     If (_OSI ("Windows 2006"))
5865                     {
5866                         OSYS = 0x07D6
5867                     }
5868
5869                     If (_OSI ("Windows 2009"))
5870                     {
5871                         OSYS = 0x07D9
5872                     }
5873
5874                     If (_OSI ("Windows 2012"))
5875                     {
5876                         OSYS = 0x07DC
5877                     }
5878
5879                     If (_OSI ("Windows 2013"))
5880                     {
5881                         OSYS = 0x07DD
5882                     }
5883                 }
5884             }
5885
5886             Method (NHPG, 0, Serialized)
5887             {
5888             }
5889
5890             Method (NPME, 0, Serialized)
5891             {
5892             }
5893         }
5894
5895         Device (GPED)
5896         {
5897             Name (_ADR, Zero)  // _ADR: Address
5898             Name (_HID, "INT0002" /* Virtual GPIO Controller */)  // _HID: Hardware ID
5899             Name (_CID, "INT0002" /* Virtual GPIO Controller */)  // _CID: Compatible ID
5900             Name (_DDN, "Virtual GPIO controller")  // _DDN: DOS Device Name
5901             Name (_UID, One)  // _UID: Unique ID
5902             Name (INST, One)
5903             Name (XTMP, Zero)
5904             OperationRegion (SCIS, SystemMemory, 0xFED030C0, 0x04)
5905             Field (SCIS, DWordAcc, NoLock, Preserve)
5906             {
5907                 LGBE,   1, 
5908                 LHAD,   1, 
5909                 LATA,   1, 
5910                 LDIO,   1, 
5911                 LARD,   1, 
5912                 LIO1,   1, 
5913                 LCEP,   1, 
5914                 LANB,   1, 
5915                 LHCI,   1, 
5916                 LOTG,   1, 
5917                 LECI,   1, 
5918                 LHSI,   1
5919             }
5920
5921             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
5922             {
5923                 Return (SOCS) /* \SOCS */
5924             }
5925
5926             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
5927             {
5928                 If ((Arg0 == ToUUID ("8b38b469-6f95-4b08-9b02-2defcc2d2c35")))
5929                 {
5930                     If ((Arg2 == Zero))
5931                     {
5932                         If ((Arg1 == One))
5933                         {
5934                             Return (Buffer (One)
5935                             {
5936                                  0x03                                             /* . */
5937                             })
5938                         }
5939                     }
5940
5941                     If ((Arg2 == One))
5942                     {
5943                         Return ((PMBS + 0x20))
5944                     }
5945
5946                     Return (Zero)
5947                 }
5948                 Else
5949                 {
5950                     Return (Buffer (One)
5951                     {
5952                          0x00                                             /* . */
5953                     })
5954                 }
5955             }
5956
5957             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
5958             {
5959                 Name (RBUF, ResourceTemplate ()
5960                 {
5961                     Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
5962                     {
5963                         0x00000009,
5964                     }
5965                 })
5966                 Return (RBUF) /* \_SB_.GPED._CRS.RBUF */
5967             }
5968
5969             Method (_STA, 0, NotSerialized)  // _STA: Status
5970             {
5971                 Return (0x0F)
5972             }
5973
5974             Method (_AEI, 0, Serialized)  // _AEI: ACPI Event Interrupts
5975             {
5976                 Name (RBUF, ResourceTemplate ()
5977                 {
5978                     GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullDown, 0x0000,
5979                         "\\_SB.GPED", 0x00, ResourceConsumer, ,
5980                         )
5981                         {   // Pin list
5982                             0x0002
5983                         }
5984                 })
5985                 Return (RBUF) /* \_SB_.GPED._AEI.RBUF */
5986             }
5987
5988             Method (_L02, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
5989             {
5990                 If ((XHCI == Zero))
5991                 {
5992                     If ((^^PCI0.EHC1.PMES == One))
5993                     {
5994                         ^^PCI0.EHC1.PMEE = Zero
5995                         Local0 = ^^PCI0.EHC1.PMEE /* \_SB_.PCI0.EHC1.PMEE */
5996                         Notify (^^PCI0.EHC1, 0x02) // Device Wake
5997                     }
5998                 }
5999                 Else
6000                 {
6001                     If ((SOCS > 0x05))
6002                     {
6003                         XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6004                         If ((XTMP == 0x8000))
6005                         {
6006                             Notify (^^PCI0.XHC1, 0x02) // Device Wake
6007                         }
6008                     }
6009                     Else
6010                     {
6011                         If ((SOCS > 0x02))
6012                         {
6013                             XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6014                             If ((XTMP == 0x8000))
6015                             {
6016                                 ^^PCI0.XHC1.PMCH = 0x81
6017                                 Notify (^^PCI0.XHC1, 0x02) // Device Wake
6018                             }
6019                         }
6020                         Else
6021                         {
6022                             XTMP = (^^PCI0.XHC1.PMCS & 0x0103)
6023                             If ((XTMP == 0x0103))
6024                             {
6025                                 ^^PCI0.XHC1.PMCS = 0x0100
6026                                 Sleep (0x0A)
6027                                 XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6028                                 If ((XTMP == 0x8000))
6029                                 {
6030                                     ^^PCI0.XHC1.PMCH = 0x81
6031                                 }
6032                                 Else
6033                                 {
6034                                     ^^PCI0.XHC1.PMCS = 0x0103
6035                                 }
6036
6037                                 Sleep (0x0A)
6038                                 Notify (^^PCI0.XHC1, 0x02) // Device Wake
6039                             }
6040                             Else
6041                             {
6042                                 ^^PCI0.XHC1.PMCH = 0x81
6043                                 Sleep (0x0A)
6044                             }
6045                         }
6046                     }
6047                 }
6048
6049                 If ((OTGM != Zero))
6050                 {
6051                     If ((^^PCI0.OTG1.PMES == One))
6052                     {
6053                         ADBG ("OTG wake")
6054                         ^^PCI0.OTG1.PMEE = Zero
6055                         ^^PCI0.OTG1.CPME = Zero
6056                         ^^PCI0.OTG1.U2EN = Zero
6057                         ^^PCI0.OTG1.U3EN = Zero
6058                         Notify (^^PCI0.OTG1, 0x02) // Device Wake
6059                     }
6060                 }
6061
6062                 If ((^^PCI0.SEC0.PMES == One))
6063                 {
6064                     ^^PCI0.SEC0.PMEE = Zero
6065                     Local0 = ^^PCI0.SEC0.PMEE /* \_SB_.PCI0.SEC0.PMEE */
6066                     Notify (^^PCI0.SEC0, 0x02) // Device Wake
6067                 }
6068             }
6069         }
6070
6071         Device (GPO0)
6072         {
6073             Name (_ADR, Zero)  // _ADR: Address
6074             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6075             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6076             Name (_DDN, "ValleyView General Purpose Input/Output (GPIO) controller")  // _DDN: DOS Device Name
6077             Name (_UID, One)  // _UID: Unique ID
6078             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
6079             {
6080                 Name (RBUF, ResourceTemplate ()
6081                 {
6082                     Memory32Fixed (ReadWrite,
6083                         0xFED0C000,         // Address Base
6084                         0x00001000,         // Address Length
6085                         )
6086                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6087                     {
6088                         0x00000031,
6089                     }
6090                 })
6091                 Return (RBUF) /* \_SB_.GPO0._CRS.RBUF */
6092             }
6093
6094             Method (_STA, 0, NotSerialized)  // _STA: Status
6095             {
6096                 Return (0x0F)
6097             }
6098
6099             Name (AVBL, Zero)
6100             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6101             {
6102                 If ((Arg0 == 0x08))
6103                 {
6104                     AVBL = Arg1
6105                 }
6106             }
6107
6108             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6109             Field (GPOP, ByteAcc, NoLock, Preserve)
6110             {
6111                 Connection (
6112                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6113                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6114                         )
6115                         {   // Pin list
6116                             0x0002
6117                         }
6118                 ), 
6119                 CCU2,   1, 
6120                 Connection (
6121                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6122                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6123                         )
6124                         {   // Pin list
6125                             0x0003
6126                         }
6127                 ), 
6128                 CCU3,   1, 
6129                 Connection (
6130                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6131                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6132                         )
6133                         {   // Pin list
6134                             0x005F
6135                         }
6136                 ), 
6137                 TCON,   1, 
6138                 Connection (
6139                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6140                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6141                         )
6142                         {   // Pin list
6143                             0x0064
6144                         }
6145                 ), 
6146                 WWD3,   1
6147             }
6148         }
6149
6150         Device (GPO1)
6151         {
6152             Name (_ADR, Zero)  // _ADR: Address
6153             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6154             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6155             Name (_DDN, "ValleyView GPNCORE controller")  // _DDN: DOS Device Name
6156             Name (_UID, 0x02)  // _UID: Unique ID
6157             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
6158             {
6159                 Name (RBUF, ResourceTemplate ()
6160                 {
6161                     Memory32Fixed (ReadWrite,
6162                         0xFED0D000,         // Address Base
6163                         0x00001000,         // Address Length
6164                         )
6165                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6166                     {
6167                         0x00000030,
6168                     }
6169                 })
6170                 Return (RBUF) /* \_SB_.GPO1._CRS.RBUF */
6171             }
6172
6173             Name (AVBL, Zero)
6174             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6175             {
6176                 If ((Arg0 == 0x08))
6177                 {
6178                     AVBL = Arg1
6179                 }
6180             }
6181
6182             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6183             Field (GPOP, ByteAcc, NoLock, Preserve)
6184             {
6185                 Connection (
6186                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6187                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
6188                         )
6189                         {   // Pin list
6190                             0x000F
6191                         }
6192                 ), 
6193                 BST5,   1, 
6194                 Connection (
6195                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6196                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
6197                         )
6198                         {   // Pin list
6199                             0x0009
6200                         }
6201                 ), 
6202                 TCD3,   1
6203             }
6204
6205             Method (_STA, 0, NotSerialized)  // _STA: Status
6206             {
6207                 Return (0x0F)
6208             }
6209         }
6210
6211         Device (GPO2)
6212         {
6213             Name (_ADR, Zero)  // _ADR: Address
6214             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6215             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6216             Name (_DDN, "ValleyView GPSUS controller")  // _DDN: DOS Device Name
6217             Name (_UID, 0x03)  // _UID: Unique ID
6218             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
6219             {
6220                 Name (RBUF, ResourceTemplate ()
6221                 {
6222                     Memory32Fixed (ReadWrite,
6223                         0xFED0E000,         // Address Base
6224                         0x00001000,         // Address Length
6225                         )
6226                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6227                     {
6228                         0x00000032,
6229                     }
6230                 })
6231                 Return (RBUF) /* \_SB_.GPO2._CRS.RBUF */
6232             }
6233
6234             Method (_STA, 0, NotSerialized)  // _STA: Status
6235             {
6236                 Return (0x0F)
6237             }
6238
6239             Method (_AEI, 0, Serialized)  // _AEI: ACPI Event Interrupts
6240             {
6241                 Name (FBUF, ResourceTemplate ()
6242                 {
6243                     GpioInt (Edge, ActiveBoth, SharedAndWake, PullUp, 0x0000,
6244                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6245                         )
6246                         {   // Pin list
6247                             0x0012
6248                         }
6249                 })
6250                 Return (FBUF) /* \_SB_.GPO2._AEI.FBUF */
6251             }
6252
6253             Name (BMUX, Buffer (0x03)
6254             {
6255                  0x00, 0x01, 0x00                                 /* ... */
6256             })
6257             CreateByteField (BMUX, Zero, BBBY)
6258             CreateByteField (BMUX, 0x02, DDDT)
6259             Method (_E12, 0, NotSerialized)  // _Exx: Edge-Triggered GPE
6260             {
6261                 If (((AVBL == One) && (^^GPO1.AVBL == One)))
6262                 {
6263                     If ((USID == One))
6264                     {
6265                         ^^GPO1.BST5 = Zero
6266                         Sleep (0x05)
6267                         BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */
6268                         DDDT &= 0x7F
6269                         ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */
6270                         MOTG = One
6271                         ^^PCI0.XHC1.PWOF ()
6272                     }
6273                     Else
6274                     {
6275                         BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */
6276                         DDDT |= 0x80
6277                         ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */
6278                         Sleep (0x05)
6279                         ^^GPO1.BST5 = One
6280                         Sleep (0x05)
6281                         MOTG = Zero
6282                         ^^PCI0.XHC1.PWON ()
6283                     }
6284                 }
6285             }
6286
6287             Name (BMBQ, Buffer (0x03)
6288             {
6289                  0x00, 0x01, 0x00                                 /* ... */
6290             })
6291             CreateByteField (BMBQ, Zero, BBBQ)
6292             CreateByteField (BMBQ, 0x02, DDBQ)
6293             Method (BOST, 1, NotSerialized)
6294             {
6295                 BMBQ = ^^I2C1.BQ01 /* \_SB_.I2C1.BQ01 */
6296                 If ((Arg0 == One))
6297                 {
6298                     DDBQ &= 0xCF
6299                     DDBQ |= 0x20
6300                 }
6301                 Else
6302                 {
6303                     DDBQ &= 0xCF
6304                     DDBQ |= 0x10
6305                 }
6306
6307                 ^^I2C1.BQ01 = BMBQ /* \_SB_.GPO2.BMBQ */
6308             }
6309
6310             Name (BUFC, Buffer (0x03)
6311             {
6312                  0x00, 0x01, 0x00                                 /* ... */
6313             })
6314             CreateByteField (BUFC, Zero, BYAT)
6315             CreateByteField (BUFC, 0x02, DATA)
6316             Name (AVBL, Zero)
6317             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6318             {
6319                 If ((Arg0 == 0x08))
6320                 {
6321                     AVBL = Arg1
6322                 }
6323             }
6324
6325             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6326             Field (GPOP, ByteAcc, NoLock, Preserve)
6327             {
6328                 Connection (
6329                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6330                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6331                         )
6332                         {   // Pin list
6333                             0x0014
6334                         }
6335                 ), 
6336                 WFD3,   1, 
6337                 Connection (
6338                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6339                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6340                         )
6341                         {   // Pin list
6342                             0x0001
6343                         }
6344                 ), 
6345                 MOTG,   1, 
6346                 Connection (
6347                     GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
6348                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6349                         )
6350                         {   // Pin list
6351                             0x0012
6352                         }
6353                 ), 
6354                 USID,   1
6355             }
6356         }
6357
6358         Device (PEPD)
6359         {
6360             Name (_HID, "INT3396" /* Standard Power Management Controller */)  // _HID: Hardware ID
6361             Name (_CID, EisaId ("PNP0D80") /* Windows-compatible System Power Management Controller */)  // _CID: Compatible ID
6362             Name (_UID, One)  // _UID: Unique ID
6363             Name (PEPP, Zero)
6364             Name (DEVS, Package (0x01)
6365             {
6366                 Zero
6367             })
6368             Name (DEVX, Package (0x0E)
6369             {
6370                 Package (0x02)
6371                 {
6372                     "\\_SB.PCI0.XHC1", 
6373                     One
6374                 }, 
6375
6376                 Package (0x02)
6377                 {
6378                     "\\_SB.PCI0.GFX0", 
6379                     One
6380                 }, 
6381
6382                 Package (0x02)
6383                 {
6384                     "\\_SB.PCI0.GFX0.ISP0", 
6385                     One
6386                 }, 
6387
6388                 Package (0x02)
6389                 {
6390                     "\\_SB.PCI0.SEC0", 
6391                     One
6392                 }, 
6393
6394                 Package (0x02)
6395                 {
6396                     "\\_SB.I2C1", 
6397                     One
6398                 }, 
6399
6400                 Package (0x02)
6401                 {
6402                     "\\_SB.I2C2", 
6403                     One
6404                 }, 
6405
6406                 Package (0x02)
6407                 {
6408                     "\\_SB.I2C3", 
6409                     One
6410                 }, 
6411
6412                 Package (0x02)
6413                 {
6414                     "\\_SB.I2C4", 
6415                     One
6416                 }, 
6417
6418                 Package (0x02)
6419                 {
6420                     "\\_SB.I2C5", 
6421                     One
6422                 }, 
6423
6424                 Package (0x02)
6425                 {
6426                     "\\_SB.SDHA", 
6427                     One
6428                 }, 
6429
6430                 Package (0x02)
6431                 {
6432                     "\\_SB.SDHB", 
6433                     One
6434                 }, 
6435
6436                 Package (0x02)
6437                 {
6438                     "\\_SB.SDHC", 
6439                     One
6440                 }, 
6441
6442                 Package (0x02)
6443                 {
6444                     "\\_SB.URT1", 
6445                     One
6446                 }, 
6447
6448                 Package (0x02)
6449                 {
6450                     "\\_SB.URT2", 
6451                     One
6452                 }
6453             })
6454             Name (DEX1, Package (0x0D)
6455             {
6456                 Package (0x02)
6457                 {
6458                     "\\_SB.PCI0.XHC1", 
6459                     One
6460                 }, 
6461
6462                 Package (0x02)
6463                 {
6464                     "\\_SB.PCI0.GFX0", 
6465                     One
6466                 }, 
6467
6468                 Package (0x02)
6469                 {
6470                     "\\_SB.PCI0.GFX0.ISP0", 
6471                     One
6472                 }, 
6473
6474                 Package (0x02)
6475                 {
6476                     "\\_SB.PCI0.SEC0", 
6477                     One
6478                 }, 
6479
6480                 Package (0x02)
6481                 {
6482                     "\\_SB.I2C1", 
6483                     One
6484                 }, 
6485
6486                 Package (0x02)
6487                 {
6488                     "\\_SB.I2C2", 
6489                     One
6490                 }, 
6491
6492                 Package (0x02)
6493                 {
6494                     "\\_SB.I2C3", 
6495                     One
6496                 }, 
6497
6498                 Package (0x02)
6499                 {
6500                     "\\_SB.I2C4", 
6501                     One
6502                 }, 
6503
6504                 Package (0x02)
6505                 {
6506                     "\\_SB.SDHA", 
6507                     One
6508                 }, 
6509
6510                 Package (0x02)
6511                 {
6512                     "\\_SB.SDHB", 
6513                     One
6514                 }, 
6515
6516                 Package (0x02)
6517                 {
6518                     "\\_SB.SDHC", 
6519                     One
6520                 }, 
6521
6522                 Package (0x02)
6523                 {
6524                     "\\_SB.URT1", 
6525                     One
6526                 }, 
6527
6528                 Package (0x02)
6529                 {
6530                     "\\_SB.URT2", 
6531                     One
6532                 }
6533             })
6534             Name (DEX2, Package (0x0D)
6535             {
6536                 Package (0x02)
6537                 {
6538                     "\\_SB.PCI0.XHC1", 
6539                     One
6540                 }, 
6541
6542                 Package (0x02)
6543                 {
6544                     "\\_SB.PCI0.GFX0", 
6545                     One
6546                 }, 
6547
6548                 Package (0x02)
6549                 {
6550                     "\\_SB.PCI0.GFX0.ISP0", 
6551                     One
6552                 }, 
6553
6554                 Package (0x02)
6555                 {
6556                     "\\_SB.PCI0.SEC0", 
6557                     One
6558                 }, 
6559
6560                 Package (0x02)
6561                 {
6562                     "\\_SB.I2C1", 
6563                     One
6564                 }, 
6565
6566                 Package (0x02)
6567                 {
6568                     "\\_SB.I2C2", 
6569                     One
6570                 }, 
6571
6572                 Package (0x02)
6573                 {
6574                     "\\_SB.I2C3", 
6575                     One
6576                 }, 
6577
6578                 Package (0x02)
6579                 {
6580                     "\\_SB.I2C4", 
6581                     One
6582                 }, 
6583
6584                 Package (0x02)
6585                 {
6586                     "\\_SB.SDHA", 
6587                     One
6588                 }, 
6589
6590                 Package (0x02)
6591                 {
6592                     "\\_SB.SDHB", 
6593                     One
6594                 }, 
6595
6596                 Package (0x02)
6597                 {
6598                     "\\_SB.SDHD", 
6599                     One
6600                 }, 
6601
6602                 Package (0x02)
6603                 {
6604                     "\\_SB.URT1", 
6605                     One
6606                 }, 
6607
6608                 Package (0x02)
6609                 {
6610                     "\\_SB.URT2", 
6611                     One
6612                 }
6613             })
6614             Name (CDMP, Package (0x02) {})
6615             Name (DEVY, Package (0x13)
6616             {
6617                 Package (0x03)
6618                 {
6619                     "\\_PR.CPU0", 
6620                     One, 
6621                     Package (0x02)
6622                     {
6623                         Zero, 
6624                         Package (0x02)
6625                         {
6626                             0xFF, 
6627                             Zero
6628                         }
6629                     }
6630                 }, 
6631
6632                 Package (0x03)
6633                 {
6634                     "\\_PR.CPU1", 
6635                     One, 
6636                     Package (0x02)
6637                     {
6638                         Zero, 
6639                         Package (0x02)
6640                         {
6641                             0xFF, 
6642                             Zero
6643                         }
6644                     }
6645                 }, 
6646
6647                 Package (0x03)
6648                 {
6649                     "\\_PR.CPU2", 
6650                     One, 
6651                     Package (0x02)
6652                     {
6653                         Zero, 
6654                         Package (0x02)
6655                         {
6656                             0xFF, 
6657                             Zero
6658                         }
6659                     }
6660                 }, 
6661
6662                 Package (0x03)
6663                 {
6664                     "\\_PR.CPU3", 
6665                     One, 
6666                     Package (0x02)
6667                     {
6668                         Zero, 
6669                         Package (0x02)
6670                         {
6671                             0xFF, 
6672                             Zero
6673                         }
6674                     }
6675                 }, 
6676
6677                 Package (0x03)
6678                 {
6679                     "\\_SB.PCI0.GFX0", 
6680                     One, 
6681                     Package (0x02)
6682                     {
6683                         Zero, 
6684                         Package (0x02)
6685                         {
6686                             0xFF, 
6687                             0x03
6688                         }
6689                     }
6690                 }, 
6691
6692                 Package (0x03)
6693                 {
6694                     "\\_SB.PCI0.GFX0.ISP0", 
6695                     One, 
6696                     Package (0x02)
6697                     {
6698                         Zero, 
6699                         Package (0x02)
6700                         {
6701                             0xFF, 
6702                             0x03
6703                         }
6704                     }
6705                 }, 
6706
6707                 Package (0x03)
6708                 {
6709                     "\\_SB.I2C1", 
6710                     One, 
6711                     Package (0x05)
6712                     {
6713                         Zero, 
6714                         Package (0x02)
6715                         {
6716                             Zero, 
6717                             Zero
6718                         }, 
6719
6720                         Package (0x02)
6721                         {
6722                             One, 
6723                             0x03
6724                         }, 
6725
6726                         Package (0x02)
6727                         {
6728                             0x02, 
6729                             0x03
6730                         }, 
6731
6732                         Package (0x02)
6733                         {
6734                             0x03, 
6735                             0x03
6736                         }
6737                     }
6738                 }, 
6739
6740                 Package (0x03)
6741                 {
6742                     "\\_SB.I2C2", 
6743                     One, 
6744                     Package (0x05)
6745                     {
6746                         Zero, 
6747                         Package (0x02)
6748                         {
6749                             Zero, 
6750                             Zero
6751                         }, 
6752
6753                         Package (0x02)
6754                         {
6755                             One, 
6756                             0x03
6757                         }, 
6758
6759                         Package (0x02)
6760                         {
6761                             0x02, 
6762                             0x03
6763                         }, 
6764
6765                         Package (0x02)
6766                         {
6767                             0x03, 
6768                             0x03
6769                         }
6770                     }
6771                 }, 
6772
6773                 Package (0x03)
6774                 {
6775                     "\\_SB.I2C3", 
6776                     One, 
6777                     Package (0x05)
6778                     {
6779                         Zero, 
6780                         Package (0x02)
6781                         {
6782                             Zero, 
6783                             Zero
6784                         }, 
6785
6786                         Package (0x02)
6787                         {
6788                             One, 
6789                             0x03
6790                         }, 
6791
6792                         Package (0x02)
6793                         {
6794                             0x02, 
6795                             0x03
6796                         }, 
6797
6798                         Package (0x02)
6799                         {
6800                             0x03, 
6801                             0x03
6802                         }
6803                     }
6804                 }, 
6805
6806                 Package (0x03)
6807                 {
6808                     "\\_SB.I2C4", 
6809                     One, 
6810                     Package (0x05)
6811                     {
6812                         Zero, 
6813                         Package (0x02)
6814                         {
6815                             Zero, 
6816                             Zero
6817                         }, 
6818
6819                         Package (0x02)
6820                         {
6821                             One, 
6822                             0x03
6823                         }, 
6824
6825                         Package (0x02)
6826                         {
6827                             0x02, 
6828                             0x03
6829                         }, 
6830
6831                         Package (0x02)
6832                         {
6833                             0x03, 
6834                             0x03
6835                         }
6836                     }
6837                 }, 
6838
6839                 Package (0x03)
6840                 {
6841                     "\\_SB.I2C5", 
6842                     One, 
6843                     Package (0x05)
6844                     {
6845                         Zero, 
6846                         Package (0x02)
6847                         {
6848                             Zero, 
6849                             Zero
6850                         }, 
6851
6852                         Package (0x02)
6853                         {
6854                             One, 
6855                             0x03
6856                         }, 
6857
6858                         Package (0x02)
6859                         {
6860                             0x02, 
6861                             0x03
6862                         }, 
6863
6864                         Package (0x02)
6865                         {
6866                             0x03, 
6867                             0x03
6868                         }
6869                     }
6870                 }, 
6871
6872                 Package (0x03)
6873                 {
6874                     "\\_SB.PCI0.XHC1", 
6875                     One, 
6876                     Package (0x05)
6877                     {
6878                         Zero, 
6879                         Package (0x02)
6880                         {
6881                             Zero, 
6882                             0x03
6883                         }, 
6884
6885                         Package (0x02)
6886                         {
6887                             One, 
6888                             0x03
6889                         }, 
6890
6891                         Package (0x02)
6892                         {
6893                             0x02, 
6894                             0x03
6895                         }, 
6896
6897                         Package (0x02)
6898                         {
6899                             0x03, 
6900                             0x03
6901                         }
6902                     }
6903                 }, 
6904
6905                 Package (0x03)
6906                 {
6907                     "\\_SB.PCI0.SEC0", 
6908                     One, 
6909                     Package (0x05)
6910                     {
6911                         Zero, 
6912                         Package (0x02)
6913                         {
6914                             Zero, 
6915                             Zero
6916                         }, 
6917
6918                         Package (0x02)
6919                         {
6920                             One, 
6921                             0x03
6922                         }, 
6923
6924                         Package (0x02)
6925                         {
6926                             0x02, 
6927                             0x03
6928                         }, 
6929
6930                         Package (0x02)
6931                         {
6932                             0x03, 
6933                             0x03
6934                         }
6935                     }
6936                 }, 
6937
6938                 Package (0x03)
6939                 {
6940                     "\\_SB.LPEA", 
6941                     One, 
6942                     Package (0x05)
6943                     {
6944                         Zero, 
6945                         Package (0x02)
6946                         {
6947                             Zero, 
6948                             Zero
6949                         }, 
6950
6951                         Package (0x02)
6952                         {
6953                             One, 
6954                             Zero
6955                         }, 
6956
6957                         Package (0x02)
6958                         {
6959                             0x02, 
6960                             0x03
6961                         }, 
6962
6963                         Package (0x02)
6964                         {
6965                             0x03, 
6966                             0x03
6967                         }
6968                     }
6969                 }, 
6970
6971                 Package (0x03)
6972                 {
6973                     "\\_SB.SDHA", 
6974                     One, 
6975                     Package (0x05)
6976                     {
6977                         Zero, 
6978                         Package (0x02)
6979                         {
6980                             Zero, 
6981                             Zero
6982                         }, 
6983
6984                         Package (0x02)
6985                         {
6986                             One, 
6987                             0x03
6988                         }, 
6989
6990                         Package (0x02)
6991                         {
6992                             0x02, 
6993                             0x03
6994                         }, 
6995
6996                         Package (0x02)
6997                         {
6998                             0x03, 
6999                             0x03
7000                         }
7001                     }
7002                 }, 
7003
7004                 Package (0x03)
7005                 {
7006                     "\\_SB.SDHB", 
7007                     One, 
7008                     Package (0x05)
7009                     {
7010                         Zero, 
7011                         Package (0x02)
7012                         {
7013                             Zero, 
7014                             Zero
7015                         }, 
7016
7017                         Package (0x02)
7018                         {
7019                             One, 
7020                             0x03
7021                         }, 
7022
7023                         Package (0x02)
7024                         {
7025                             0x02, 
7026                             0x03
7027                         }, 
7028
7029                         Package (0x02)
7030                         {
7031                             0x03, 
7032                             0x03
7033                         }
7034                     }
7035                 }, 
7036
7037                 Package (0x03)
7038                 {
7039                     "\\_SB.SDHC", 
7040                     One, 
7041                     Package (0x05)
7042                     {
7043                         Zero, 
7044                         Package (0x02)
7045                         {
7046                             Zero, 
7047                             Zero
7048                         }, 
7049
7050                         Package (0x02)
7051                         {
7052                             One, 
7053                             0x03
7054                         }, 
7055
7056                         Package (0x02)
7057                         {
7058                             0x02, 
7059                             0x03
7060                         }, 
7061
7062                         Package (0x02)
7063                         {
7064                             0x03, 
7065                             0x03
7066                         }
7067                     }
7068                 }, 
7069
7070                 Package (0x03)
7071                 {
7072                     "\\_SB.URT1", 
7073                     One, 
7074                     Package (0x05)
7075                     {
7076                         Zero, 
7077                         Package (0x02)
7078                         {
7079                             Zero, 
7080                             Zero
7081                         }, 
7082
7083                         Package (0x02)
7084                         {
7085                             One, 
7086                             0x03
7087                         }, 
7088
7089                         Package (0x02)
7090                         {
7091                             0x02, 
7092                             0x03
7093                         }, 
7094
7095                         Package (0x02)
7096                         {
7097                             0x03, 
7098                             0x03
7099                         }
7100                     }
7101                 }, 
7102
7103                 Package (0x03)
7104                 {
7105                     "\\_SB.URT2", 
7106                     One, 
7107                     Package (0x05)
7108                     {
7109                         Zero, 
7110                         Package (0x02)
7111                         {
7112                             Zero, 
7113                             Zero
7114                         }, 
7115
7116                         Package (0x02)
7117                         {
7118                             One, 
7119                             0x03
7120                         }, 
7121
7122                         Package (0x02)
7123                         {
7124                             0x02, 
7125                             0x03
7126                         }, 
7127
7128                         Package (0x02)
7129                         {
7130                             0x03, 
7131                             0x03
7132                         }
7133                     }
7134                 }
7135             })
7136             Name (DEY1, Package (0x12)
7137             {
7138                 Package (0x03)
7139                 {
7140                     "\\_PR.CPU0", 
7141                     One, 
7142                     Package (0x02)
7143                     {
7144                         Zero, 
7145                         Package (0x02)
7146                         {
7147                             0xFF, 
7148                             Zero
7149                         }
7150                     }
7151                 }, 
7152
7153                 Package (0x03)
7154                 {
7155                     "\\_PR.CPU1", 
7156                     One, 
7157                     Package (0x02)
7158                     {
7159                         Zero, 
7160                         Package (0x02)
7161                         {
7162                             0xFF, 
7163                             Zero
7164                         }
7165                     }
7166                 }, 
7167
7168                 Package (0x03)
7169                 {
7170                     "\\_PR.CPU2", 
7171                     One, 
7172                     Package (0x02)
7173                     {
7174                         Zero, 
7175                         Package (0x02)
7176                         {
7177                             0xFF, 
7178                             Zero
7179                         }
7180                     }
7181                 }, 
7182
7183                 Package (0x03)
7184                 {
7185                     "\\_PR.CPU3", 
7186                     One, 
7187                     Package (0x02)
7188                     {
7189                         Zero, 
7190                         Package (0x02)
7191                         {
7192                             0xFF, 
7193                             Zero
7194                         }
7195                     }
7196                 }, 
7197
7198                 Package (0x03)
7199                 {
7200                     "\\_SB.PCI0.GFX0", 
7201                     One, 
7202                     Package (0x02)
7203                     {
7204                         Zero, 
7205                         Package (0x02)
7206                         {
7207                             0xFF, 
7208                             0x03
7209                         }
7210                     }
7211                 }, 
7212
7213                 Package (0x03)
7214                 {
7215                     "\\_SB.PCI0.GFX0.ISP0", 
7216                     One, 
7217                     Package (0x02)
7218                     {
7219                         Zero, 
7220                         Package (0x02)
7221                         {
7222                             0xFF, 
7223                             0x03
7224                         }
7225                     }
7226                 }, 
7227
7228                 Package (0x03)
7229                 {
7230                     "\\_SB.I2C1", 
7231                     One, 
7232                     Package (0x05)
7233                     {
7234                         Zero, 
7235                         Package (0x02)
7236                         {
7237                             Zero, 
7238                             Zero
7239                         }, 
7240
7241                         Package (0x02)
7242                         {
7243                             One, 
7244                             0x03
7245                         }, 
7246
7247                         Package (0x02)
7248                         {
7249                             0x02, 
7250                             0x03
7251                         }, 
7252
7253                         Package (0x02)
7254                         {
7255                             0x03, 
7256                             0x03
7257                         }
7258                     }
7259                 }, 
7260
7261                 Package (0x03)
7262                 {
7263                     "\\_SB.I2C2", 
7264                     One, 
7265                     Package (0x05)
7266                     {
7267                         Zero, 
7268                         Package (0x02)
7269                         {
7270                             Zero, 
7271                             Zero
7272                         }, 
7273
7274                         Package (0x02)
7275                         {
7276                             One, 
7277                             0x03
7278                         }, 
7279
7280                         Package (0x02)
7281                         {
7282                             0x02, 
7283                             0x03
7284                         }, 
7285
7286                         Package (0x02)
7287                         {
7288                             0x03, 
7289                             0x03
7290                         }
7291                     }
7292                 }, 
7293
7294                 Package (0x03)
7295                 {
7296                     "\\_SB.I2C3", 
7297                     One, 
7298                     Package (0x05)
7299                     {
7300                         Zero, 
7301                         Package (0x02)
7302                         {
7303                             Zero, 
7304                             Zero
7305                         }, 
7306
7307                         Package (0x02)
7308                         {
7309                             One, 
7310                             0x03
7311                         }, 
7312
7313                         Package (0x02)
7314                         {
7315                             0x02, 
7316                             0x03
7317                         }, 
7318
7319                         Package (0x02)
7320                         {
7321                             0x03, 
7322                             0x03
7323                         }
7324                     }
7325                 }, 
7326
7327                 Package (0x03)
7328                 {
7329                     "\\_SB.I2C4", 
7330                     One, 
7331                     Package (0x05)
7332                     {
7333                         Zero, 
7334                         Package (0x02)
7335                         {
7336                             Zero, 
7337                             Zero
7338                         }, 
7339
7340                         Package (0x02)
7341                         {
7342                             One, 
7343                             0x03
7344                         }, 
7345
7346                         Package (0x02)
7347                         {
7348                             0x02, 
7349                             0x03
7350                         }, 
7351
7352                         Package (0x02)
7353                         {
7354                             0x03, 
7355                             0x03
7356                         }
7357                     }
7358                 }, 
7359
7360                 Package (0x03)
7361                 {
7362                     "\\_SB.PCI0.XHC1", 
7363                     One, 
7364                     Package (0x05)
7365                     {
7366                         Zero, 
7367                         Package (0x02)
7368                         {
7369                             Zero, 
7370                             0x03
7371                         }, 
7372
7373                         Package (0x02)
7374                         {
7375                             One, 
7376                             0x03
7377                         }, 
7378
7379                         Package (0x02)
7380                         {
7381                             0x02, 
7382                             0x03
7383                         }, 
7384
7385                         Package (0x02)
7386                         {
7387                             0x03, 
7388                             0x03
7389                         }
7390                     }
7391                 }, 
7392
7393                 Package (0x03)
7394                 {
7395                     "\\_SB.PCI0.SEC0", 
7396                     One, 
7397                     Package (0x05)
7398                     {
7399                         Zero, 
7400                         Package (0x02)
7401                         {
7402                             Zero, 
7403                             Zero
7404                         }, 
7405
7406                         Package (0x02)
7407                         {
7408                             One, 
7409                             0x03
7410                         }, 
7411
7412                         Package (0x02)
7413                         {
7414                             0x02, 
7415                             0x03
7416                         }, 
7417
7418                         Package (0x02)
7419                         {
7420                             0x03, 
7421                             0x03
7422                         }
7423                     }
7424                 }, 
7425
7426                 Package (0x03)
7427                 {
7428                     "\\_SB.LPEA", 
7429                     One, 
7430                     Package (0x05)
7431                     {
7432                         Zero, 
7433                         Package (0x02)
7434                         {
7435                             Zero, 
7436                             Zero
7437                         }, 
7438
7439                         Package (0x02)
7440                         {
7441                             One, 
7442                             Zero
7443                         }, 
7444
7445                         Package (0x02)
7446                         {
7447                             0x02, 
7448                             0x03
7449                         }, 
7450
7451                         Package (0x02)
7452                         {
7453                             0x03, 
7454                             0x03
7455                         }
7456                     }
7457                 }, 
7458
7459                 Package (0x03)
7460                 {
7461                     "\\_SB.SDHA", 
7462                     One, 
7463                     Package (0x05)
7464                     {
7465                         Zero, 
7466                         Package (0x02)
7467                         {
7468                             Zero, 
7469                             Zero
7470                         }, 
7471
7472                         Package (0x02)
7473                         {
7474                             One, 
7475                             0x03
7476                         }, 
7477
7478                         Package (0x02)
7479                         {
7480                             0x02, 
7481                             0x03
7482                         }, 
7483
7484                         Package (0x02)
7485                         {
7486                             0x03, 
7487                             0x03
7488                         }
7489                     }
7490                 }, 
7491
7492                 Package (0x03)
7493                 {
7494                     "\\_SB.SDHB", 
7495                     One, 
7496                     Package (0x05)
7497                     {
7498                         Zero, 
7499                         Package (0x02)
7500                         {
7501                             Zero, 
7502                             Zero
7503                         }, 
7504
7505                         Package (0x02)
7506                         {
7507                             One, 
7508                             0x03
7509                         }, 
7510
7511                         Package (0x02)
7512                         {
7513                             0x02, 
7514                             0x03
7515                         }, 
7516
7517                         Package (0x02)
7518                         {
7519                             0x03, 
7520                             0x03
7521                         }
7522                     }
7523                 }, 
7524
7525                 Package (0x03)
7526                 {
7527                     "\\_SB.SDHC", 
7528                     One, 
7529                     Package (0x05)
7530                     {
7531                         Zero, 
7532                         Package (0x02)
7533                         {
7534                             Zero, 
7535                             Zero
7536                         }, 
7537
7538                         Package (0x02)
7539                         {
7540                             One, 
7541                             0x03
7542                         }, 
7543
7544                         Package (0x02)
7545                         {
7546                             0x02, 
7547                             0x03
7548                         }, 
7549
7550                         Package (0x02)
7551                         {
7552                             0x03, 
7553                             0x03
7554                         }
7555                     }
7556                 }, 
7557
7558                 Package (0x03)
7559                 {
7560                     "\\_SB.URT1", 
7561                     One, 
7562                     Package (0x05)
7563                     {
7564                         Zero, 
7565                         Package (0x02)
7566                         {
7567                             Zero, 
7568                             Zero
7569                         }, 
7570
7571                         Package (0x02)
7572                         {
7573                             One, 
7574                             0x03
7575                         }, 
7576
7577                         Package (0x02)
7578                         {
7579                             0x02, 
7580                             0x03
7581                         }, 
7582
7583                         Package (0x02)
7584                         {
7585                             0x03, 
7586                             0x03
7587                         }
7588                     }
7589                 }, 
7590
7591                 Package (0x03)
7592                 {
7593                     "\\_SB.URT2", 
7594                     One, 
7595                     Package (0x05)
7596                     {
7597                         Zero, 
7598                         Package (0x02)
7599                         {
7600                             Zero, 
7601                             Zero
7602                         }, 
7603
7604                         Package (0x02)
7605                         {
7606                             One, 
7607                             0x03
7608                         }, 
7609
7610                         Package (0x02)
7611                         {
7612                             0x02, 
7613                             0x03
7614                         }, 
7615
7616                         Package (0x02)
7617                         {
7618                             0x03, 
7619                             0x03
7620                         }
7621                     }
7622                 }
7623             })
7624             Name (DEY2, Package (0x12)
7625             {
7626                 Package (0x03)
7627                 {
7628                     "\\_PR.CPU0", 
7629                     One, 
7630                     Package (0x02)
7631                     {
7632                         Zero, 
7633                         Package (0x02)
7634                         {
7635                             0xFF, 
7636                             Zero
7637                         }
7638                     }
7639                 }, 
7640
7641                 Package (0x03)
7642                 {
7643                     "\\_PR.CPU1", 
7644                     One, 
7645                     Package (0x02)
7646                     {
7647                         Zero, 
7648                         Package (0x02)
7649                         {
7650                             0xFF, 
7651                             Zero
7652                         }
7653                     }
7654                 }, 
7655
7656                 Package (0x03)
7657                 {
7658                     "\\_PR.CPU2", 
7659                     One, 
7660                     Package (0x02)
7661                     {
7662                         Zero, 
7663                         Package (0x02)
7664                         {
7665                             0xFF, 
7666                             Zero
7667                         }
7668                     }
7669                 }, 
7670
7671                 Package (0x03)
7672                 {
7673                     "\\_PR.CPU3", 
7674                     One, 
7675                     Package (0x02)
7676                     {
7677                         Zero, 
7678                         Package (0x02)
7679                         {
7680                             0xFF, 
7681                             Zero
7682                         }
7683                     }
7684                 }, 
7685
7686                 Package (0x03)
7687                 {
7688                     "\\_SB.PCI0.GFX0", 
7689                     One, 
7690                     Package (0x02)
7691                     {
7692                         Zero, 
7693                         Package (0x02)
7694                         {
7695                             0xFF, 
7696                             0x03
7697                         }
7698                     }
7699                 }, 
7700
7701                 Package (0x03)
7702                 {
7703                     "\\_SB.PCI0.GFX0.ISP0", 
7704                     One, 
7705                     Package (0x02)
7706                     {
7707                         Zero, 
7708                         Package (0x02)
7709                         {
7710                             0xFF, 
7711                             0x03
7712                         }
7713                     }
7714                 }, 
7715
7716                 Package (0x03)
7717                 {
7718                     "\\_SB.I2C1", 
7719                     One, 
7720                     Package (0x05)
7721                     {
7722                         Zero, 
7723                         Package (0x02)
7724                         {
7725                             Zero, 
7726                             Zero
7727                         }, 
7728
7729                         Package (0x02)
7730                         {
7731                             One, 
7732                             0x03
7733                         }, 
7734
7735                         Package (0x02)
7736                         {
7737                             0x02, 
7738                             0x03
7739                         }, 
7740
7741                         Package (0x02)
7742                         {
7743                             0x03, 
7744                             0x03
7745                         }
7746                     }
7747                 }, 
7748
7749                 Package (0x03)
7750                 {
7751                     "\\_SB.I2C2", 
7752                     One, 
7753                     Package (0x05)
7754                     {
7755                         Zero, 
7756                         Package (0x02)
7757                         {
7758                             Zero, 
7759                             Zero
7760                         }, 
7761
7762                         Package (0x02)
7763                         {
7764                             One, 
7765                             0x03
7766                         }, 
7767
7768                         Package (0x02)
7769                         {
7770                             0x02, 
7771                             0x03
7772                         }, 
7773
7774                         Package (0x02)
7775                         {
7776                             0x03, 
7777                             0x03
7778                         }
7779                     }
7780                 }, 
7781
7782                 Package (0x03)
7783                 {
7784                     "\\_SB.I2C3", 
7785                     One, 
7786                     Package (0x05)
7787                     {
7788                         Zero, 
7789                         Package (0x02)
7790                         {
7791                             Zero, 
7792                             Zero
7793                         }, 
7794
7795                         Package (0x02)
7796                         {
7797                             One, 
7798                             0x03
7799                         }, 
7800
7801                         Package (0x02)
7802                         {
7803                             0x02, 
7804                             0x03
7805                         }, 
7806
7807                         Package (0x02)
7808                         {
7809                             0x03, 
7810                             0x03
7811                         }
7812                     }
7813                 }, 
7814
7815                 Package (0x03)
7816                 {
7817                     "\\_SB.I2C4", 
7818                     One, 
7819                     Package (0x05)
7820                     {
7821                         Zero, 
7822                         Package (0x02)
7823                         {
7824                             Zero, 
7825                             Zero
7826                         }, 
7827
7828                         Package (0x02)
7829                         {
7830                             One, 
7831                             0x03
7832                         }, 
7833
7834                         Package (0x02)
7835                         {
7836                             0x02, 
7837                             0x03
7838                         }, 
7839
7840                         Package (0x02)
7841                         {
7842                             0x03, 
7843                             0x03
7844                         }
7845                     }
7846                 }, 
7847
7848                 Package (0x03)
7849                 {
7850                     "\\_SB.PCI0.XHC1", 
7851                     One, 
7852                     Package (0x05)
7853                     {
7854                         Zero, 
7855                         Package (0x02)
7856                         {
7857                             Zero, 
7858                             0x03
7859                         }, 
7860
7861                         Package (0x02)
7862                         {
7863                             One, 
7864                             0x03
7865                         }, 
7866
7867                         Package (0x02)
7868                         {
7869                             0x02, 
7870                             0x03
7871                         }, 
7872
7873                         Package (0x02)
7874                         {
7875                             0x03, 
7876                             0x03
7877                         }
7878                     }
7879                 }, 
7880
7881                 Package (0x03)
7882                 {
7883                     "\\_SB.PCI0.SEC0", 
7884                     One, 
7885                     Package (0x05)
7886                     {
7887                         Zero, 
7888                         Package (0x02)
7889                         {
7890                             Zero, 
7891                             Zero
7892                         }, 
7893
7894                         Package (0x02)
7895                         {
7896                             One, 
7897                             0x03
7898                         }, 
7899
7900                         Package (0x02)
7901                         {
7902                             0x02, 
7903                             0x03
7904                         }, 
7905
7906                         Package (0x02)
7907                         {
7908                             0x03, 
7909                             0x03
7910                         }
7911                     }
7912                 }, 
7913
7914                 Package (0x03)
7915                 {
7916                     "\\_SB.LPEA", 
7917                     One, 
7918                     Package (0x05)
7919                     {
7920                         Zero, 
7921                         Package (0x02)
7922                         {
7923                             Zero, 
7924                             Zero
7925                         }, 
7926
7927                         Package (0x02)
7928                         {
7929                             One, 
7930                             Zero
7931                         }, 
7932
7933                         Package (0x02)
7934                         {
7935                             0x02, 
7936                             0x03
7937                         }, 
7938
7939                         Package (0x02)
7940                         {
7941                             0x03, 
7942                             0x03
7943                         }
7944                     }
7945                 }, 
7946
7947                 Package (0x03)
7948                 {
7949                     "\\_SB.SDHA", 
7950                     One, 
7951                     Package (0x05)
7952                     {
7953                         Zero, 
7954                         Package (0x02)
7955                         {
7956                             Zero, 
7957                             Zero
7958                         }, 
7959
7960                         Package (0x02)
7961                         {
7962                             One, 
7963                             0x03
7964                         }, 
7965
7966                         Package (0x02)
7967                         {
7968                             0x02, 
7969                             0x03
7970                         }, 
7971
7972                         Package (0x02)
7973                         {
7974                             0x03, 
7975                             0x03
7976                         }
7977                     }
7978                 }, 
7979
7980                 Package (0x03)
7981                 {
7982                     "\\_SB.SDHB", 
7983                     One, 
7984                     Package (0x05)
7985                     {
7986                         Zero, 
7987                         Package (0x02)
7988                         {
7989                             Zero, 
7990                             Zero
7991                         }, 
7992
7993                         Package (0x02)
7994                         {
7995                             One, 
7996                             0x03
7997                         }, 
7998
7999                         Package (0x02)
8000                         {
8001                             0x02, 
8002                             0x03
8003                         }, 
8004
8005                         Package (0x02)
8006                         {
8007                             0x03, 
8008                             0x03
8009                         }
8010                     }
8011                 }, 
8012
8013                 Package (0x03)
8014                 {
8015                     "\\_SB.SDHD", 
8016                     One, 
8017                     Package (0x05)
8018                     {
8019                         Zero, 
8020                         Package (0x02)
8021                         {
8022                             Zero, 
8023                             Zero
8024                         }, 
8025
8026                         Package (0x02)
8027                         {
8028                             One, 
8029                             0x03
8030                         }, 
8031
8032                         Package (0x02)
8033                         {
8034                             0x02, 
8035                             0x03
8036                         }, 
8037
8038                         Package (0x02)
8039                         {
8040                             0x03, 
8041                             0x03
8042                         }
8043                     }
8044                 }, 
8045
8046                 Package (0x03)
8047                 {
8048                     "\\_SB.URT1", 
8049                     One, 
8050                     Package (0x05)
8051                     {
8052                         Zero, 
8053                         Package (0x02)
8054                         {
8055                             Zero, 
8056                             Zero
8057                         }, 
8058
8059                         Package (0x02)
8060                         {
8061                             One, 
8062                             0x03
8063                         }, 
8064
8065                         Package (0x02)
8066                         {
8067                             0x02, 
8068                             0x03
8069                         }, 
8070
8071                         Package (0x02)
8072                         {
8073                             0x03, 
8074                             0x03
8075                         }
8076                     }
8077                 }, 
8078
8079                 Package (0x03)
8080                 {
8081                     "\\_SB.URT2", 
8082                     One, 
8083                     Package (0x05)
8084                     {
8085                         Zero, 
8086                         Package (0x02)
8087                         {
8088                             Zero, 
8089                             Zero
8090                         }, 
8091
8092                         Package (0x02)
8093                         {
8094                             One, 
8095                             0x03
8096                         }, 
8097
8098                         Package (0x02)
8099                         {
8100                             0x02, 
8101                             0x03
8102                         }, 
8103
8104                         Package (0x02)
8105                         {
8106                             0x03, 
8107                             0x03
8108                         }
8109                     }
8110                 }
8111             })
8112             Name (BCCD, Package (0x01)
8113             {
8114                 Package (0x02)
8115                 {
8116                     "\\_SB.SDHA", 
8117                     Package (0x01)
8118                     {
8119                         Package (0x03)
8120                         {
8121                             Package (0x05)
8122                             {
8123                                 Zero, 
8124                                 0x20, 
8125                                 Zero, 
8126                                 0x03, 
8127                                 Ones
8128                             }, 
8129
8130                             Package (0x03)
8131                             {
8132                                 0xFFFFFFFC, 
8133                                 Zero, 
8134                                 0x04
8135                             }, 
8136
8137                             Zero
8138                         }
8139                     }
8140                 }
8141             })
8142             Method (_STA, 0, NotSerialized)  // _STA: Status
8143             {
8144                 Return (0x0F)
8145             }
8146
8147             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
8148             {
8149                 If ((Arg0 == ToUUID ("b8febfe0-baf8-454b-aecd-49fb91137b21")))
8150                 {
8151                     If ((Arg2 == Zero))
8152                     {
8153                         Return (Buffer (One)
8154                         {
8155                              0x0F                                             /* . */
8156                         })
8157                     }
8158
8159                     If ((Arg2 == One))
8160                     {
8161                         PEPP = One
8162                         Return (0x0F)
8163                     }
8164
8165                     If ((Arg2 == 0x02))
8166                     {
8167                         If ((Arg1 == Zero))
8168                         {
8169                             Return (DEVS) /* \_SB_.PEPD.DEVS */
8170                         }
8171
8172                         If ((Arg1 == One))
8173                         {
8174                             If ((PMID == 0x02))
8175                             {
8176                                 Return (DEVX) /* \_SB_.PEPD.DEVX */
8177                             }
8178                             Else
8179                             {
8180                                 If ((PMID == 0x05))
8181                                 {
8182                                     Return (DEX2) /* \_SB_.PEPD.DEX2 */
8183                                 }
8184
8185                                 Return (DEX1) /* \_SB_.PEPD.DEX1 */
8186                             }
8187                         }
8188                     }
8189
8190                     If ((Arg2 == 0x03))
8191                     {
8192                         Index (CDMP, Zero) = "\\_SB.SDHA"
8193                         Index (CDMP, One) = EM1A /* \EM1A */
8194                         Return (CDMP) /* \_SB_.PEPD.CDMP */
8195                     }
8196                 }
8197
8198                 If ((Arg0 == ToUUID ("c4eb40a0-6cd2-11e2-bcfd-0800200c9a66")))
8199                 {
8200                     If ((Arg2 == Zero))
8201                     {
8202                         Return (Buffer (One)
8203                         {
8204                              0x07                                             /* . */
8205                         })
8206                     }
8207
8208                     If ((Arg2 == One))
8209                     {
8210                         If ((PMID == 0x02))
8211                         {
8212                             Return (DEVY) /* \_SB_.PEPD.DEVY */
8213                         }
8214                         Else
8215                         {
8216                             If ((PMID == 0x05))
8217                             {
8218                                 Return (DEY2) /* \_SB_.PEPD.DEY2 */
8219                             }
8220
8221                             Return (DEY1) /* \_SB_.PEPD.DEY1 */
8222                         }
8223                     }
8224
8225                     If ((Arg2 == 0x02))
8226                     {
8227                         Local0 = EM1A /* \EM1A */
8228                         Local0 += 0x84
8229                         Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (BCCD, Zero
8230                             )), One)), Zero)), Zero)), 0x04) = Local0
8231                         Return (BCCD) /* \_SB_.PEPD.BCCD */
8232                     }
8233                 }
8234
8235                 Return (One)
8236             }
8237         }
8238
8239         Device (SDHA)
8240         {
8241             Name (_ADR, Zero)  // _ADR: Address
8242             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8243             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8244             Name (_DDN, "Intel(R) eMMC Controller - 80860F14")  // _DDN: DOS Device Name
8245             Name (_UID, One)  // _UID: Unique ID
8246             Name (_DEP, Package (0x01)  // _DEP: Dependencies
8247             {
8248                 PEPD
8249             })
8250             Name (RBF1, ResourceTemplate ()
8251             {
8252                 Memory32Fixed (ReadWrite,
8253                     0x00000000,         // Address Base
8254                     0x00001000,         // Address Length
8255                     _Y0A)
8256                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8257                 {
8258                     0x0000002D,
8259                 }
8260             })
8261             Name (RBF2, ResourceTemplate ()
8262             {
8263                 Memory32Fixed (ReadWrite,
8264                     0x00000000,         // Address Base
8265                     0x00001000,         // Address Length
8266                     _Y0B)
8267                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8268                 {
8269                     0x0000002C,
8270                 }
8271             })
8272             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8273             {
8274                 CreateDWordField (RBF1, \_SB.SDHA._Y0A._BAS, B0B1)  // _BAS: Base Address
8275                 CreateDWordField (RBF1, \_SB.SDHA._Y0A._LEN, B0L1)  // _LEN: Length
8276                 B0B1 = EM0A /* \EM0A */
8277                 B0L1 = EM0L /* \EM0L */
8278                 CreateDWordField (RBF2, \_SB.SDHA._Y0B._BAS, B0B2)  // _BAS: Base Address
8279                 CreateDWordField (RBF2, \_SB.SDHA._Y0B._LEN, B0L2)  // _LEN: Length
8280                 B0B2 = EM0A /* \EM0A */
8281                 B0L2 = EM0L /* \EM0L */
8282                 If ((EMVR == One))
8283                 {
8284                     Return (RBF2) /* \_SB_.SDHA.RBF2 */
8285                 }
8286
8287                 Return (RBF1) /* \_SB_.SDHA.RBF1 */
8288             }
8289
8290             Method (_STA, 0, NotSerialized)  // _STA: Status
8291             {
8292                 Return (0x0F)
8293             }
8294
8295             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8296             {
8297                 PSAT |= 0x03
8298                 Local0 = PSAT /* \_SB_.SDHA.PSAT */
8299                 If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One))))
8300                 {
8301                     Sleep (0x02)
8302                 }
8303             }
8304
8305             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8306             {
8307                 PSAT &= 0xFFFFFFFC
8308                 Local0 = PSAT /* \_SB_.SDHA.PSAT */
8309                 If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One))))
8310                 {
8311                     Sleep (0x02)
8312                 }
8313             }
8314
8315             OperationRegion (KEYS, SystemMemory, EM1A, 0x0100)
8316             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8317             {
8318                 Offset (0x84), 
8319                 PSAT,   32
8320             }
8321
8322             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
8323             {
8324             }
8325
8326             Device (EMMD)
8327             {
8328                 Name (_ADR, 0x08)  // _ADR: Address
8329                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8330                 {
8331                     Return (Zero)
8332                 }
8333             }
8334         }
8335
8336         Device (SDHB)
8337         {
8338             Name (_ADR, Zero)  // _ADR: Address
8339             Name (_HID, "INT33BB" /* Intel Baytrail SD Host Controller */)  // _HID: Hardware ID
8340             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8341             Name (_DDN, "Intel(R) SDIO Controller - 80860F15")  // _DDN: DOS Device Name
8342             Name (_UID, 0x02)  // _UID: Unique ID
8343             Name (_HRV, 0x02)  // _HRV: Hardware Revision
8344             Name (_DEP, Package (0x02)  // _DEP: Dependencies
8345             {
8346                 PEPD, 
8347                 GPO2
8348             })
8349             Name (PSTS, Zero)
8350             Name (RBUF, ResourceTemplate ()
8351             {
8352                 Memory32Fixed (ReadWrite,
8353                     0x00000000,         // Address Base
8354                     0x00001000,         // Address Length
8355                     _Y0C)
8356                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8357                 {
8358                     0x0000002E,
8359                 }
8360             })
8361             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8362             {
8363                 CreateDWordField (RBUF, \_SB.SDHB._Y0C._BAS, B0BA)  // _BAS: Base Address
8364                 CreateDWordField (RBUF, \_SB.SDHB._Y0C._LEN, B0LN)  // _LEN: Length
8365                 B0BA = SI0A /* \SI0A */
8366                 B0LN = SI0L /* \SI0L */
8367                 Return (RBUF) /* \_SB_.SDHB.RBUF */
8368             }
8369
8370             Method (_STA, 0, NotSerialized)  // _STA: Status
8371             {
8372                 If ((STEP <= 0x04))
8373                 {
8374                     _HRV = SDMD /* \SDMD */
8375                 }
8376
8377                 If (((SI0A == Zero) || (SD2D == One)))
8378                 {
8379                     Return (Zero)
8380                 }
8381
8382                 Return (0x0F)
8383             }
8384
8385             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
8386             {
8387             }
8388
8389             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8390             {
8391                 PSAT |= 0x03
8392                 Local0 = PSAT /* \_SB_.SDHB.PSAT */
8393             }
8394
8395             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8396             {
8397                 PSAT &= 0xFFFFFFFC
8398                 Local0 = PSAT /* \_SB_.SDHB.PSAT */
8399                 If ((PSTS == Zero))
8400                 {
8401                     If ((^^GPO2.AVBL == One))
8402                     {
8403                         ^^GPO2.WFD3 = One
8404                         PSTS = One
8405                     }
8406                 }
8407             }
8408
8409             OperationRegion (KEYS, SystemMemory, SI1A, 0x0100)
8410             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8411             {
8412                 Offset (0x84), 
8413                 PSAT,   32
8414             }
8415
8416             Device (WLAN)
8417             {
8418                 Name (_ADR, One)  // _ADR: Address
8419                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
8420                 {
8421                     GPO2
8422                 })
8423                 Method (_STA, 0, NotSerialized)  // _STA: Status
8424                 {
8425                     If ((OSSL & 0x80))
8426                     {
8427                         Return (Zero)
8428                     }
8429
8430                     Return (0x0F)
8431                 }
8432
8433                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8434                 {
8435                     Return (Zero)
8436                 }
8437
8438                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8439                 {
8440                     Zero, 
8441                     Zero
8442                 })
8443                 Name (_S4W, 0x02)  // _S4W: S4 Device Wake State
8444                 Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
8445                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
8446                 {
8447                     Name (RBUF, ResourceTemplate ()
8448                     {
8449                         Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, )
8450                         {
8451                             0x00000045,
8452                         }
8453                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8454                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8455                             )
8456                             {   // Pin list
8457                                 0x0014
8458                             }
8459                     })
8460                     Return (RBUF) /* \_SB_.SDHB.WLAN._CRS.RBUF */
8461                 }
8462
8463                 Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
8464                 {
8465                 }
8466
8467                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8468                 {
8469                 }
8470
8471                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8472                 {
8473                 }
8474             }
8475
8476             Device (WLA2)
8477             {
8478                 Name (_ADR, 0x02)  // _ADR: Address
8479                 Method (_STA, 0, NotSerialized)  // _STA: Status
8480                 {
8481                     If ((OSSL & 0x80))
8482                     {
8483                         Return (Zero)
8484                     }
8485
8486                     Return (0x0F)
8487                 }
8488
8489                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8490                 {
8491                     Return (Zero)
8492                 }
8493
8494                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
8495                 {
8496                     Name (NAM, Buffer (0x0F)
8497                     {
8498                         "\\_SB.SDHB.WLAN"
8499                     })
8500                     Name (SPB, Buffer (0x0C)
8501                     {
8502                         /* 0000 */  0x8E, 0x18, 0x00, 0x01, 0x00, 0xC0, 0x02, 0x00,  /* ........ */
8503                         /* 0008 */  0x00, 0x01, 0x00, 0x00                           /* .... */
8504                     })
8505                     Name (END, ResourceTemplate ()
8506                     {
8507                     })
8508                     Concatenate (SPB, NAM, Local0)
8509                     Concatenate (Local0, END, Local1)
8510                     Return (Local1)
8511                 }
8512             }
8513
8514             Device (RTLW)
8515             {
8516                 Name (_ADR, One)  // _ADR: Address
8517                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
8518                 {
8519                     GPO2
8520                 })
8521                 Name (_HID, "RTL8723" /* Realtek Wireless Controller */)  // _HID: Hardware ID
8522                 Name (_CID, "RTL8723" /* Realtek Wireless Controller */)  // _CID: Compatible ID
8523                 Method (_STA, 0, NotSerialized)  // _STA: Status
8524                 {
8525                     If ((OSSL & 0x80))
8526                     {
8527                         Return (0x0F)
8528                     }
8529
8530                     Return (Zero)
8531                 }
8532
8533                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8534                 {
8535                     Return (Zero)
8536                 }
8537
8538                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8539                 {
8540                     Zero, 
8541                     Zero
8542                 })
8543                 Name (_S4W, 0x02)  // _S4W: S4 Device Wake State
8544                 Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
8545                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
8546                 {
8547                     Name (RBUF, ResourceTemplate ()
8548                     {
8549                         GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
8550                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8551                             )
8552                             {   // Pin list
8553                                 0x000F
8554                             }
8555                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8556                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8557                             )
8558                             {   // Pin list
8559                                 0x0014
8560                             }
8561                     })
8562                     Return (RBUF) /* \_SB_.SDHB.RTLW._CRS.RBUF */
8563                 }
8564
8565                 Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
8566                 {
8567                 }
8568
8569                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8570                 {
8571                     If ((^^^GPO2.AVBL == One))
8572                     {
8573                         ^^^GPO2.WFD3 = Zero
8574                         PSTS = Zero
8575                     }
8576                 }
8577
8578                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8579                 {
8580                     If ((PSTS == Zero))
8581                     {
8582                         If ((^^^GPO2.AVBL == One))
8583                         {
8584                             ^^^GPO2.WFD3 = One
8585                             PSTS = One
8586                         }
8587                     }
8588                 }
8589             }
8590         }
8591
8592         Device (SDHC)
8593         {
8594             Name (_ADR, Zero)  // _ADR: Address
8595             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8596             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8597             Name (_DDN, "Intel(R) SD Card Controller - 80860F16")  // _DDN: DOS Device Name
8598             Name (_UID, 0x03)  // _UID: Unique ID
8599             Name (_DEP, Package (0x02)  // _DEP: Dependencies
8600             {
8601                 PEPD, 
8602                 GPO0
8603             })
8604             Name (TDEP, Package (0x04)
8605             {
8606                 PEPD, 
8607                 GPO0, 
8608                 I2C5, 
8609                 ^I2C5.PMI2
8610             })
8611             Name (RBUF, ResourceTemplate ()
8612             {
8613                 Memory32Fixed (ReadWrite,
8614                     0x00000000,         // Address Base
8615                     0x00001000,         // Address Length
8616                     _Y0D)
8617                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8618                 {
8619                     0x0000002F,
8620                 }
8621                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8622                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8623                     )
8624                     {   // Pin list
8625                         0x0026
8626                     }
8627                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8628                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8629                     )
8630                     {   // Pin list
8631                         0x0026
8632                     }
8633             })
8634             Name (ABUF, ResourceTemplate ()
8635             {
8636                 Memory32Fixed (ReadWrite,
8637                     0x00000000,         // Address Base
8638                     0x00001000,         // Address Length
8639                     _Y0E)
8640                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8641                 {
8642                     0x0000002F,
8643                 }
8644                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8645                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8646                     )
8647                     {   // Pin list
8648                         0x0026
8649                     }
8650                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8651                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8652                     )
8653                     {   // Pin list
8654                         0x0026
8655                     }
8656                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8657                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8658                     )
8659                     {   // Pin list
8660                         0x0028
8661                     }
8662                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8663                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8664                     )
8665                     {   // Pin list
8666                         0x0029
8667                     }
8668             })
8669             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8670             {
8671                 CreateDWordField (RBUF, \_SB.SDHC._Y0D._BAS, B0BA)  // _BAS: Base Address
8672                 CreateDWordField (RBUF, \_SB.SDHC._Y0D._LEN, B0LN)  // _LEN: Length
8673                 B0BA = SD0A /* \SD0A */
8674                 B0LN = SD0L /* \SD0L */
8675                 CreateDWordField (ABUF, \_SB.SDHC._Y0E._BAS, B0BX)  // _BAS: Base Address
8676                 CreateDWordField (ABUF, \_SB.SDHC._Y0E._LEN, B0LX)  // _LEN: Length
8677                 B0BX = SD0A /* \SD0A */
8678                 B0LX = SD0L /* \SD0L */
8679                 If ((OSSL & 0x80))
8680                 {
8681                     Return (ABUF) /* \_SB_.SDHC.ABUF */
8682                 }
8683
8684                 Return (RBUF) /* \_SB_.SDHC.RBUF */
8685             }
8686
8687             Method (_STA, 0, NotSerialized)  // _STA: Status
8688             {
8689                 If (((SD0A == Zero) || (SD3D == One)))
8690                 {
8691                     Return (Zero)
8692                 }
8693
8694                 If ((PMID == 0x05))
8695                 {
8696                     ADBG ("XPWR_DCOVE")
8697                     Return (Zero)
8698                 }
8699
8700                 Return (0x0F)
8701             }
8702
8703             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8704             {
8705                 ADBG ("SD card-----ps3")
8706                 PSAT |= 0x03
8707                 Local0 = PSAT /* \_SB_.SDHC.PSAT */
8708                 If (CondRefOf (\_SB.I2C5.PMI2, Local2))
8709                 {
8710                     If ((^^I2C5.PMI2.AVBL == One))
8711                     {
8712                         ^^I2C5.PMI2.LDO7 = Zero
8713                         If ((^^I2C5.PMI2.AVBG == One))
8714                         {
8715                             ADBG ("SD card-----333ps3")
8716                             ^^I2C5.PMI2.GSDX = One
8717                             Sleep (0x1E)
8718                         }
8719                     }
8720                 }
8721             }
8722
8723             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8724             {
8725                 ADBG ("SD card-----ps0")
8726                 If (CondRefOf (\_SB.I2C5.PMI2, Local2))
8727                 {
8728                     If ((^^I2C5.PMI2.AVBL == One))
8729                     {
8730                         ^^I2C5.PMI2.LDO7 = One
8731                         If ((^^I2C5.PMI2.AVBG == One))
8732                         {
8733                             ADBG ("SD card-----000ps0")
8734                             ^^I2C5.PMI2.GSDX = One
8735                             Sleep (0x1E)
8736                         }
8737                     }
8738                 }
8739
8740                 PSAT &= 0xFFFFFFFC
8741                 Local0 = PSAT /* \_SB_.SDHC.PSAT */
8742             }
8743
8744             OperationRegion (KEYS, SystemMemory, SD1A, 0x0100)
8745             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8746             {
8747                 Offset (0x84), 
8748                 PSAT,   32
8749             }
8750         }
8751
8752         Device (SDHD)
8753         {
8754             Name (_ADR, Zero)  // _ADR: Address
8755             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8756             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8757             Name (_DDN, "Intel(R) SD Card Controller - 80860F16")  // _DDN: DOS Device Name
8758             Name (_UID, 0x03)  // _UID: Unique ID
8759             Name (_DEP, Package (0x04)  // _DEP: Dependencies
8760             {
8761                 PEPD, 
8762                 GPO0, 
8763                 I2C5, 
8764                 ^I2C5.PMI1
8765             })
8766             Name (RBUF, ResourceTemplate ()
8767             {
8768                 Memory32Fixed (ReadWrite,
8769                     0x00000000,         // Address Base
8770                     0x00001000,         // Address Length
8771                     _Y0F)
8772                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8773                 {
8774                     0x0000002F,
8775                 }
8776                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8777                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8778                     )
8779                     {   // Pin list
8780                         0x0026
8781                     }
8782                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8783                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8784                     )
8785                     {   // Pin list
8786                         0x0026
8787                     }
8788             })
8789             Name (ABUF, ResourceTemplate ()
8790             {
8791                 Memory32Fixed (ReadWrite,
8792                     0x00000000,         // Address Base
8793                     0x00001000,         // Address Length
8794                     _Y10)
8795                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8796                 {
8797                     0x0000002F,
8798                 }
8799                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8800                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8801                     )
8802                     {   // Pin list
8803                         0x0026
8804                     }
8805                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8806                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8807                     )
8808                     {   // Pin list
8809                         0x0026
8810                     }
8811                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8812                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8813                     )
8814                     {   // Pin list
8815                         0x0028
8816                     }
8817                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8818                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8819                     )
8820                     {   // Pin list
8821                         0x0029
8822                     }
8823             })
8824             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8825             {
8826                 CreateDWordField (RBUF, \_SB.SDHD._Y0F._BAS, B0BA)  // _BAS: Base Address
8827                 CreateDWordField (RBUF, \_SB.SDHD._Y0F._LEN, B0LN)  // _LEN: Length
8828                 B0BA = SD0A /* \SD0A */
8829                 B0LN = SD0L /* \SD0L */
8830                 CreateDWordField (ABUF, \_SB.SDHD._Y10._BAS, B0BX)  // _BAS: Base Address
8831                 CreateDWordField (ABUF, \_SB.SDHD._Y10._LEN, B0LX)  // _LEN: Length
8832                 B0BX = SD0A /* \SD0A */
8833                 B0LX = SD0L /* \SD0L */
8834                 If ((OSSL & 0x80))
8835                 {
8836                     Return (ABUF) /* \_SB_.SDHD.ABUF */
8837                 }
8838
8839                 Return (RBUF) /* \_SB_.SDHD.RBUF */
8840             }
8841
8842             Method (_STA, 0, NotSerialized)  // _STA: Status
8843             {
8844                 If (((SD0A == Zero) || (SD3D == One)))
8845                 {
8846                     Return (Zero)
8847                 }
8848
8849                 If ((PMID == 0x05))
8850                 {
8851                     ADBG ("XPWR_DCOVE")
8852                     Return (0x0F)
8853                 }
8854
8855                 Return (Zero)
8856             }
8857
8858             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8859             {
8860                 ADBG ("SD card-----ps3 Xpower")
8861                 PSAT |= 0x03
8862                 Local0 = PSAT /* \_SB_.SDHD.PSAT */
8863                 If (CondRefOf (\_SB.I2C5.PMI1, Local1))
8864                 {
8865                     ADBG ("SD card-----1ps3 Xpower")
8866                     If ((^^I2C5.PMI1.AVBL == One))
8867                     {
8868                         ADBG ("SD card-----2ps3 Xpower")
8869                         ^^I2C5.PMI1.GPI1 = Zero
8870                         If ((^^I2C5.PMI1.AVBG == One))
8871                         {
8872                             ADBG ("SD card-----3ps3 Xpower")
8873                             ^^I2C5.PMI1.GSDX = One
8874                             Sleep (0x1E)
8875                         }
8876                     }
8877                 }
8878             }
8879
8880             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8881             {
8882                 ADBG ("SD card-----ps0")
8883                 If (CondRefOf (\_SB.I2C5.PMI1, Local1))
8884                 {
8885                     ADBG ("SD card-----1ps0 Xpower")
8886                     If ((^^I2C5.PMI1.AVBL == One))
8887                     {
8888                         ADBG ("SD card-----2ps0 Xpower")
8889                         ^^I2C5.PMI1.GPI1 = One
8890                         If ((^^I2C5.PMI1.AVBG == One))
8891                         {
8892                             ADBG ("SD card-----3ps0 Xpower")
8893                             ^^I2C5.PMI1.GSDX = One
8894                             Sleep (0x1E)
8895                         }
8896                     }
8897                 }
8898
8899                 PSAT &= 0xFFFFFFFC
8900                 Local0 = PSAT /* \_SB_.SDHD.PSAT */
8901             }
8902
8903             OperationRegion (KEYS, SystemMemory, SD1A, 0x0100)
8904             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8905             {
8906                 Offset (0x84), 
8907                 PSAT,   32
8908             }
8909         }
8910
8911         Device (GDM1)
8912         {
8913             Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */)  // _HID: Hardware ID
8914             Name (_DDN, "Intel(R) DMA Controller #1 - INTL9C60")  // _DDN: DOS Device Name
8915             Name (_UID, One)  // _UID: Unique ID
8916             Name (RBUF, ResourceTemplate ()
8917             {
8918                 Memory32Fixed (ReadWrite,
8919                     0x00000000,         // Address Base
8920                     0x00004000,         // Address Length
8921                     _Y11)
8922                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8923                 {
8924                     0x0000002A,
8925                 }
8926             })
8927             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8928             {
8929                 CreateDWordField (RBUF, \_SB.GDM1._Y11._BAS, B0BA)  // _BAS: Base Address
8930                 CreateDWordField (RBUF, \_SB.GDM1._Y11._LEN, B0LN)  // _LEN: Length
8931                 B0BA = D10A /* \D10A */
8932                 B0LN = D10L /* \D10L */
8933                 Return (RBUF) /* \_SB_.GDM1.RBUF */
8934             }
8935
8936             Method (_STA, 0, NotSerialized)  // _STA: Status
8937             {
8938                 If (((D10A == Zero) || (L10D == One)))
8939                 {
8940                     Return (Zero)
8941                 }
8942
8943                 Return (0x0F)
8944             }
8945         }
8946
8947         Device (GDM2)
8948         {
8949             Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */)  // _HID: Hardware ID
8950             Name (_DDN, "Intel(R) DMA Controller #2 - INTL9C60")  // _DDN: DOS Device Name
8951             Name (_UID, 0x02)  // _UID: Unique ID
8952             Name (RBUF, ResourceTemplate ()
8953             {
8954                 Memory32Fixed (ReadWrite,
8955                     0x00000000,         // Address Base
8956                     0x00004000,         // Address Length
8957                     _Y12)
8958                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8959                 {
8960                     0x0000002B,
8961                 }
8962             })
8963             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8964             {
8965                 CreateDWordField (RBUF, \_SB.GDM2._Y12._BAS, B0BA)  // _BAS: Base Address
8966                 CreateDWordField (RBUF, \_SB.GDM2._Y12._LEN, B0LN)  // _LEN: Length
8967                 B0BA = D20A /* \D20A */
8968                 B0LN = D20L /* \D20L */
8969                 Return (RBUF) /* \_SB_.GDM2.RBUF */
8970             }
8971
8972             Method (_STA, 0, NotSerialized)  // _STA: Status
8973             {
8974                 If (((D20A == Zero) || (L20D == One)))
8975                 {
8976                     Return (Zero)
8977                 }
8978
8979                 Return (0x0F)
8980             }
8981         }
8982
8983         Device (PWM1)
8984         {
8985             Name (_ADR, Zero)  // _ADR: Address
8986             Name (_HID, "80860F09" /* Intel PWM Controller */)  // _HID: Hardware ID
8987             Name (_CID, "80860F09" /* Intel PWM Controller */)  // _CID: Compatible ID
8988             Name (_DDN, "Intel(R) PWM Controller #1 - 80860F08")  // _DDN: DOS Device Name
8989             Name (_UID, One)  // _UID: Unique ID
8990             Name (RBUF, ResourceTemplate ()
8991             {
8992                 Memory32Fixed (ReadWrite,
8993                     0x00000000,         // Address Base
8994                     0x00001000,         // Address Length
8995                     _Y13)
8996             })
8997             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8998             {
8999                 CreateDWordField (RBUF, \_SB.PWM1._Y13._BAS, B0BA)  // _BAS: Base Address
9000                 CreateDWordField (RBUF, \_SB.PWM1._Y13._LEN, B0LN)  // _LEN: Length
9001                 B0BA = P10A /* \P10A */
9002                 B0LN = P10L /* \P10L */
9003                 Return (RBUF) /* \_SB_.PWM1.RBUF */
9004             }
9005
9006             Method (_STA, 0, NotSerialized)  // _STA: Status
9007             {
9008                 If (((P10A == Zero) || (L11D == One)))
9009                 {
9010                     Return (Zero)
9011                 }
9012
9013                 If ((OSSL & 0x80))
9014                 {
9015                     Return (0x0F)
9016                 }
9017
9018                 Return (Zero)
9019             }
9020
9021             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9022             {
9023                 PSAT |= 0x03
9024                 Local0 = PSAT /* \_SB_.PWM1.PSAT */
9025             }
9026
9027             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9028             {
9029                 PSAT &= 0xFFFFFFFC
9030                 Local0 = PSAT /* \_SB_.PWM1.PSAT */
9031             }
9032
9033             OperationRegion (KEYS, SystemMemory, P11A, 0x0100)
9034             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9035             {
9036                 Offset (0x84), 
9037                 PSAT,   32
9038             }
9039         }
9040
9041         Device (PWM2)
9042         {
9043             Name (_ADR, Zero)  // _ADR: Address
9044             Name (_HID, "80860F09" /* Intel PWM Controller */)  // _HID: Hardware ID
9045             Name (_CID, "80860F09" /* Intel PWM Controller */)  // _CID: Compatible ID
9046             Name (_DDN, "Intel(R) PWM Controller #2 - 80860F09")  // _DDN: DOS Device Name
9047             Name (_UID, 0x02)  // _UID: Unique ID
9048             Name (RBUF, ResourceTemplate ()
9049             {
9050                 Memory32Fixed (ReadWrite,
9051                     0x00000000,         // Address Base
9052                     0x00001000,         // Address Length
9053                     _Y14)
9054             })
9055             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9056             {
9057                 CreateDWordField (RBUF, \_SB.PWM2._Y14._BAS, B0BA)  // _BAS: Base Address
9058                 CreateDWordField (RBUF, \_SB.PWM2._Y14._LEN, B0LN)  // _LEN: Length
9059                 B0BA = P20A /* \P20A */
9060                 B0LN = P20L /* \P20L */
9061                 Return (RBUF) /* \_SB_.PWM2.RBUF */
9062             }
9063
9064             Method (_STA, 0, NotSerialized)  // _STA: Status
9065             {
9066                 If (((P20A == Zero) || (L12D == One)))
9067                 {
9068                     Return (Zero)
9069                 }
9070
9071                 If ((OSSL & 0x80))
9072                 {
9073                     Return (0x0F)
9074                 }
9075
9076                 Return (Zero)
9077             }
9078
9079             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9080             {
9081                 PSAT |= 0x03
9082                 Local0 = PSAT /* \_SB_.PWM2.PSAT */
9083             }
9084
9085             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9086             {
9087                 PSAT &= 0xFFFFFFFC
9088                 Local0 = PSAT /* \_SB_.PWM2.PSAT */
9089             }
9090
9091             OperationRegion (KEYS, SystemMemory, P21A, 0x0100)
9092             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9093             {
9094                 Offset (0x84), 
9095                 PSAT,   32
9096             }
9097         }
9098
9099         Device (URT1)
9100         {
9101             Name (_ADR, Zero)  // _ADR: Address
9102             Name (_HID, "80860F0A" /* Intel Atom UART Controller */)  // _HID: Hardware ID
9103             Name (_CID, "80860F0A" /* Intel Atom UART Controller */)  // _CID: Compatible ID
9104             Name (_DDN, "Intel(R) HS-UART Controller #1 - 80860F0A")  // _DDN: DOS Device Name
9105             Name (_UID, One)  // _UID: Unique ID
9106             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9107             {
9108                 PEPD
9109             })
9110             Name (RBUF, ResourceTemplate ()
9111             {
9112                 Memory32Fixed (ReadWrite,
9113                     0x00000000,         // Address Base
9114                     0x00001000,         // Address Length
9115                     _Y15)
9116                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9117                 {
9118                     0x00000027,
9119                 }
9120                 FixedDMA (0x0002, 0x0002, Width32bit, )
9121                 FixedDMA (0x0003, 0x0003, Width32bit, )
9122             })
9123             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9124             {
9125                 Return (SOCS) /* \SOCS */
9126             }
9127
9128             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9129             {
9130                 CreateDWordField (RBUF, \_SB.URT1._Y15._BAS, B0BA)  // _BAS: Base Address
9131                 CreateDWordField (RBUF, \_SB.URT1._Y15._LEN, B0LN)  // _LEN: Length
9132                 B0BA = U10A /* \U10A */
9133                 B0LN = U10L /* \U10L */
9134                 Return (RBUF) /* \_SB_.URT1.RBUF */
9135             }
9136
9137             Method (_STA, 0, NotSerialized)  // _STA: Status
9138             {
9139                 If (((U10A == Zero) || (L13D == One)))
9140                 {
9141                     Return (Zero)
9142                 }
9143
9144                 Return (0x0F)
9145             }
9146
9147             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9148             {
9149                 PSAT |= 0x03
9150                 Local0 = PSAT /* \_SB_.URT1.PSAT */
9151             }
9152
9153             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9154             {
9155                 PSAT &= 0xFFFFFFFC
9156                 Local0 = PSAT /* \_SB_.URT1.PSAT */
9157             }
9158
9159             OperationRegion (KEYS, SystemMemory, U11A, 0x0100)
9160             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9161             {
9162                 Offset (0x84), 
9163                 PSAT,   32
9164             }
9165
9166             Device (BTH0)
9167             {
9168                 Name (_HID, "BCM2E3A")  // _HID: Hardware ID
9169                 Method (_STA, 0, NotSerialized)  // _STA: Status
9170                 {
9171                     Return (Zero)
9172                 }
9173
9174                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9175                 {
9176                     Name (UBUF, ResourceTemplate ()
9177                     {
9178                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9179                             0xFC, LittleEndian, ParityTypeNone, FlowControlNone,
9180                             0x0020, 0x0020, "\\_SB.URT1",
9181                             0x00, ResourceConsumer, ,
9182                             )
9183                         Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, )
9184                         {
9185                             0x00000046,
9186                         }
9187                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9188                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9189                             )
9190                             {   // Pin list
9191                                 0x0018
9192                             }
9193                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9194                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9195                             )
9196                             {   // Pin list
9197                                 0x0019
9198                             }
9199                     })
9200                     Return (UBUF) /* \_SB_.URT1.BTH0._CRS.UBUF */
9201                 }
9202             }
9203
9204             Device (BTH1)
9205             {
9206                 Name (_HID, "OBDA8723")  // _HID: Hardware ID
9207                 Method (_STA, 0, NotSerialized)  // _STA: Status
9208                 {
9209                     Return (0x0F)
9210                 }
9211
9212                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9213                 {
9214                     Name (UBUF, ResourceTemplate ()
9215                     {
9216                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9217                             0xC0, LittleEndian, ParityTypeEven, FlowControlHardware,
9218                             0x0020, 0x0020, "\\_SB.URT1",
9219                             0x00, ResourceConsumer, ,
9220                             )
9221                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9222                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9223                             )
9224                             {   // Pin list
9225                                 0x0018
9226                             }
9227                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9228                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9229                             )
9230                             {   // Pin list
9231                                 0x0019
9232                             }
9233                         GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
9234                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9235                             )
9236                             {   // Pin list
9237                                 0x0011
9238                             }
9239                     })
9240                     Name (WBUF, ResourceTemplate ()
9241                     {
9242                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9243                             0xC0, LittleEndian, ParityTypeEven, FlowControlHardware,
9244                             0x0020, 0x0020, "\\_SB.URT1",
9245                             0x00, ResourceConsumer, ,
9246                             )
9247                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9248                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9249                             )
9250                             {   // Pin list
9251                                 0x0019
9252                             }
9253                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9254                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9255                             )
9256                             {   // Pin list
9257                                 0x0018
9258                             }
9259                         GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
9260                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9261                             )
9262                             {   // Pin list
9263                                 0x0011
9264                             }
9265                     })
9266                     If ((OSSL & 0x80))
9267                     {
9268                         Return (UBUF) /* \_SB_.URT1.BTH1._CRS.UBUF */
9269                     }
9270
9271                     Return (WBUF) /* \_SB_.URT1.BTH1._CRS.WBUF */
9272                 }
9273             }
9274         }
9275
9276         Device (URT2)
9277         {
9278             Name (_ADR, Zero)  // _ADR: Address
9279             Name (_HID, "80860F0A" /* Intel Atom UART Controller */)  // _HID: Hardware ID
9280             Name (_CID, "80860F0A" /* Intel Atom UART Controller */)  // _CID: Compatible ID
9281             Name (_DDN, "Intel(R) HS-UART Controller #2 - 80860F0C")  // _DDN: DOS Device Name
9282             Name (_UID, 0x02)  // _UID: Unique ID
9283             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9284             {
9285                 PEPD
9286             })
9287             Name (RBUF, ResourceTemplate ()
9288             {
9289                 Memory32Fixed (ReadWrite,
9290                     0x00000000,         // Address Base
9291                     0x00001000,         // Address Length
9292                     _Y16)
9293                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9294                 {
9295                     0x00000028,
9296                 }
9297                 FixedDMA (0x0004, 0x0004, Width32bit, )
9298                 FixedDMA (0x0005, 0x0005, Width32bit, )
9299             })
9300             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9301             {
9302                 Return (SOCS) /* \SOCS */
9303             }
9304
9305             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9306             {
9307                 CreateDWordField (RBUF, \_SB.URT2._Y16._BAS, B0BA)  // _BAS: Base Address
9308                 CreateDWordField (RBUF, \_SB.URT2._Y16._LEN, B0LN)  // _LEN: Length
9309                 B0BA = U20A /* \U20A */
9310                 B0LN = U20L /* \U20L */
9311                 Return (RBUF) /* \_SB_.URT2.RBUF */
9312             }
9313
9314             Method (_STA, 0, NotSerialized)  // _STA: Status
9315             {
9316                 If (((U20A == Zero) || (L14D == One)))
9317                 {
9318                     Return (Zero)
9319                 }
9320
9321                 Return (0x0F)
9322             }
9323
9324             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9325             {
9326                 PSAT |= 0x03
9327                 Local0 = PSAT /* \_SB_.URT2.PSAT */
9328             }
9329
9330             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9331             {
9332                 PSAT &= 0xFFFFFFFC
9333                 Local0 = PSAT /* \_SB_.URT2.PSAT */
9334             }
9335
9336             OperationRegion (KEYS, SystemMemory, U21A, 0x0100)
9337             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9338             {
9339                 Offset (0x84), 
9340                 PSAT,   32
9341             }
9342
9343             Device (GPS0)
9344             {
9345                 Name (_HID, "BCM4752")  // _HID: Hardware ID
9346                 Name (_HRV, Zero)  // _HRV: Hardware Revision
9347                 Method (_STA, 0, NotSerialized)  // _STA: Status
9348                 {
9349                     Return (Zero)
9350                 }
9351
9352                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9353                 {
9354                     Name (UBUF, ResourceTemplate ()
9355                     {
9356                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9357                             0xFC, LittleEndian, ParityTypeNone, FlowControlHardware,
9358                             0x0020, 0x0020, "\\_SB.URT2",
9359                             0x00, ResourceConsumer, ,
9360                             )
9361                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9362                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9363                             )
9364                             {   // Pin list
9365                                 0x0016
9366                             }
9367                     })
9368                     Return (UBUF) /* \_SB_.URT2.GPS0._CRS.UBUF */
9369                 }
9370             }
9371         }
9372
9373         Device (SPI1)
9374         {
9375             Name (_ADR, Zero)  // _ADR: Address
9376             Name (_HID, "80860F0E" /* Intel SPI Controller */)  // _HID: Hardware ID
9377             Name (_CID, "80860F0E" /* Intel SPI Controller */)  // _CID: Compatible ID
9378             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9379             {
9380                 PEPD
9381             })
9382             Name (_DDN, "Intel(R) SPI Controller - 80860F0E")  // _DDN: DOS Device Name
9383             Name (RBUF, ResourceTemplate ()
9384             {
9385                 Memory32Fixed (ReadWrite,
9386                     0x00000000,         // Address Base
9387                     0x00001000,         // Address Length
9388                     _Y17)
9389                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9390                 {
9391                     0x00000029,
9392                 }
9393                 FixedDMA (0x0000, 0x0000, Width32bit, )
9394                 FixedDMA (0x0001, 0x0001, Width32bit, )
9395             })
9396             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9397             {
9398                 Return (SOCS) /* \SOCS */
9399             }
9400
9401             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9402             {
9403                 CreateDWordField (RBUF, \_SB.SPI1._Y17._BAS, B0BA)  // _BAS: Base Address
9404                 CreateDWordField (RBUF, \_SB.SPI1._Y17._LEN, B0LN)  // _LEN: Length
9405                 B0BA = SP0A /* \SP0A */
9406                 B0LN = SP0L /* \SP0L */
9407                 Return (RBUF) /* \_SB_.SPI1.RBUF */
9408             }
9409
9410             Method (_STA, 0, NotSerialized)  // _STA: Status
9411             {
9412                 If (((SP0A == Zero) || (L15D == One)))
9413                 {
9414                     Return (Zero)
9415                 }
9416
9417                 Return (0x0F)
9418             }
9419
9420             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9421             {
9422                 PSAT |= 0x03
9423                 Local0 = PSAT /* \_SB_.SPI1.PSAT */
9424             }
9425
9426             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9427             {
9428                 PSAT &= 0xFFFFFFFC
9429                 Local0 = PSAT /* \_SB_.SPI1.PSAT */
9430             }
9431
9432             OperationRegion (KEYS, SystemMemory, SP1A, 0x0100)
9433             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9434             {
9435                 Offset (0x84), 
9436                 PSAT,   32
9437             }
9438
9439             Device (FPNT)
9440             {
9441                 Name (_HID, "AUTH2750" /* AuthenTec AES2750 */)  // _HID: Hardware ID
9442                 Name (_DDN, "AuthenTec AES2750")  // _DDN: DOS Device Name
9443                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9444                 {
9445                     Name (UBUF, ResourceTemplate ()
9446                     {
9447                         SpiSerialBus (0x0001, PolarityLow, FourWireMode, 0x08,
9448                             ControllerInitiated, 0x007A1200, ClockPolarityLow,
9449                             ClockPhaseSecond, "\\_SB.SPI1",
9450                             0x00, ResourceConsumer, ,
9451                             )
9452                         Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
9453                         {
9454                             0x00000048,
9455                         }
9456                     })
9457                     Return (UBUF) /* \_SB_.SPI1.FPNT._CRS.UBUF */
9458                 }
9459
9460                 Method (_STA, 0, NotSerialized)  // _STA: Status
9461                 {
9462                     Return (Zero)
9463                 }
9464             }
9465         }
9466
9467         Device (NFC2)
9468         {
9469             Name (_ADR, Zero)  // _ADR: Address
9470             Name (_HID, "NXP5442" /* NXP 5442 Near Field Communications Controller */)  // _HID: Hardware ID
9471             Name (_CID, "NXP5442" /* NXP 5442 Near Field Communications Controller */)  // _CID: Compatible ID
9472             Name (_DDN, "NXP NFC")  // _DDN: DOS Device Name
9473             Name (_UID, One)  // _UID: Unique ID
9474             Method (_STA, 0, NotSerialized)  // _STA: Status
9475             {
9476                 If ((NFCS == 0x02))
9477                 {
9478                     Return (0x0F)
9479                 }
9480
9481                 Return (Zero)
9482             }
9483         }
9484
9485         Device (I2C1)
9486         {
9487             Name (_ADR, Zero)  // _ADR: Address
9488             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
9489             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
9490             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9491             {
9492                 PEPD
9493             })
9494             Name (_DDN, "Intel(R) I2C Controller #1 - 80860F41")  // _DDN: DOS Device Name
9495             Name (_UID, One)  // _UID: Unique ID
9496             Name (RBUF, ResourceTemplate ()
9497             {
9498                 Memory32Fixed (ReadWrite,
9499                     0x00000000,         // Address Base
9500                     0x00001000,         // Address Length
9501                     _Y18)
9502                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9503                 {
9504                     0x00000020,
9505                 }
9506                 FixedDMA (0x0010, 0x0000, Width32bit, )
9507                 FixedDMA (0x0011, 0x0001, Width32bit, )
9508             })
9509             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9510             {
9511                 Return (SOCS) /* \SOCS */
9512             }
9513
9514             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9515             {
9516                 CreateDWordField (RBUF, \_SB.I2C1._Y18._BAS, B0BA)  // _BAS: Base Address
9517                 CreateDWordField (RBUF, \_SB.I2C1._Y18._LEN, B0LN)  // _LEN: Length
9518                 B0BA = I10A /* \I10A */
9519                 B0LN = I10L /* \I10L */
9520                 Return (RBUF) /* \_SB_.I2C1.RBUF */
9521             }
9522
9523             Method (_STA, 0, NotSerialized)  // _STA: Status
9524             {
9525                 If (((I10A == Zero) || (L21D == One)))
9526                 {
9527                     Return (Zero)
9528                 }
9529
9530                 Return (0x0F)
9531             }
9532
9533             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9534             {
9535                 PSAT |= 0x03
9536                 Local0 = PSAT /* \_SB_.I2C1.PSAT */
9537             }
9538
9539             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9540             {
9541                 PSAT &= 0xFFFFFFFC
9542                 Local0 = PSAT /* \_SB_.I2C1.PSAT */
9543             }
9544
9545             OperationRegion (KEYS, SystemMemory, I11A, 0x0100)
9546             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9547             {
9548                 Offset (0x84), 
9549                 PSAT,   32
9550             }
9551         }
9552
9553         Device (I2C2)
9554         {
9555             Name (_ADR, Zero)  // _ADR: Address
9556             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
9557             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
9558             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9559             {
9560                 PEPD
9561             })
9562             Name (_DDN, "Intel(R) I2C Controller #2 - 80860F42")  // _DDN: DOS Device Name
9563             Name (_UID, 0x02)  // _UID: Unique ID
9564             Name (RBUF, ResourceTemplate ()
9565             {
9566                 Memory32Fixed (ReadWrite,
9567                     0x00000000,         // Address Base
9568                     0x00001000,         // Address Length
9569                     _Y19)
9570                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9571                 {
9572                     0x00000021,
9573                 }
9574                 FixedDMA (0x0012, 0x0002, Width32bit, )
9575                 FixedDMA (0x0013, 0x0003, Width32bit, )
9576             })
9577             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9578             {
9579                 Return (SOCS) /* \SOCS */
9580             }
9581
9582             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9583             {
9584                 CreateDWordField (RBUF, \_SB.I2C2._Y19._BAS, B0BA)  // _BAS: Base Address
9585                 CreateDWordField (RBUF, \_SB.I2C2._Y19._LEN, B0LN)  // _LEN: Length
9586                 B0BA = I20A /* \I20A */
9587                 B0LN = I20L /* \I20L */
9588                 Return (RBUF) /* \_SB_.I2C2.RBUF */
9589             }
9590
9591             Method (_STA, 0, NotSerialized)  // _STA: Status
9592             {
9593                 If (((I20A == Zero) || (L22D == One)))
9594                 {
9595                     Return (Zero)
9596                 }
9597
9598                 Return (0x0F)
9599             }
9600
9601             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9602             {
9603                 PSAT |= 0x03
9604                 Local0 = PSAT /* \_SB_.I2C2.PSAT */
9605             }
9606
9607             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9608             {
9609                 PSAT &= 0xFFFFFFFC
9610                 Local0 = PSAT /* \_SB_.I2C2.PSAT */
9611             }
9612
9613             OperationRegion (KEYS, SystemMemory, I21A, 0x0100)
9614             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9615             {
9616                 Offset (0x84), 
9617                 PSAT,   32
9618             }
9619
9620             PowerResource (CLK0, 0x00, 0x0000)
9621             {
9622                 Method (_STA, 0, NotSerialized)  // _STA: Status
9623                 {
9624                     Return (CKC0) /* \CKC0 */
9625                 }
9626
9627                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
9628                 {
9629                     CKC0 = One
9630                     CKF0 = One
9631                     Sleep (0x20)
9632                 }
9633
9634                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
9635                 {
9636                     CKC0 = 0x02
9637                 }
9638             }
9639
9640             PowerResource (CLK1, 0x00, 0x0000)
9641             {
9642                 Method (_STA, 0, NotSerialized)  // _STA: Status
9643                 {
9644                     Return (CKC1) /* \CKC1 */
9645                 }
9646
9647                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
9648                 {
9649                     CKC1 = One
9650                     CKF1 = One
9651                     Sleep (0x20)
9652                 }
9653
9654                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
9655                 {
9656                     CKC1 = 0x02
9657                 }
9658             }
9659
9660             Device (RTEK)
9661             {
9662                 Name (_ADR, Zero)  // _ADR: Address
9663                 Name (_HID, "10EC5640" /* Realtek I2S Audio Codec */)  // _HID: Hardware ID
9664                 Name (_CID, "10EC5640" /* Realtek I2S Audio Codec */)  // _CID: Compatible ID
9665                 Name (_DDN, "RTEK Codec Controller ")  // _DDN: DOS Device Name
9666                 Name (_UID, One)  // _UID: Unique ID
9667                 Name (CHAN, Package (0x02)
9668                 {
9669                     One, 
9670                     0x017D7840
9671                 })
9672                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9673                 {
9674                     Name (SBUF, ResourceTemplate ()
9675                     {
9676                         I2cSerialBus (0x001C, ControllerInitiated, 0x00061A80,
9677                             AddressingMode7Bit, "\\_SB.I2C2",
9678                             0x00, ResourceConsumer, ,
9679                             )
9680                         GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
9681                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9682                             )
9683                             {   // Pin list
9684                                 0x0004
9685                             }
9686                     })
9687                     Return (SBUF) /* \_SB_.I2C2.RTEK._CRS.SBUF */
9688                 }
9689
9690                 Method (_STA, 0, NotSerialized)  // _STA: Status
9691                 {
9692                     Return (0x0F)
9693                 }
9694
9695                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9696                 {
9697                     CKC3 = Zero
9698                 }
9699
9700                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9701                 {
9702                     CKC3 = One
9703                 }
9704
9705                 Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
9706                 {
9707                 }
9708
9709                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
9710                 {
9711                     Name (T_1, Zero)  // _T_x: Emitted by ASL Compiler
9712                     Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
9713                     If ((Arg0 == ToUUID ("a9240c44-f032-454d-80e5-7aeed80e9551")))
9714                     {
9715                         While (One)
9716                         {
9717                             T_0 = Arg2
9718                             If ((T_0 == 0x03))
9719                             {
9720                                 While (One)
9721                                 {
9722                                     T_1 = Arg3
9723                                     If ((T_1 == Zero))
9724                                     {
9725                                         Return (0x11)
9726                                     }
9727                                     Else
9728                                     {
9729                                         If ((T_1 == 0x04))
9730                                         {
9731                                             Return (Buffer (0x34)
9732                                             {
9733                                                 /* 0000 */  0x06, 0x00, 0x00, 0xCE, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9734                                                 /* 0008 */  0x03, 0x40, 0xBB, 0x00, 0x40, 0x00, 0x01, 0x00,  /* .@..@... */
9735                                                 /* 0010 */  0x01, 0x00, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00,  /* ....F... */
9736                                                 /* 0018 */  0x02, 0x00, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00,  /* ....E... */
9737                                                 /* 0020 */  0x01, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9738                                                 /* 0028 */  0x00, 0x01, 0x0D, 0x00, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9739                                                 /* 0030 */  0x86, 0x86, 0x01, 0x00                           /* .... */
9740                                             })
9741                                         }
9742                                         Else
9743                                         {
9744                                             Return (0x80000002)
9745                                         }
9746                                     }
9747
9748                                     Break
9749                                 }
9750                             }
9751
9752                             Break
9753                         }
9754                     }
9755
9756                     Return (0x80000002)
9757                 }
9758             }
9759
9760             Device (CAM1)
9761             {
9762                 Name (_ADR, Zero)  // _ADR: Address
9763                 Name (_HID, "INT33BE" /* Camera Sensor OV5693 */)  // _HID: Hardware ID
9764                 Name (_CID, "INT33BE" /* Camera Sensor OV5693 */)  // _CID: Compatible ID
9765                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
9766                 Name (_DDN, "OV5693")  // _DDN: DOS Device Name
9767                 Name (_UID, One)  // _UID: Unique ID
9768                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
9769                 {
9770                     I2C5, 
9771                     ^^I2C5.PMIC
9772                 })
9773                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
9774                 {
9775                     P28X, 
9776                     P18X, 
9777                     CLK0
9778                 })
9779                 Name (PLDB, Package (0x01)
9780                 {
9781                     Buffer (0x14)
9782                     {
9783                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
9784                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
9785                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
9786                     }
9787                 })
9788                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
9789                 {
9790                     Return (PLDB) /* \_SB_.I2C2.CAM1.PLDB */
9791                 }
9792
9793                 Method (_STA, 0, NotSerialized)  // _STA: Status
9794                 {
9795                     If ((((RCAS == 0x02) && (PMID == One)) && (OSSL & 0x80
9796                         )))
9797                     {
9798                         Return (0x0F)
9799                     }
9800
9801                     Return (Zero)
9802                 }
9803
9804                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9805                 {
9806                     Name (SBUF, ResourceTemplate ()
9807                     {
9808                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9809                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9810                             )
9811                             {   // Pin list
9812                                 0x0011
9813                             }
9814                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9815                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9816                             )
9817                             {   // Pin list
9818                                 0x0015
9819                             }
9820                         I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
9821                             AddressingMode7Bit, "\\_SB.I2C2",
9822                             0x00, ResourceConsumer, ,
9823                             )
9824                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
9825                             AddressingMode7Bit, "\\_SB.I2C2",
9826                             0x00, ResourceConsumer, ,
9827                             )
9828                     })
9829                     Return (SBUF) /* \_SB_.I2C2.CAM1._CRS.SBUF */
9830                 }
9831
9832                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
9833                 {
9834                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
9835                     {
9836                         Return ("INT33BE")
9837                     }
9838
9839                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
9840                     {
9841                         Return ("OV5693")
9842                     }
9843
9844                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
9845                     {
9846                         Return ("12P2BA536")
9847                     }
9848
9849                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
9850                     {
9851                         Return ("INTEL_RVP")
9852                     }
9853
9854                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
9855                     {
9856                         Return (0x0102)
9857                     }
9858
9859                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
9860                     {
9861                         Return (One)
9862                     }
9863
9864                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
9865                     {
9866                         Return (Zero)
9867                     }
9868
9869                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
9870                     {
9871                         Return (One)
9872                     }
9873
9874                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
9875                     {
9876                         Return (Zero)
9877                     }
9878
9879                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
9880                     {
9881                         Return (Zero)
9882                     }
9883
9884                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
9885                     {
9886                         Return ("AD5823")
9887                     }
9888
9889                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
9890                     {
9891                         If ((Arg2 == One))
9892                         {
9893                             Return (0x02)
9894                         }
9895
9896                         If ((Arg2 == 0x02))
9897                         {
9898                             Return (0x04001000)
9899                         }
9900
9901                         If ((Arg2 == 0x03))
9902                         {
9903                             Return (0x04000C01)
9904                         }
9905                     }
9906
9907                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
9908                     {
9909                         If ((Arg2 == One))
9910                         {
9911                             Return (0x02)
9912                         }
9913
9914                         If ((Arg2 == 0x02))
9915                         {
9916                             Return (0x01001800)
9917                         }
9918
9919                         If ((Arg2 == 0x03))
9920                         {
9921                             Return (0x01011501)
9922                         }
9923                     }
9924
9925                     Return (Zero)
9926                 }
9927             }
9928
9929             Device (CAM3)
9930             {
9931                 Name (_ADR, Zero)  // _ADR: Address
9932                 Name (_HID, "INTCF1B")  // _HID: Hardware ID
9933                 Name (_CID, "INTCF1B")  // _CID: Compatible ID
9934                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
9935                 Name (_DDN, "Sony IMX134")  // _DDN: DOS Device Name
9936                 Name (_UID, One)  // _UID: Unique ID
9937                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
9938                 {
9939                     I2C5, 
9940                     ^^I2C5.PMIC
9941                 })
9942                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
9943                 {
9944                     P28X, 
9945                     P18X, 
9946                     CLK0
9947                 })
9948                 Name (PLDB, Package (0x01)
9949                 {
9950                     Buffer (0x14)
9951                     {
9952                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
9953                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
9954                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
9955                     }
9956                 })
9957                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
9958                 {
9959                     Return (PLDB) /* \_SB_.I2C2.CAM3.PLDB */
9960                 }
9961
9962                 Method (_STA, 0, NotSerialized)  // _STA: Status
9963                 {
9964                     If ((((RCAS == One) && (PMID == One)) && (OSSL & 0x80
9965                         )))
9966                     {
9967                         Return (0x0F)
9968                     }
9969
9970                     Return (Zero)
9971                 }
9972
9973                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
9974                 {
9975                     Name (SBUF, ResourceTemplate ()
9976                     {
9977                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9978                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9979                             )
9980                             {   // Pin list
9981                                 0x0011
9982                             }
9983                         I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
9984                             AddressingMode7Bit, "\\_SB.I2C2",
9985                             0x00, ResourceConsumer, ,
9986                             )
9987                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
9988                             AddressingMode7Bit, "\\_SB.I2C2",
9989                             0x00, ResourceConsumer, ,
9990                             )
9991                         I2cSerialBus (0x0054, ControllerInitiated, 0x00061A80,
9992                             AddressingMode7Bit, "\\_SB.I2C2",
9993                             0x00, ResourceConsumer, ,
9994                             )
9995                     })
9996                     Return (SBUF) /* \_SB_.I2C2.CAM3._CRS.SBUF */
9997                 }
9998
9999                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
10000                 {
10001                     CKC0 = 0x02
10002                 }
10003
10004                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
10005                 {
10006                     CKC0 = One
10007                     CKF0 = One
10008                     Sleep (0x05)
10009                 }
10010
10011                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10012                 {
10013                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10014                     {
10015                         Return ("INTCF1A")
10016                     }
10017
10018                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10019                     {
10020                         Return ("IMX175")
10021                     }
10022
10023                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10024                     {
10025                         Return ("13P2BA807")
10026                     }
10027
10028                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10029                     {
10030                         If ((BDID == 0x04))
10031                         {
10032                             If ((FBID == 0x02))
10033                             {
10034                                 Return ("INTEL_FFRD")
10035                             }
10036
10037                             If ((FBID == 0x03))
10038                             {
10039                                 Return ("INTEL_FFRD")
10040                             }
10041                         }
10042
10043                         Return ("INTEL_RVP")
10044                     }
10045
10046                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10047                     {
10048                         Return (0x0104)
10049                     }
10050
10051                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10052                     {
10053                         Return (One)
10054                     }
10055
10056                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10057                     {
10058                         Return (Zero)
10059                     }
10060
10061                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10062                     {
10063                         Return (0x02)
10064                     }
10065
10066                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10067                     {
10068                         Return (Zero)
10069                     }
10070
10071                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10072                     {
10073                         Return (Zero)
10074                     }
10075
10076                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10077                     {
10078                         Return (Zero)
10079                     }
10080
10081                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10082                     {
10083                         If ((Arg2 == One))
10084                         {
10085                             Return (0x03)
10086                         }
10087
10088                         If ((Arg2 == 0x02))
10089                         {
10090                             Return (0x04001000)
10091                         }
10092
10093                         If ((Arg2 == 0x03))
10094                         {
10095                             Return (0x04000C01)
10096                         }
10097
10098                         If ((Arg2 == 0x04))
10099                         {
10100                             Return (0x04005402)
10101                         }
10102                     }
10103
10104                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10105                     {
10106                         If ((Arg2 == One))
10107                         {
10108                             Return (One)
10109                         }
10110
10111                         If ((Arg2 == 0x02))
10112                         {
10113                             Return (0x01001800)
10114                         }
10115                     }
10116
10117                     Return (Zero)
10118                 }
10119             }
10120
10121             Device (CAM2)
10122             {
10123                 Name (_ADR, Zero)  // _ADR: Address
10124                 Name (_HID, "INT5648")  // _HID: Hardware ID
10125                 Name (_CID, "INT5648")  // _CID: Compatible ID
10126                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10127                 Name (_DDN, "OV5648")  // _DDN: DOS Device Name
10128                 Name (_UID, One)  // _UID: Unique ID
10129                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10130                 {
10131                     I2C5, 
10132                     ^^I2C5.PMI1
10133                 })
10134                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10135                 {
10136                     P28X, 
10137                     P18X, 
10138                     CLK0
10139                 })
10140                 Name (PLDB, Package (0x01)
10141                 {
10142                     Buffer (0x14)
10143                     {
10144                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10145                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10146                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10147                     }
10148                 })
10149                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10150                 {
10151                     Return (PLDB) /* \_SB_.I2C2.CAM2.PLDB */
10152                 }
10153
10154                 Method (_STA, 0, NotSerialized)  // _STA: Status
10155                 {
10156                     Return (0x0F)
10157                 }
10158
10159                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
10160                 {
10161                     Name (SBUF, ResourceTemplate ()
10162                     {
10163                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10164                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10165                             )
10166                             {   // Pin list
10167                                 0x0011
10168                             }
10169                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10170                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10171                             )
10172                             {   // Pin list
10173                                 0x0015
10174                             }
10175                         I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
10176                             AddressingMode7Bit, "\\_SB.I2C2",
10177                             0x00, ResourceConsumer, ,
10178                             )
10179                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
10180                             AddressingMode7Bit, "\\_SB.I2C2",
10181                             0x00, ResourceConsumer, ,
10182                             )
10183                     })
10184                     Return (SBUF) /* \_SB_.I2C2.CAM2._CRS.SBUF */
10185                 }
10186
10187                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10188                 {
10189                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10190                     {
10191                         Return ("INT5648")
10192                     }
10193
10194                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10195                     {
10196                         Return ("OV5648")
10197                     }
10198
10199                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10200                     {
10201                         Return ("MTD5648")
10202                     }
10203
10204                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10205                     {
10206                         If ((BDID == 0x04))
10207                         {
10208                             If ((FBID == 0x02))
10209                             {
10210                                 Return ("INTEL_FFRD")
10211                             }
10212
10213                             If ((FBID == 0x03))
10214                             {
10215                                 Return ("INTEL_FFRD")
10216                             }
10217                         }
10218
10219                         Return ("INTEL_RVP")
10220                     }
10221
10222                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10223                     {
10224                         Return (0x0102)
10225                     }
10226
10227                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10228                     {
10229                         Return (One)
10230                     }
10231
10232                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10233                     {
10234                         Return (Zero)
10235                     }
10236
10237                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10238                     {
10239                         Return (One)
10240                     }
10241
10242                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10243                     {
10244                         Return (Zero)
10245                     }
10246
10247                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10248                     {
10249                         Return (Zero)
10250                     }
10251
10252                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10253                     {
10254                         Return ("DW9714")
10255                     }
10256
10257                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10258                     {
10259                         If ((Arg2 == One))
10260                         {
10261                             Return (0x02)
10262                         }
10263
10264                         If ((Arg2 == 0x02))
10265                         {
10266                             Return (0x04003600)
10267                         }
10268
10269                         If ((Arg2 == 0x03))
10270                         {
10271                             Return (0x04000C01)
10272                         }
10273                     }
10274
10275                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10276                     {
10277                         If ((Arg2 == One))
10278                         {
10279                             Return (0x02)
10280                         }
10281
10282                         If ((Arg2 == 0x02))
10283                         {
10284                             Return (0x01001801)
10285                         }
10286
10287                         If ((Arg2 == 0x03))
10288                         {
10289                             Return (0x1500)
10290                         }
10291                     }
10292
10293                     Return (Zero)
10294                 }
10295             }
10296
10297             Device (CAM4)
10298             {
10299                 Name (_ADR, Zero)  // _ADR: Address
10300                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10301                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10302                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10303                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10304                 Name (_UID, One)  // _UID: Unique ID
10305                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10306                 {
10307                     I2C5, 
10308                     ^^I2C5.PMI1
10309                 })
10310                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10311                 {
10312                     P28P, 
10313                     P18P, 
10314                     CLK0
10315                 })
10316                 Name (PLDB, Package (0x01)
10317                 {
10318                     Buffer (0x14)
10319                     {
10320                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10321                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10322                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10323                     }
10324                 })
10325                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10326                 {
10327                     Return (PLDB) /* \_SB_.I2C2.CAM4.PLDB */
10328                 }
10329
10330                 Method (_STA, 0, NotSerialized)  // _STA: Status
10331                 {
10332                     If ((((RCAS == 0x03) && (PMID == 0x05)) && (OSSL & 0x80
10333                         )))
10334                     {
10335                         Return (Zero)
10336                     }
10337
10338                     Return (Zero)
10339                 }
10340
10341                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
10342                 {
10343                     Name (SBUF, ResourceTemplate ()
10344                     {
10345                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10346                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10347                             )
10348                             {   // Pin list
10349                                 0x0011
10350                             }
10351                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10352                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10353                             )
10354                             {   // Pin list
10355                                 0x0015
10356                             }
10357                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10358                             AddressingMode7Bit, "\\_SB.I2C2",
10359                             0x00, ResourceConsumer, ,
10360                             )
10361                     })
10362                     Return (SBUF) /* \_SB_.I2C2.CAM4._CRS.SBUF */
10363                 }
10364
10365                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10366                 {
10367                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10368                     {
10369                         Return ("INT33F8")
10370                     }
10371
10372                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10373                     {
10374                         Return ("GC2235")
10375                     }
10376
10377                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10378                     {
10379                         Return ("13P2BA807")
10380                     }
10381
10382                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10383                     {
10384                         If ((BDID == 0x04))
10385                         {
10386                             If ((FBID == 0x02))
10387                             {
10388                                 Return ("INTEL_FFRD")
10389                             }
10390
10391                             If ((FBID == 0x03))
10392                             {
10393                                 Return ("INTEL_FFRD")
10394                             }
10395                         }
10396
10397                         Return ("INTEL_RVP")
10398                     }
10399
10400                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10401                     {
10402                         Return (0x0101)
10403                     }
10404
10405                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10406                     {
10407                         Return (One)
10408                     }
10409
10410                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10411                     {
10412                         Return (Zero)
10413                     }
10414
10415                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10416                     {
10417                         Return (Zero)
10418                     }
10419
10420                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10421                     {
10422                         Return (Zero)
10423                     }
10424
10425                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10426                     {
10427                         Return (One)
10428                     }
10429
10430                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10431                     {
10432                         Return (Zero)
10433                     }
10434
10435                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10436                     {
10437                         If ((Arg2 == One))
10438                         {
10439                             Return (One)
10440                         }
10441
10442                         If ((Arg2 == 0x02))
10443                         {
10444                             Return (0x02003C00)
10445                         }
10446                     }
10447
10448                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10449                     {
10450                         If ((Arg2 == One))
10451                         {
10452                             Return (0x02)
10453                         }
10454
10455                         If ((Arg2 == 0x02))
10456                         {
10457                             Return (0x01001100)
10458                         }
10459
10460                         If ((Arg2 == 0x03))
10461                         {
10462                             Return (0x1501)
10463                         }
10464                     }
10465
10466                     Return (Zero)
10467                 }
10468             }
10469
10470             Device (CAM5)
10471             {
10472                 Name (_ADR, Zero)  // _ADR: Address
10473                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10474                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10475                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10476                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10477                 Name (_UID, One)  // _UID: Unique ID
10478                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10479                 {
10480                     I2C5, 
10481                     ^^I2C5.PMI1
10482                 })
10483                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10484                 {
10485                     P28P, 
10486                     P18P, 
10487                     CLK1
10488                 })
10489                 Name (PLDB, Package (0x01)
10490                 {
10491                     Buffer (0x14)
10492                     {
10493                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10494                         /* 0008 */  0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* a....... */
10495                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10496                     }
10497                 })
10498                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10499                 {
10500                     Return (PLDB) /* \_SB_.I2C2.CAM5.PLDB */
10501                 }
10502
10503                 Method (_STA, 0, NotSerialized)  // _STA: Status
10504                 {
10505                     If ((((FCAS == 0x02) && (PMID == 0x05)) && (OSSL & 0x80
10506                         )))
10507                     {
10508                         Return (0x0F)
10509                     }
10510
10511                     Return (0x0F)
10512                 }
10513
10514                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
10515                 {
10516                     Name (SBUF, ResourceTemplate ()
10517                     {
10518                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10519                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10520                             )
10521                             {   // Pin list
10522                                 0x0012
10523                             }
10524                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10525                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10526                             )
10527                             {   // Pin list
10528                                 0x0016
10529                             }
10530                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10531                             AddressingMode7Bit, "\\_SB.I2C2",
10532                             0x00, ResourceConsumer, ,
10533                             )
10534                     })
10535                     Return (SBUF) /* \_SB_.I2C2.CAM5._CRS.SBUF */
10536                 }
10537
10538                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10539                 {
10540                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10541                     {
10542                         Return ("INT33F8")
10543                     }
10544
10545                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10546                     {
10547                         Return ("GC2235")
10548                     }
10549
10550                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10551                     {
10552                         Return ("GNDF130874")
10553                     }
10554
10555                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10556                     {
10557                         If ((BDID == 0x04))
10558                         {
10559                             If ((FBID == 0x02))
10560                             {
10561                                 Return ("INTEL_FFRD")
10562                             }
10563
10564                             If ((FBID == 0x03))
10565                             {
10566                                 Return ("INTEL_FFRD")
10567                             }
10568                         }
10569
10570                         Return ("INTEL_RVP")
10571                     }
10572
10573                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10574                     {
10575                         Return (0x0101)
10576                     }
10577
10578                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10579                     {
10580                         Return (Zero)
10581                     }
10582
10583                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10584                     {
10585                         Return (Zero)
10586                     }
10587
10588                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10589                     {
10590                         Return (0x02)
10591                     }
10592
10593                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10594                     {
10595                         Return (Zero)
10596                     }
10597
10598                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10599                     {
10600                         Return (One)
10601                     }
10602
10603                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10604                     {
10605                         Return (Zero)
10606                     }
10607
10608                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10609                     {
10610                         If ((Arg2 == One))
10611                         {
10612                             Return (One)
10613                         }
10614
10615                         If ((Arg2 == 0x02))
10616                         {
10617                             Return (0x04003C00)
10618                         }
10619                     }
10620
10621                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10622                     {
10623                         If ((Arg2 == One))
10624                         {
10625                             Return (0x02)
10626                         }
10627
10628                         If ((Arg2 == 0x02))
10629                         {
10630                             Return (0x01001200)
10631                         }
10632
10633                         If ((Arg2 == 0x03))
10634                         {
10635                             Return (0x00011601)
10636                         }
10637                     }
10638
10639                     Return (Zero)
10640                 }
10641             }
10642
10643             Device (CAM6)
10644             {
10645                 Name (_ADR, Zero)  // _ADR: Address
10646                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10647                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10648                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10649                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10650                 Name (_UID, One)  // _UID: Unique ID
10651                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10652                 {
10653                     I2C5, 
10654                     ^^I2C5.PMI2
10655                 })
10656                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10657                 {
10658                     P28T, 
10659                     P18T, 
10660                     CLK0
10661                 })
10662                 Name (PLDB, Package (0x01)
10663                 {
10664                     Buffer (0x14)
10665                     {
10666                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10667                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10668                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10669                     }
10670                 })
10671                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10672                 {
10673                     Return (PLDB) /* \_SB_.I2C2.CAM6.PLDB */
10674                 }
10675
10676                 Method (_STA, 0, NotSerialized)  // _STA: Status
10677                 {
10678                     If ((((RCAS == 0x03) && (PMID == 0x06)) && (OSSL & 0x80
10679                         )))
10680                     {
10681                         Return (Zero)
10682                     }
10683
10684                     Return (Zero)
10685                 }
10686
10687                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
10688                 {
10689                     Name (SBUF, ResourceTemplate ()
10690                     {
10691                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10692                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10693                             )
10694                             {   // Pin list
10695                                 0x0011
10696                             }
10697                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10698                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10699                             )
10700                             {   // Pin list
10701                                 0x0015
10702                             }
10703                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10704                             AddressingMode7Bit, "\\_SB.I2C2",
10705                             0x00, ResourceConsumer, ,
10706                             )
10707                     })
10708                     Return (SBUF) /* \_SB_.I2C2.CAM6._CRS.SBUF */
10709                 }
10710
10711                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10712                 {
10713                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10714                     {
10715                         Return ("INT33F8")
10716                     }
10717
10718                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10719                     {
10720                         Return ("GC2235")
10721                     }
10722
10723                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10724                     {
10725                         Return ("13P2BA807")
10726                     }
10727
10728                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10729                     {
10730                         If ((BDID == 0x04))
10731                         {
10732                             If ((FBID == 0x02))
10733                             {
10734                                 Return ("INTEL_FFRD")
10735                             }
10736
10737                             If ((FBID == 0x03))
10738                             {
10739                                 Return ("INTEL_FFRD")
10740                             }
10741                         }
10742
10743                         Return ("INTEL_RVP")
10744                     }
10745
10746                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10747                     {
10748                         Return (0x0101)
10749                     }
10750
10751                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10752                     {
10753                         Return (One)
10754                     }
10755
10756                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10757                     {
10758                         Return (Zero)
10759                     }
10760
10761                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10762                     {
10763                         Return (Zero)
10764                     }
10765
10766                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10767                     {
10768                         Return (Zero)
10769                     }
10770
10771                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10772                     {
10773                         Return (One)
10774                     }
10775
10776                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10777                     {
10778                         Return (Zero)
10779                     }
10780
10781                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10782                     {
10783                         If ((Arg2 == One))
10784                         {
10785                             Return (One)
10786                         }
10787
10788                         If ((Arg2 == 0x02))
10789                         {
10790                             Return (0x02003C00)
10791                         }
10792                     }
10793
10794                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10795                     {
10796                         If ((Arg2 == One))
10797                         {
10798                             Return (0x02)
10799                         }
10800
10801                         If ((Arg2 == 0x02))
10802                         {
10803                             Return (0x01001100)
10804                         }
10805
10806                         If ((Arg2 == 0x03))
10807                         {
10808                             Return (0x01001501)
10809                         }
10810                     }
10811
10812                     Return (Zero)
10813                 }
10814             }
10815
10816             Device (CAM7)
10817             {
10818                 Name (_ADR, Zero)  // _ADR: Address
10819                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10820                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10821                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10822                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10823                 Name (_UID, 0x02)  // _UID: Unique ID
10824                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10825                 {
10826                     I2C5, 
10827                     ^^I2C5.PMI2
10828                 })
10829                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10830                 {
10831                     P28T, 
10832                     P1XT, 
10833                     CLK1
10834                 })
10835                 Name (PLDB, Package (0x01)
10836                 {
10837                     Buffer (0x14)
10838                     {
10839                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10840                         /* 0008 */  0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* a....... */
10841                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10842                     }
10843                 })
10844                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10845                 {
10846                     Return (PLDB) /* \_SB_.I2C2.CAM7.PLDB */
10847                 }
10848
10849                 Method (_STA, 0, NotSerialized)  // _STA: Status
10850                 {
10851                     If ((((FCAS == 0x02) && (PMID == 0x06)) && (OSSL & 0x80
10852                         )))
10853                     {
10854                         Return (Zero)
10855                     }
10856
10857                     Return (Zero)
10858                 }
10859
10860                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
10861                 {
10862                     Name (SBUF, ResourceTemplate ()
10863                     {
10864                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10865                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10866                             )
10867                             {   // Pin list
10868                                 0x0012
10869                             }
10870                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10871                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10872                             )
10873                             {   // Pin list
10874                                 0x0016
10875                             }
10876                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10877                             AddressingMode7Bit, "\\_SB.I2C2",
10878                             0x00, ResourceConsumer, ,
10879                             )
10880                     })
10881                     Return (SBUF) /* \_SB_.I2C2.CAM7._CRS.SBUF */
10882                 }
10883
10884                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10885                 {
10886                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10887                     {
10888                         Return ("INT33F8")
10889                     }
10890
10891                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10892                     {
10893                         Return ("GC2235")
10894                     }
10895
10896                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10897                     {
10898                         Return ("GNDF130874")
10899                     }
10900
10901                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10902                     {
10903                         If ((BDID == 0x04))
10904                         {
10905                             If ((FBID == 0x02))
10906                             {
10907                                 Return ("INTEL_FFRD")
10908                             }
10909
10910                             If ((FBID == 0x03))
10911                             {
10912                                 Return ("INTEL_FFRD")
10913                             }
10914                         }
10915
10916                         Return ("INTEL_RVP")
10917                     }
10918
10919                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10920                     {
10921                         Return (0x0101)
10922                     }
10923
10924                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10925                     {
10926                         Return (Zero)
10927                     }
10928
10929                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10930                     {
10931                         Return (Zero)
10932                     }
10933
10934                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10935                     {
10936                         Return (0x02)
10937                     }
10938
10939                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10940                     {
10941                         Return (Zero)
10942                     }
10943
10944                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10945                     {
10946                         Return (One)
10947                     }
10948
10949                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10950                     {
10951                         Return (Zero)
10952                     }
10953
10954                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10955                     {
10956                         If ((Arg2 == One))
10957                         {
10958                             Return (One)
10959                         }
10960
10961                         If ((Arg2 == 0x02))
10962                         {
10963                             Return (0x04003C00)
10964                         }
10965                     }
10966
10967                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10968                     {
10969                         If ((Arg2 == One))
10970                         {
10971                             Return (0x02)
10972                         }
10973
10974                         If ((Arg2 == 0x02))
10975                         {
10976                             Return (0x01001200)
10977                         }
10978
10979                         If ((Arg2 == 0x03))
10980                         {
10981                             Return (0x00011601)
10982                         }
10983                     }
10984
10985                     Return (Zero)
10986                 }
10987             }
10988
10989             Device (STRA)
10990             {
10991                 Name (_ADR, Zero)  // _ADR: Address
10992                 Name (_HID, "INTCF1C")  // _HID: Hardware ID
10993                 Name (_CID, "INTCF1C")  // _CID: Compatible ID
10994                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10995                 Name (_DDN, "Flash LM3554")  // _DDN: DOS Device Name
10996                 Name (_UID, One)  // _UID: Unique ID
10997                 Method (_STA, 0, NotSerialized)  // _STA: Status
10998                 {
10999                     Return (0x0F)
11000                 }
11001
11002                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
11003                 {
11004                     Name (SBUF, ResourceTemplate ()
11005                     {
11006                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11007                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11008                             )
11009                             {   // Pin list
11010                                 0x0013
11011                             }
11012                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11013                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11014                             )
11015                             {   // Pin list
11016                                 0x0014
11017                             }
11018                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11019                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11020                             )
11021                             {   // Pin list
11022                                 0x0010
11023                             }
11024                         I2cSerialBus (0x0053, ControllerInitiated, 0x00061A80,
11025                             AddressingMode7Bit, "\\_SB.I2C2",
11026                             0x00, ResourceConsumer, ,
11027                             )
11028                     })
11029                     Return (SBUF) /* \_SB_.I2C2.STRA._CRS.SBUF */
11030                 }
11031
11032                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
11033                 {
11034                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
11035                     {
11036                         Return ("INTCF1C")
11037                     }
11038
11039                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
11040                     {
11041                         Return ("LM3554")
11042                     }
11043
11044                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
11045                     {
11046                         If ((BDID == 0x04))
11047                         {
11048                             If ((FBID == 0x02))
11049                             {
11050                                 Return ("INTEL_FFRD")
11051                             }
11052
11053                             If ((FBID == 0x03))
11054                             {
11055                                 Return ("INTEL_FFRD")
11056                             }
11057                         }
11058
11059                         Return ("INTEL_RVP")
11060                     }
11061
11062                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
11063                     {
11064                         Return (Zero)
11065                     }
11066
11067                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
11068                     {
11069                         If ((Arg2 == One))
11070                         {
11071                             Return (One)
11072                         }
11073
11074                         If ((Arg2 == 0x02))
11075                         {
11076                             Return (0x04005300)
11077                         }
11078                     }
11079
11080                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
11081                     {
11082                         If ((Arg2 == One))
11083                         {
11084                             Return (0x04)
11085                         }
11086
11087                         If ((Arg2 == 0x02))
11088                         {
11089                             Return (0x01001302)
11090                         }
11091
11092                         If ((Arg2 == 0x03))
11093                         {
11094                             Return (0x01001403)
11095                         }
11096
11097                         If ((Arg2 == 0x04))
11098                         {
11099                             Return (0x01001001)
11100                         }
11101
11102                         If ((Arg2 == 0x05))
11103                         {
11104                             Return (0x01001104)
11105                         }
11106                     }
11107
11108                     Return (Zero)
11109                 }
11110             }
11111         }
11112
11113         Device (I2C3)
11114         {
11115             Name (_ADR, Zero)  // _ADR: Address
11116             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
11117             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
11118             Name (_DDN, "Intel(R) I2C Controller #3 - 80860F43")  // _DDN: DOS Device Name
11119             Name (_UID, 0x03)  // _UID: Unique ID
11120             Name (_DEP, Package (0x01)  // _DEP: Dependencies
11121             {
11122                 PEPD
11123             })
11124             Name (RBUF, ResourceTemplate ()
11125             {
11126                 Memory32Fixed (ReadWrite,
11127                     0x00000000,         // Address Base
11128                     0x00001000,         // Address Length
11129                     _Y1A)
11130                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
11131                 {
11132                     0x00000022,
11133                 }
11134                 FixedDMA (0x0014, 0x0004, Width32bit, )
11135                 FixedDMA (0x0015, 0x0005, Width32bit, )
11136             })
11137             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
11138             {
11139                 Return (SOCS) /* \SOCS */
11140             }
11141
11142             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11143             {
11144                 CreateDWordField (RBUF, \_SB.I2C3._Y1A._BAS, B0BA)  // _BAS: Base Address
11145                 CreateDWordField (RBUF, \_SB.I2C3._Y1A._LEN, B0LN)  // _LEN: Length
11146                 B0BA = I30A /* \I30A */
11147                 B0LN = I30L /* \I30L */
11148                 Return (RBUF) /* \_SB_.I2C3.RBUF */
11149             }
11150
11151             Method (_STA, 0, NotSerialized)  // _STA: Status
11152             {
11153                 If (((I30A == Zero) || (L23D == One)))
11154                 {
11155                     Return (Zero)
11156                 }
11157
11158                 Return (0x0F)
11159             }
11160
11161             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
11162             {
11163                 PSAT |= 0x03
11164                 Local0 = PSAT /* \_SB_.I2C3.PSAT */
11165             }
11166
11167             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
11168             {
11169                 PSAT &= 0xFFFFFFFC
11170                 Local0 = PSAT /* \_SB_.I2C3.PSAT */
11171             }
11172
11173             OperationRegion (KEYS, SystemMemory, I31A, 0x0100)
11174             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
11175             {
11176                 Offset (0x84), 
11177                 PSAT,   32
11178             }
11179
11180             Device (SPBA)
11181             {
11182                 Name (_ADR, Zero)  // _ADR: Address
11183                 Name (_HID, "KXCJ9000")  // _HID: Hardware ID
11184                 Name (_CID, "INTACCL")  // _CID: Compatible ID
11185                 Name (_UID, One)  // _UID: Unique ID
11186                 Method (_STA, 0, NotSerialized)  // _STA: Status
11187                 {
11188                     If ((OSSL & 0x80))
11189                     {
11190                         If (((ACCS == One) || (ACCS == 0x3)))
11191                         {
11192                             Return (0x0F)
11193                         }
11194
11195                         Return (Zero)
11196                     }
11197                     Else
11198                     {
11199                         Return (Zero)
11200                     }
11201                 }
11202
11203                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
11204                 {
11205                     Name (RBUF, ResourceTemplate ()
11206                     {
11207                         I2cSerialBus (0x000F, ControllerInitiated, 0x00061A80,
11208                             AddressingMode7Bit, "\\_SB.I2C3",
11209                             0x00, ResourceConsumer, ,
11210                             )
11211                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11212                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11213                             )
11214                             {   // Pin list
11215                                 0x0017
11216                             }
11217                     })
11218                     Return (RBUF) /* \_SB_.I2C3.SPBA._CRS.RBUF */
11219                 }
11220             }
11221         }
11222
11223         Device (MDM)
11224         {
11225             Name (_HID, EisaId ("MCD0001"))  // _HID: Hardware ID
11226             Name (_CID, "MCD0001")  // _CID: Compatible ID
11227             Name (CPU, "ValleyView2")
11228             Name (MDMN, "XMM_6260")
11229             Method (_STA, 0, NotSerialized)  // _STA: Status
11230             {
11231                 If ((OSSL & 0x80))
11232                 {
11233                     Return (0x0F)
11234                 }
11235
11236                 Return (Zero)
11237             }
11238
11239             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
11240             {
11241                 Name (UBUF, ResourceTemplate ()
11242                 {
11243                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11244                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11245                         )
11246                         {   // Pin list
11247                             0x0017
11248                         }
11249                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11250                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11251                         )
11252                         {   // Pin list
11253                             0x001E
11254                         }
11255                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11256                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11257                         )
11258                         {   // Pin list
11259                             0x001C
11260                         }
11261                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11262                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11263                         )
11264                         {   // Pin list
11265                             0x001D
11266                         }
11267                 })
11268                 Return (UBUF) /* \_SB_.MDM_._CRS.UBUF */
11269             }
11270         }
11271
11272         Device (I2C4)
11273         {
11274             Name (_ADR, Zero)  // _ADR: Address
11275             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
11276             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
11277             Name (_DDN, "Intel(R) I2C Controller #4 - 80860F44")  // _DDN: DOS Device Name
11278             Name (_UID, 0x04)  // _UID: Unique ID
11279             Name (_DEP, Package (0x01)  // _DEP: Dependencies
11280             {
11281                 PEPD
11282             })
11283             Name (RBUF, ResourceTemplate ()
11284             {
11285                 Memory32Fixed (ReadWrite,
11286                     0x00000000,         // Address Base
11287                     0x00001000,         // Address Length
11288                     _Y1B)
11289                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
11290                 {
11291                     0x00000023,
11292                 }
11293                 FixedDMA (0x0016, 0x0006, Width32bit, )
11294                 FixedDMA (0x0017, 0x0007, Width32bit, )
11295             })
11296             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
11297             {
11298                 Return (SOCS) /* \SOCS */
11299             }
11300
11301             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11302             {
11303                 CreateDWordField (RBUF, \_SB.I2C4._Y1B._BAS, B0BA)  // _BAS: Base Address
11304                 CreateDWordField (RBUF, \_SB.I2C4._Y1B._LEN, B0LN)  // _LEN: Length
11305                 B0BA = I40A /* \I40A */
11306                 B0LN = I40L /* \I40L */
11307                 Return (RBUF) /* \_SB_.I2C4.RBUF */
11308             }
11309
11310             Method (_STA, 0, NotSerialized)  // _STA: Status
11311             {
11312                 If (((I40A == Zero) || (L24D == One)))
11313                 {
11314                     Return (Zero)
11315                 }
11316
11317                 Return (0x0F)
11318             }
11319
11320             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
11321             {
11322                 PSAT |= 0x03
11323                 Local0 = PSAT /* \_SB_.I2C4.PSAT */
11324             }
11325
11326             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
11327             {
11328                 PSAT &= 0xFFFFFFFC
11329                 Local0 = PSAT /* \_SB_.I2C4.PSAT */
11330             }
11331
11332             OperationRegion (KEYS, SystemMemory, I41A, 0x0100)
11333             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
11334             {
11335                 Offset (0x84), 
11336                 PSAT,   32
11337             }
11338
11339             Device (TCS0)
11340             {
11341                 Name (_ADR, Zero)  // _ADR: Address
11342                 Name (_HID, "GDIX1001")  // _HID: Hardware ID
11343                 Name (_CID, "GDIX1001" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
11344                 Name (_S0W, Zero)  // _S0W: S0 Device Wake State
11345                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
11346                 {
11347                     GPO1, 
11348                     I2C5
11349                 })
11350                 Method (_PS3, 0, Serialized)  // _PS3: Power State 3
11351                 {
11352                     If ((^^^I2C5.PMIC.AVBG == One)) {}
11353                 }
11354
11355                 Method (_PS0, 0, Serialized)  // _PS0: Power State 0
11356                 {
11357                     If ((^^^GPO1.AVBL == One))
11358                     {
11359                         ^^^GPO1.TCD3 = Zero
11360                     }
11361
11362                     Sleep (0x05)
11363                     If ((^^^I2C5.PMIC.AVBG == One)) {}
11364                     Sleep (0x1E)
11365                     If ((^^^GPO1.AVBL == One))
11366                     {
11367                         ^^^GPO1.TCD3 = One
11368                     }
11369
11370                     Sleep (0x78)
11371                 }
11372
11373                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
11374                 {
11375                     Name (RBUF, ResourceTemplate ()
11376                     {
11377                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
11378                             AddressingMode7Bit, "\\_SB.I2C4",
11379                             0x00, ResourceConsumer, ,
11380                             )
11381                         GpioInt (Edge, ActiveLow, Exclusive, PullNone, 0x0000,
11382                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11383                             )
11384                             {   // Pin list
11385                                 0x0003
11386                             }
11387                     })
11388                     Name (ABUF, ResourceTemplate ()
11389                     {
11390                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
11391                             AddressingMode7Bit, "\\_SB.I2C4",
11392                             0x00, ResourceConsumer, ,
11393                             )
11394                         GpioInt (Edge, ActiveLow, Exclusive, PullNone, 0x0000,
11395                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11396                             )
11397                             {   // Pin list
11398                                 0x0003
11399                             }
11400                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11401                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11402                             )
11403                             {   // Pin list
11404                                 0x0009
11405                             }
11406                     })
11407                     If ((OSSL && 0x80))
11408                     {
11409                         Return (ABUF) /* \_SB_.I2C4.TCS0._CRS.ABUF */
11410                     }
11411                     Else
11412                     {
11413                         Return (RBUF) /* \_SB_.I2C4.TCS0._CRS.RBUF */
11414                     }
11415                 }
11416
11417                 Method (_STA, 0, NotSerialized)  // _STA: Status
11418                 {
11419                     If ((OSSL == 0x83))
11420                     {
11421                         Return (Zero)
11422                     }
11423
11424                     Return (0x0F)
11425                 }
11426             }
11427         }
11428
11429         Device (I2C5)
11430         {
11431             Name (_ADR, Zero)  // _ADR: Address
11432             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
11433             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
11434             Name (_DDN, "Intel(R) I2C Controller #5 - 80860F45")  // _DDN: DOS Device Name
11435             Name (_UID, 0x05)  // _UID: Unique ID
11436             Method (_SEM, 0, NotSerialized)
11437             {
11438                 If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06)))
11439                 {
11440                     ADBG ("$COVE")
11441                     Return (One)
11442                 }
11443                 Else
11444                 {
11445                     ADBG ("CCOVE")
11446                     Return (Zero)
11447                 }
11448             }
11449
11450             Name (_DEP, Package (0x01)  // _DEP: Dependencies
11451             {
11452                 PEPD
11453             })
11454             Name (RBUF, ResourceTemplate ()
11455             {
11456                 Memory32Fixed (ReadWrite,
11457                     0x00000000,         // Address Base
11458                     0x00001000,         // Address Length
11459                     _Y1C)
11460                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
11461                 {
11462                     0x00000024,
11463                 }
11464                 FixedDMA (0x0018, 0x0000, Width32bit, )
11465                 FixedDMA (0x0019, 0x0001, Width32bit, )
11466             })
11467             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
11468             {
11469                 Return (SOCS) /* \SOCS */
11470             }
11471
11472             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11473             {
11474                 CreateDWordField (RBUF, \_SB.I2C5._Y1C._BAS, B0BA)  // _BAS: Base Address
11475                 CreateDWordField (RBUF, \_SB.I2C5._Y1C._LEN, B0LN)  // _LEN: Length
11476                 B0BA = I50A /* \I50A */
11477                 B0LN = I50L /* \I50L */
11478                 Return (RBUF) /* \_SB_.I2C5.RBUF */
11479             }
11480
11481             Method (_STA, 0, NotSerialized)  // _STA: Status
11482             {
11483                 If (((I50A == Zero) || (L25D == One)))
11484                 {
11485                     Return (Zero)
11486                 }
11487
11488                 Return (0x0F)
11489             }
11490
11491             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
11492             {
11493                 If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06)))
11494                 {
11495                     Return (Zero)
11496                 }
11497
11498                 PSAT |= 0x03
11499                 Local0 = PSAT /* \_SB_.I2C5.PSAT */
11500
11501                 Return (Zero)
11502             }
11503
11504             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
11505             {
11506                 PSAT &= 0xFFFFFFFC
11507                 Local0 = PSAT /* \_SB_.I2C5.PSAT */
11508             }
11509
11510             OperationRegion (KEYS, SystemMemory, I51A, 0x0100)
11511             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
11512             {
11513                 Offset (0x84), 
11514                 PSAT,   32
11515             }
11516
11517             Name (XPMC, ResourceTemplate ()
11518             {
11519                 I2cSerialBus (0x0034, ControllerInitiated, 0x00061A80,
11520                     AddressingMode7Bit, "\\_SB.I2C5",
11521                     0x00, ResourceConsumer, ,
11522                     )
11523             })
11524             OperationRegion (XSCG, GenericSerialBus, Zero, 0x0100)
11525             Field (XSCG, BufferAcc, NoLock, Preserve)
11526             {
11527                 Connection (XPMC), 
11528                 AccessAs (BufferAcc, AttribByte), 
11529                 XP00,   8
11530             }
11531
11532             Field (XSCG, BufferAcc, NoLock, Preserve)
11533             {
11534                 Connection (XPMC), 
11535                 Offset (0x2C), 
11536                 AccessAs (BufferAcc, AttribByte), 
11537                 XP2C,   8, 
11538                 XP2D,   8, 
11539                 XP2E,   8, 
11540                 XP2F,   8, 
11541                 XP30,   8, 
11542                 XP31,   8, 
11543                 XP32,   8
11544             }
11545
11546             Field (XSCG, BufferAcc, NoLock, Preserve)
11547             {
11548                 Connection (XPMC), 
11549                 Offset (0x2C), 
11550                 AccessAs (BufferAcc, AttribBytes (0x0A)), 
11551                 XPCG,   8
11552             }
11553         }
11554
11555         Scope (I2C5)
11556         {
11557             Device (PMI1)
11558             {
11559                 Name (_ADR, Zero)  // _ADR: Address
11560                 Name (_HID, "INT33F4" /* XPOWER PMIC Controller */)  // _HID: Hardware ID
11561                 Name (_CID, "INT33F4" /* XPOWER PMIC Controller */)  // _CID: Compatible ID
11562                 Name (_DDN, "XPOWER PMIC Controller")  // _DDN: DOS Device Name
11563                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
11564                 Name (_UID, One)  // _UID: Unique ID
11565                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
11566                 {
11567                     I2C5
11568                 })
11569                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
11570                 {
11571                     Name (SBUF, ResourceTemplate ()
11572                     {
11573                         I2cSerialBus (0x0034, ControllerInitiated, 0x000F4240,
11574                             AddressingMode7Bit, "\\_SB.I2C5",
11575                             0x00, ResourceConsumer, ,
11576                             )
11577                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
11578                         {
11579                             0x00000043,
11580                         }
11581                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
11582                         {
11583                             0x00000043,
11584                         }
11585                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
11586                         {
11587                             0x00000043,
11588                         }
11589                     })
11590                     Return (SBUF) /* \_SB_.I2C5.PMI1._CRS.SBUF */
11591                 }
11592
11593                 Method (_STA, 0, NotSerialized)  // _STA: Status
11594                 {
11595                     If ((PMEN == Zero))
11596                     {
11597                         Return (Zero)
11598                     }
11599
11600                     If ((PMID == 0x05))
11601                     {
11602                         ADBG ("XPWR_DCOVE")
11603                         Return (0x0F)
11604                     }
11605
11606                     Return (Zero)
11607                 }
11608
11609                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
11610                 Field (PMOP, DWordAcc, NoLock, Preserve)
11611                 {
11612                     ALD1,   32, 
11613                     ALD2,   32, 
11614                     ALD3,   32, 
11615                     DLD1,   32, 
11616                     DLD2,   32, 
11617                     DLD3,   32, 
11618                     DLD4,   32, 
11619                     ELD1,   32, 
11620                     ELD2,   32, 
11621                     ELD3,   32, 
11622                     FLD1,   32, 
11623                     FLD2,   32, 
11624                     FLD3,   32, 
11625                     BUC1,   32, 
11626                     BUC2,   32, 
11627                     BUC3,   32, 
11628                     BUC4,   32, 
11629                     BUC5,   32, 
11630                     BUC6,   32, 
11631                     GPI1,   32
11632                 }
11633
11634                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
11635                 Field (DPTF, DWordAcc, NoLock, Preserve)
11636                 {
11637                     TMP0,   32, 
11638                     AX00,   32, 
11639                     AX01,   32, 
11640                     TMP1,   32, 
11641                     AX10,   32, 
11642                     AX11,   32, 
11643                     TMP2,   32, 
11644                     AX20,   32, 
11645                     AX21,   32, 
11646                     TMP3,   32, 
11647                     AX30,   32, 
11648                     AX31,   32, 
11649                     TMP4,   32, 
11650                     AX40,   32, 
11651                     AX41,   32, 
11652                     TMP5,   32, 
11653                     AX50,   32, 
11654                     AX51,   32, 
11655                     PEN0,   32, 
11656                     PEN1,   32, 
11657                     PEN2,   32, 
11658                     PEN3,   32, 
11659                     PEN4,   32, 
11660                     PEN5,   32
11661                 }
11662
11663                 Name (LPAT, Package (0x44)
11664                 {
11665                     0x091B, 
11666                     0x3952, 
11667                     0x094D, 
11668                     0x2B69, 
11669                     0x097F, 
11670                     0x2135, 
11671                     0x09B1, 
11672                     0x19A7, 
11673                     0x09E3, 
11674                     0x13FE, 
11675                     0x0A15, 
11676                     0x0FB8, 
11677                     0x0A47, 
11678                     0x0C74, 
11679                     0x0A79, 
11680                     0x09EE, 
11681                     0x0AAB, 
11682                     0x07F9, 
11683                     0x0ADD, 
11684                     0x0674, 
11685                     0x0B0F, 
11686                     0x0540, 
11687                     0x0B41, 
11688                     0x044D, 
11689                     0x0B73, 
11690                     0x038A, 
11691                     0x0BA5, 
11692                     0x02EE, 
11693                     0x0BD7, 
11694                     0x0270, 
11695                     0x0C09, 
11696                     0x0209, 
11697                     0x0C3B, 
11698                     0x01B6, 
11699                     0x0C6D, 
11700                     0x0171, 
11701                     0x0C9F, 
11702                     0x0138, 
11703                     0x0CD1, 
11704                     0x0109, 
11705                     0x0D03, 
11706                     0xE2, 
11707                     0x0D35, 
11708                     0xC2, 
11709                     0x0D67, 
11710                     0xA7, 
11711                     0x0D99, 
11712                     0x90, 
11713                     0x0DCB, 
11714                     0x7D, 
11715                     0x0DFD, 
11716                     0x6D, 
11717                     0x0E2F, 
11718                     0x5F, 
11719                     0x0E61, 
11720                     0x53, 
11721                     0x0E93, 
11722                     0x49, 
11723                     0x0EC5, 
11724                     0x40, 
11725                     0x0EF7, 
11726                     0x39, 
11727                     0x0F29, 
11728                     0x32, 
11729                     0x0F5B, 
11730                     0x2D, 
11731                     0x0F8D, 
11732                     0x28
11733                 })
11734                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
11735                 Field (GPOP, ByteAcc, NoLock, Preserve)
11736                 {
11737                     Connection (
11738                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11739                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11740                             )
11741                             {   // Pin list
11742                                 0x0020
11743                             }
11744                     ), 
11745                     GMP0,   1, 
11746                     Connection (
11747                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11748                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11749                             )
11750                             {   // Pin list
11751                                 0x0021
11752                             }
11753                     ), 
11754                     GX00,   1, 
11755                     Connection (
11756                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11757                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11758                             )
11759                             {   // Pin list
11760                                 0x0022
11761                             }
11762                     ), 
11763                     GX01,   1, 
11764                     Connection (
11765                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11766                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11767                             )
11768                             {   // Pin list
11769                                 0x0023
11770                             }
11771                     ), 
11772                     GMP1,   1, 
11773                     Connection (
11774                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11775                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11776                             )
11777                             {   // Pin list
11778                                 0x0024
11779                             }
11780                     ), 
11781                     GX10,   1, 
11782                     Connection (
11783                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11784                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11785                             )
11786                             {   // Pin list
11787                                 0x0025
11788                             }
11789                     ), 
11790                     GX11,   1, 
11791                     Connection (
11792                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11793                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11794                             )
11795                             {   // Pin list
11796                                 0x0026
11797                             }
11798                     ), 
11799                     GMP2,   1, 
11800                     Connection (
11801                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11802                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11803                             )
11804                             {   // Pin list
11805                                 0x0027
11806                             }
11807                     ), 
11808                     GX20,   1, 
11809                     Connection (
11810                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11811                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11812                             )
11813                             {   // Pin list
11814                                 0x0028
11815                             }
11816                     ), 
11817                     GX21,   1, 
11818                     Connection (
11819                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11820                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11821                             )
11822                             {   // Pin list
11823                                 0x0029
11824                             }
11825                     ), 
11826                     GMP3,   1, 
11827                     Connection (
11828                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11829                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11830                             )
11831                             {   // Pin list
11832                                 0x002A
11833                             }
11834                     ), 
11835                     GX30,   1, 
11836                     Connection (
11837                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11838                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11839                             )
11840                             {   // Pin list
11841                                 0x002B
11842                             }
11843                     ), 
11844                     GX31,   1, 
11845                     Connection (
11846                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11847                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11848                             )
11849                             {   // Pin list
11850                                 0x002C
11851                             }
11852                     ), 
11853                     GMP4,   1, 
11854                     Connection (
11855                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11856                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11857                             )
11858                             {   // Pin list
11859                                 0x002D
11860                             }
11861                     ), 
11862                     GX40,   1, 
11863                     Connection (
11864                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11865                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11866                             )
11867                             {   // Pin list
11868                                 0x002E
11869                             }
11870                     ), 
11871                     GX41,   1, 
11872                     Connection (
11873                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11874                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11875                             )
11876                             {   // Pin list
11877                                 0x002F
11878                             }
11879                     ), 
11880                     GMP5,   1, 
11881                     Connection (
11882                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11883                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11884                             )
11885                             {   // Pin list
11886                                 0x0030
11887                             }
11888                     ), 
11889                     GX50,   1, 
11890                     Connection (
11891                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11892                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11893                             )
11894                             {   // Pin list
11895                                 0x0031
11896                             }
11897                     ), 
11898                     GX51,   1, 
11899                     Connection (
11900                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11901                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11902                             )
11903                             {   // Pin list
11904                                 0x0032
11905                             }
11906                     ), 
11907                     GEN0,   1, 
11908                     Connection (
11909                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11910                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11911                             )
11912                             {   // Pin list
11913                                 0x0033
11914                             }
11915                     ), 
11916                     GEN1,   1, 
11917                     Connection (
11918                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11919                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11920                             )
11921                             {   // Pin list
11922                                 0x0034
11923                             }
11924                     ), 
11925                     GEN2,   1, 
11926                     Connection (
11927                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11928                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11929                             )
11930                             {   // Pin list
11931                                 0x0035
11932                             }
11933                     ), 
11934                     GEN3,   1, 
11935                     Connection (
11936                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11937                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11938                             )
11939                             {   // Pin list
11940                                 0x0036
11941                             }
11942                     ), 
11943                     GEN4,   1, 
11944                     Connection (
11945                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11946                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11947                             )
11948                             {   // Pin list
11949                                 0x0037
11950                             }
11951                     ), 
11952                     GEN5,   1, 
11953                     Connection (
11954                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11955                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11956                             )
11957                             {   // Pin list
11958                                 0x0040
11959                             }
11960                     ), 
11961                     G28X,   1, 
11962                     Connection (
11963                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11964                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11965                             )
11966                             {   // Pin list
11967                                 0x0048
11968                             }
11969                     ), 
11970                     G18X,   1, 
11971                     Connection (
11972                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11973                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
11974                             )
11975                             {   // Pin list
11976                                 0x0053
11977                             }
11978                     ), 
11979                     GSDX,   1
11980                 }
11981
11982                 Name (AVBL, Zero)
11983                 Name (AVBD, Zero)
11984                 Name (AVBG, Zero)
11985                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
11986                 {
11987                     If ((Arg0 == 0x08))
11988                     {
11989                         AVBG = Arg1
11990                     }
11991
11992                     If ((Arg0 == 0x8D))
11993                     {
11994                         AVBL = Arg1
11995                     }
11996
11997                     If ((Arg0 == 0x8C))
11998                     {
11999                         AVBD = Arg1
12000                     }
12001                 }
12002             }
12003
12004             Device (PMI2)
12005             {
12006                 Name (_ADR, Zero)  // _ADR: Address
12007                 Name (_HID, "INT33F5" /* TI PMIC Controller */)  // _HID: Hardware ID
12008                 Name (_CID, "INT33F5" /* TI PMIC Controller */)  // _CID: Compatible ID
12009                 Name (_DDN, "TI PMIC Controller")  // _DDN: DOS Device Name
12010                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
12011                 Name (_UID, One)  // _UID: Unique ID
12012                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
12013                 {
12014                     I2C5
12015                 })
12016                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
12017                 {
12018                     Name (SBUF, ResourceTemplate ()
12019                     {
12020                         I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240,
12021                             AddressingMode7Bit, "\\_SB.I2C5",
12022                             0x00, ResourceConsumer, ,
12023                             )
12024                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12025                         {
12026                             0x00000043,
12027                         }
12028                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12029                         {
12030                             0x00000043,
12031                         }
12032                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12033                         {
12034                             0x00000043,
12035                         }
12036                     })
12037                     Return (SBUF) /* \_SB_.I2C5.PMI2._CRS.SBUF */
12038                 }
12039
12040                 Method (_STA, 0, NotSerialized)  // _STA: Status
12041                 {
12042                     If ((PMEN == Zero))
12043                     {
12044                         Return (Zero)
12045                     }
12046
12047                     If ((PMID == 0x06))
12048                     {
12049                         ADBG ("TI_DCOVE")
12050                         Return (0x0F)
12051                     }
12052
12053                     Return (Zero)
12054                 }
12055
12056                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
12057                 Field (PMOP, DWordAcc, NoLock, Preserve)
12058                 {
12059                     LDO1,   32, 
12060                     LDO2,   32, 
12061                     LDO3,   32, 
12062                     LDO5,   32, 
12063                     LDO6,   32, 
12064                     LDO7,   32, 
12065                     LDO8,   32, 
12066                     LDO9,   32, 
12067                     LD10,   32, 
12068                     LD11,   32, 
12069                     LD12,   32, 
12070                     LD13,   32, 
12071                     LD14,   32
12072                 }
12073
12074                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
12075                 Field (DPTF, DWordAcc, NoLock, Preserve)
12076                 {
12077                     TMP0,   32, 
12078                     AX00,   32, 
12079                     AX01,   32, 
12080                     TMP1,   32, 
12081                     AX10,   32, 
12082                     AX11,   32, 
12083                     TMP2,   32, 
12084                     AX20,   32, 
12085                     AX21,   32, 
12086                     TMP3,   32, 
12087                     AX30,   32, 
12088                     AX31,   32, 
12089                     TMP4,   32, 
12090                     AX40,   32, 
12091                     AX41,   32, 
12092                     TMP5,   32, 
12093                     AX50,   32, 
12094                     AX51,   32, 
12095                     PEN0,   32, 
12096                     PEN1,   32, 
12097                     PEN2,   32, 
12098                     PEN3,   32, 
12099                     PEN4,   32, 
12100                     PEN5,   32
12101                 }
12102
12103                 Name (LPAT, Package (0x44)
12104                 {
12105                     0x091B, 
12106                     0x03F1, 
12107                     0x094D, 
12108                     0x03EB, 
12109                     0x097F, 
12110                     0x03E4, 
12111                     0x09B1, 
12112                     0x03DA, 
12113                     0x09E3, 
12114                     0x03CE, 
12115                     0x0A15, 
12116                     0x03BE, 
12117                     0x0A47, 
12118                     0x03AA, 
12119                     0x0A79, 
12120                     0x0392, 
12121                     0x0AAB, 
12122                     0x0375, 
12123                     0x0ADD, 
12124                     0x0353, 
12125                     0x0B0F, 
12126                     0x032C, 
12127                     0x0B41, 
12128                     0x0300, 
12129                     0x0B73, 
12130                     0x02D0, 
12131                     0x0BA5, 
12132                     0x029D, 
12133                     0x0BD7, 
12134                     0x0268, 
12135                     0x0C09, 
12136                     0x0232, 
12137                     0x0C3B, 
12138                     0x01FD, 
12139                     0x0C6D, 
12140                     0x01C9, 
12141                     0x0C9F, 
12142                     0x0197, 
12143                     0x0CD1, 
12144                     0x0169, 
12145                     0x0D03, 
12146                     0x013E, 
12147                     0x0D35, 
12148                     0x0117, 
12149                     0x0D67, 
12150                     0xF5, 
12151                     0x0D99, 
12152                     0xD6, 
12153                     0x0DCB, 
12154                     0xBB, 
12155                     0x0DFD, 
12156                     0xA3, 
12157                     0x0E2F, 
12158                     0x8E, 
12159                     0x0E61, 
12160                     0x7C, 
12161                     0x0E93, 
12162                     0x6C, 
12163                     0x0EC5, 
12164                     0x5E, 
12165                     0x0EF7, 
12166                     0x53, 
12167                     0x0F29, 
12168                     0x48, 
12169                     0x0F5B, 
12170                     0x3F, 
12171                     0x0F8D, 
12172                     0x38
12173                 })
12174                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
12175                 Field (GPOP, ByteAcc, NoLock, Preserve)
12176                 {
12177                     Connection (
12178                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12179                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12180                             )
12181                             {   // Pin list
12182                                 0x0020
12183                             }
12184                     ), 
12185                     GMP0,   1, 
12186                     Connection (
12187                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12188                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12189                             )
12190                             {   // Pin list
12191                                 0x0021
12192                             }
12193                     ), 
12194                     GX00,   1, 
12195                     Connection (
12196                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12197                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12198                             )
12199                             {   // Pin list
12200                                 0x0022
12201                             }
12202                     ), 
12203                     GX01,   1, 
12204                     Connection (
12205                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12206                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12207                             )
12208                             {   // Pin list
12209                                 0x0023
12210                             }
12211                     ), 
12212                     GMP1,   1, 
12213                     Connection (
12214                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12215                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12216                             )
12217                             {   // Pin list
12218                                 0x0024
12219                             }
12220                     ), 
12221                     GX10,   1, 
12222                     Connection (
12223                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12224                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12225                             )
12226                             {   // Pin list
12227                                 0x0025
12228                             }
12229                     ), 
12230                     GX11,   1, 
12231                     Connection (
12232                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12233                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12234                             )
12235                             {   // Pin list
12236                                 0x0026
12237                             }
12238                     ), 
12239                     GMP2,   1, 
12240                     Connection (
12241                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12242                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12243                             )
12244                             {   // Pin list
12245                                 0x0027
12246                             }
12247                     ), 
12248                     GX20,   1, 
12249                     Connection (
12250                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12251                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12252                             )
12253                             {   // Pin list
12254                                 0x0028
12255                             }
12256                     ), 
12257                     GX21,   1, 
12258                     Connection (
12259                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12260                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12261                             )
12262                             {   // Pin list
12263                                 0x0029
12264                             }
12265                     ), 
12266                     GMP3,   1, 
12267                     Connection (
12268                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12269                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12270                             )
12271                             {   // Pin list
12272                                 0x002A
12273                             }
12274                     ), 
12275                     GX30,   1, 
12276                     Connection (
12277                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12278                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12279                             )
12280                             {   // Pin list
12281                                 0x002B
12282                             }
12283                     ), 
12284                     GX31,   1, 
12285                     Connection (
12286                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12287                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12288                             )
12289                             {   // Pin list
12290                                 0x002C
12291                             }
12292                     ), 
12293                     GMP4,   1, 
12294                     Connection (
12295                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12296                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12297                             )
12298                             {   // Pin list
12299                                 0x002D
12300                             }
12301                     ), 
12302                     GX40,   1, 
12303                     Connection (
12304                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12305                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12306                             )
12307                             {   // Pin list
12308                                 0x002E
12309                             }
12310                     ), 
12311                     GX41,   1, 
12312                     Connection (
12313                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12314                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12315                             )
12316                             {   // Pin list
12317                                 0x002F
12318                             }
12319                     ), 
12320                     GMP5,   1, 
12321                     Connection (
12322                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12323                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12324                             )
12325                             {   // Pin list
12326                                 0x0030
12327                             }
12328                     ), 
12329                     GX50,   1, 
12330                     Connection (
12331                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12332                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12333                             )
12334                             {   // Pin list
12335                                 0x0031
12336                             }
12337                     ), 
12338                     GX51,   1, 
12339                     Connection (
12340                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12341                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12342                             )
12343                             {   // Pin list
12344                                 0x0032
12345                             }
12346                     ), 
12347                     GEN0,   1, 
12348                     Connection (
12349                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12350                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12351                             )
12352                             {   // Pin list
12353                                 0x0033
12354                             }
12355                     ), 
12356                     GEN1,   1, 
12357                     Connection (
12358                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12359                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12360                             )
12361                             {   // Pin list
12362                                 0x0034
12363                             }
12364                     ), 
12365                     GEN2,   1, 
12366                     Connection (
12367                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12368                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12369                             )
12370                             {   // Pin list
12371                                 0x0035
12372                             }
12373                     ), 
12374                     GEN3,   1, 
12375                     Connection (
12376                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12377                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12378                             )
12379                             {   // Pin list
12380                                 0x0036
12381                             }
12382                     ), 
12383                     GEN4,   1, 
12384                     Connection (
12385                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12386                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12387                             )
12388                             {   // Pin list
12389                                 0x0037
12390                             }
12391                     ), 
12392                     GEN5,   1, 
12393                     Connection (
12394                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12395                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12396                             )
12397                             {   // Pin list
12398                                 0x0045
12399                             }
12400                     ), 
12401                     GSDX,   1, 
12402                     Connection (
12403                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12404                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12405                             )
12406                             {   // Pin list
12407                                 0x0047
12408                             }
12409                     ), 
12410                     G28X,   1, 
12411                     Connection (
12412                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12413                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12414                             )
12415                             {   // Pin list
12416                                 0x0048
12417                             }
12418                     ), 
12419                     G18X,   1, 
12420                     Connection (
12421                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12422                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12423                             )
12424                             {   // Pin list
12425                                 0x0049
12426                             }
12427                     ), 
12428                     G18U,   1
12429                 }
12430
12431                 Name (AVBL, Zero)
12432                 Name (AVBD, Zero)
12433                 Name (AVBG, Zero)
12434                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
12435                 {
12436                     If ((Arg0 == 0x08))
12437                     {
12438                         AVBG = Arg1
12439                     }
12440
12441                     If ((Arg0 == 0x8D))
12442                     {
12443                         AVBL = Arg1
12444                     }
12445
12446                     If ((Arg0 == 0x8C))
12447                     {
12448                         AVBD = Arg1
12449                     }
12450                 }
12451             }
12452
12453             Device (PMIF)
12454             {
12455                 Name (_ADR, Zero)  // _ADR: Address
12456                 Name (_HID, "DMY0001")  // _HID: Hardware ID
12457                 Name (_CID, "DMY0001")  // _CID: Compatible ID
12458                 Name (_DDN, "Dummy PMIC controller")  // _DDN: DOS Device Name
12459                 Name (_HRV, Zero)  // _HRV: Hardware Revision
12460                 Name (_UID, One)  // _UID: Unique ID
12461                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
12462                 {
12463                     I2C5
12464                 })
12465                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
12466                 {
12467                     Name (SBUF, ResourceTemplate ()
12468                     {
12469                         I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240,
12470                             AddressingMode7Bit, "\\_SB.I2C5",
12471                             0x00, ResourceConsumer, ,
12472                             )
12473                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12474                         {
12475                             0x00000043,
12476                         }
12477                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12478                         {
12479                             0x00000043,
12480                         }
12481                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12482                         {
12483                             0x00000043,
12484                         }
12485                     })
12486                     Return (SBUF) /* \_SB_.I2C5.PMIF._CRS.SBUF */
12487                 }
12488
12489                 Method (_STA, 0, NotSerialized)  // _STA: Status
12490                 {
12491                     If ((PMEN == Zero))
12492                     {
12493                         Return (Zero)
12494                     }
12495
12496                     If ((PMID == 0xFE))
12497                     {
12498                         ADBG ("DMPMIC")
12499                         Return (0x0F)
12500                     }
12501
12502                     Return (Zero)
12503                 }
12504             }
12505
12506             Device (PMIC)
12507             {
12508                 Name (_ADR, Zero)  // _ADR: Address
12509                 Name (_HID, "INT33FD" /* Intel Baytrail Power Management IC */)  // _HID: Hardware ID
12510                 Name (_CID, "INT33FD" /* Intel Baytrail Power Management IC */)  // _CID: Compatible ID
12511                 Name (_DDN, "PMIC GPIO Controller")  // _DDN: DOS Device Name
12512                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
12513                 Name (_UID, One)  // _UID: Unique ID
12514                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
12515                 {
12516                     I2C5
12517                 })
12518                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
12519                 {
12520                     Name (SBUF, ResourceTemplate ()
12521                     {
12522                         I2cSerialBus (0x006E, ControllerInitiated, 0x000F4240,
12523                             AddressingMode7Bit, "\\_SB.I2C5",
12524                             0x00, ResourceConsumer, ,
12525                             )
12526                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12527                         {
12528                             0x00000043,
12529                         }
12530                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12531                         {
12532                             0x00000043,
12533                         }
12534                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12535                         {
12536                             0x00000043,
12537                         }
12538                     })
12539                     Return (SBUF) /* \_SB_.I2C5.PMIC._CRS.SBUF */
12540                 }
12541
12542                 Method (_STA, 0, NotSerialized)  // _STA: Status
12543                 {
12544                     If ((PMEN == Zero))
12545                     {
12546                         Return (Zero)
12547                     }
12548
12549                     If ((PMID == One))
12550                     {
12551                         ADBG ("CCPMIC")
12552                         Return (0x0F)
12553                     }
12554
12555                     Return (Zero)
12556                 }
12557
12558                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
12559                 Field (DPTF, DWordAcc, NoLock, Preserve)
12560                 {
12561                     TMP0,   32, 
12562                     AX00,   32, 
12563                     AX01,   32, 
12564                     TMP1,   32, 
12565                     AX10,   32, 
12566                     AX11,   32, 
12567                     TMP2,   32, 
12568                     AX20,   32, 
12569                     AX21,   32, 
12570                     TMP3,   32, 
12571                     AX30,   32, 
12572                     AX31,   32, 
12573                     TMP4,   32, 
12574                     AX40,   32, 
12575                     AX41,   32, 
12576                     TMP5,   32, 
12577                     AX50,   32, 
12578                     AX51,   32, 
12579                     PEN0,   32, 
12580                     PEN1,   32, 
12581                     PEN2,   32, 
12582                     PEN3,   32, 
12583                     PEN4,   32, 
12584                     PEN5,   32
12585                 }
12586
12587                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
12588                 Field (PMOP, DWordAcc, NoLock, Preserve)
12589                 {
12590                     VSYS,   32, 
12591                     SYSX,   32, 
12592                     SYSU,   32, 
12593                     SYSS,   32, 
12594                     V50S,   32, 
12595                     HOST,   32, 
12596                     VBUS,   32, 
12597                     HDMI,   32, 
12598                     S285,   32, 
12599                     X285,   32, 
12600                     V33A,   32, 
12601                     V33S,   32, 
12602                     V33U,   32, 
12603                     V33I,   32, 
12604                     V18A,   32, 
12605                     REFQ,   32, 
12606                     V12A,   32, 
12607                     V18S,   32, 
12608                     V18X,   32, 
12609                     V18U,   32, 
12610                     V12X,   32, 
12611                     V12S,   32, 
12612                     V10A,   32, 
12613                     V10S,   32, 
12614                     V10X,   32, 
12615                     V105,   32
12616                 }
12617
12618                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
12619                 Field (GPOP, ByteAcc, NoLock, Preserve)
12620                 {
12621                     Connection (
12622                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12623                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12624                             )
12625                             {   // Pin list
12626                                 0x0020
12627                             }
12628                     ), 
12629                     GMP0,   1, 
12630                     Connection (
12631                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12632                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12633                             )
12634                             {   // Pin list
12635                                 0x0021
12636                             }
12637                     ), 
12638                     GX00,   1, 
12639                     Connection (
12640                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12641                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12642                             )
12643                             {   // Pin list
12644                                 0x0022
12645                             }
12646                     ), 
12647                     GX01,   1, 
12648                     Connection (
12649                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12650                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12651                             )
12652                             {   // Pin list
12653                                 0x0023
12654                             }
12655                     ), 
12656                     GMP1,   1, 
12657                     Connection (
12658                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12659                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12660                             )
12661                             {   // Pin list
12662                                 0x0024
12663                             }
12664                     ), 
12665                     GX10,   1, 
12666                     Connection (
12667                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12668                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12669                             )
12670                             {   // Pin list
12671                                 0x0025
12672                             }
12673                     ), 
12674                     GX11,   1, 
12675                     Connection (
12676                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12677                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12678                             )
12679                             {   // Pin list
12680                                 0x0026
12681                             }
12682                     ), 
12683                     GMP2,   1, 
12684                     Connection (
12685                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12686                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12687                             )
12688                             {   // Pin list
12689                                 0x0027
12690                             }
12691                     ), 
12692                     GX20,   1, 
12693                     Connection (
12694                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12695                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12696                             )
12697                             {   // Pin list
12698                                 0x0028
12699                             }
12700                     ), 
12701                     GX21,   1, 
12702                     Connection (
12703                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12704                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12705                             )
12706                             {   // Pin list
12707                                 0x0029
12708                             }
12709                     ), 
12710                     GMP3,   1, 
12711                     Connection (
12712                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12713                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12714                             )
12715                             {   // Pin list
12716                                 0x002A
12717                             }
12718                     ), 
12719                     GX30,   1, 
12720                     Connection (
12721                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12722                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12723                             )
12724                             {   // Pin list
12725                                 0x002B
12726                             }
12727                     ), 
12728                     GX31,   1, 
12729                     Connection (
12730                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12731                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12732                             )
12733                             {   // Pin list
12734                                 0x002C
12735                             }
12736                     ), 
12737                     GMP4,   1, 
12738                     Connection (
12739                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12740                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12741                             )
12742                             {   // Pin list
12743                                 0x002D
12744                             }
12745                     ), 
12746                     GX40,   1, 
12747                     Connection (
12748                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12749                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12750                             )
12751                             {   // Pin list
12752                                 0x002E
12753                             }
12754                     ), 
12755                     GX41,   1, 
12756                     Connection (
12757                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12758                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12759                             )
12760                             {   // Pin list
12761                                 0x002F
12762                             }
12763                     ), 
12764                     GMP5,   1, 
12765                     Connection (
12766                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12767                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12768                             )
12769                             {   // Pin list
12770                                 0x0030
12771                             }
12772                     ), 
12773                     GX50,   1, 
12774                     Connection (
12775                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12776                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12777                             )
12778                             {   // Pin list
12779                                 0x0031
12780                             }
12781                     ), 
12782                     GX51,   1, 
12783                     Connection (
12784                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12785                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12786                             )
12787                             {   // Pin list
12788                                 0x0032
12789                             }
12790                     ), 
12791                     GEN0,   1, 
12792                     Connection (
12793                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12794                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12795                             )
12796                             {   // Pin list
12797                                 0x0033
12798                             }
12799                     ), 
12800                     GEN1,   1, 
12801                     Connection (
12802                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12803                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12804                             )
12805                             {   // Pin list
12806                                 0x0034
12807                             }
12808                     ), 
12809                     GEN2,   1, 
12810                     Connection (
12811                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12812                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12813                             )
12814                             {   // Pin list
12815                                 0x0035
12816                             }
12817                     ), 
12818                     GEN3,   1, 
12819                     Connection (
12820                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12821                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12822                             )
12823                             {   // Pin list
12824                                 0x0036
12825                             }
12826                     ), 
12827                     GEN4,   1, 
12828                     Connection (
12829                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12830                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12831                             )
12832                             {   // Pin list
12833                                 0x0037
12834                             }
12835                     ), 
12836                     GEN5,   1, 
12837                     Connection (
12838                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12839                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12840                             )
12841                             {   // Pin list
12842                                 0x0040
12843                             }
12844                     ), 
12845                     GSYS,   1, 
12846                     Connection (
12847                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12848                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12849                             )
12850                             {   // Pin list
12851                                 0x0041
12852                             }
12853                     ), 
12854                     GYSX,   1, 
12855                     Connection (
12856                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12857                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12858                             )
12859                             {   // Pin list
12860                                 0x0042
12861                             }
12862                     ), 
12863                     GYSU,   1, 
12864                     Connection (
12865                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12866                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12867                             )
12868                             {   // Pin list
12869                                 0x0043
12870                             }
12871                     ), 
12872                     GYSS,   1, 
12873                     Connection (
12874                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12875                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12876                             )
12877                             {   // Pin list
12878                                 0x0044
12879                             }
12880                     ), 
12881                     G50S,   1, 
12882                     Connection (
12883                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12884                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12885                             )
12886                             {   // Pin list
12887                                 0x0045
12888                             }
12889                     ), 
12890                     GOST,   1, 
12891                     Connection (
12892                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12893                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12894                             )
12895                             {   // Pin list
12896                                 0x0046
12897                             }
12898                     ), 
12899                     GBUS,   1, 
12900                     Connection (
12901                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12902                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12903                             )
12904                             {   // Pin list
12905                                 0x0047
12906                             }
12907                     ), 
12908                     GDMI,   1, 
12909                     Connection (
12910                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12911                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12912                             )
12913                             {   // Pin list
12914                                 0x0048
12915                             }
12916                     ), 
12917                     G28S,   1, 
12918                     Connection (
12919                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12920                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12921                             )
12922                             {   // Pin list
12923                                 0x0049
12924                             }
12925                     ), 
12926                     G28X,   1, 
12927                     Connection (
12928                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12929                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12930                             )
12931                             {   // Pin list
12932                                 0x004A
12933                             }
12934                     ), 
12935                     G33A,   1, 
12936                     Connection (
12937                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12938                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12939                             )
12940                             {   // Pin list
12941                                 0x004B
12942                             }
12943                     ), 
12944                     G33S,   1, 
12945                     Connection (
12946                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12947                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12948                             )
12949                             {   // Pin list
12950                                 0x004C
12951                             }
12952                     ), 
12953                     G33U,   1, 
12954                     Connection (
12955                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12956                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12957                             )
12958                             {   // Pin list
12959                                 0x004D
12960                             }
12961                     ), 
12962                     G33I,   1, 
12963                     Connection (
12964                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12965                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12966                             )
12967                             {   // Pin list
12968                                 0x004E
12969                             }
12970                     ), 
12971                     G18A,   1, 
12972                     Connection (
12973                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12974                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12975                             )
12976                             {   // Pin list
12977                                 0x004F
12978                             }
12979                     ), 
12980                     GEFQ,   1, 
12981                     Connection (
12982                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12983                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12984                             )
12985                             {   // Pin list
12986                                 0x0050
12987                             }
12988                     ), 
12989                     G12A,   1, 
12990                     Connection (
12991                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12992                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
12993                             )
12994                             {   // Pin list
12995                                 0x0051
12996                             }
12997                     ), 
12998                     G18S,   1, 
12999                     Connection (
13000                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13001                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13002                             )
13003                             {   // Pin list
13004                                 0x0052
13005                             }
13006                     ), 
13007                     G18X,   1, 
13008                     Connection (
13009                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13010                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13011                             )
13012                             {   // Pin list
13013                                 0x0053
13014                             }
13015                     ), 
13016                     G18U,   1, 
13017                     Connection (
13018                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13019                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13020                             )
13021                             {   // Pin list
13022                                 0x0054
13023                             }
13024                     ), 
13025                     G12X,   1, 
13026                     Connection (
13027                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13028                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13029                             )
13030                             {   // Pin list
13031                                 0x0055
13032                             }
13033                     ), 
13034                     G12S,   1, 
13035                     Connection (
13036                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13037                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13038                             )
13039                             {   // Pin list
13040                                 0x0056
13041                             }
13042                     ), 
13043                     G10A,   1, 
13044                     Connection (
13045                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13046                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13047                             )
13048                             {   // Pin list
13049                                 0x0057
13050                             }
13051                     ), 
13052                     G10S,   1, 
13053                     Connection (
13054                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13055                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13056                             )
13057                             {   // Pin list
13058                                 0x0058
13059                             }
13060                     ), 
13061                     G10X,   1, 
13062                     Connection (
13063                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13064                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13065                             )
13066                             {   // Pin list
13067                                 0x0059
13068                             }
13069                     ), 
13070                     G105,   1, 
13071                     Connection (
13072                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13073                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13074                             )
13075                             {   // Pin list
13076                                 0x005E
13077                             }
13078                     ), 
13079                     FCOT,   1
13080                 }
13081
13082                 Name (AVBL, Zero)
13083                 Name (AVBD, Zero)
13084                 Name (AVBG, Zero)
13085                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
13086                 {
13087                     If ((Arg0 == 0x08))
13088                     {
13089                         AVBG = Arg1
13090                     }
13091
13092                     If ((Arg0 == 0x8D))
13093                     {
13094                         AVBL = Arg1
13095                     }
13096
13097                     If ((Arg0 == 0x8C))
13098                     {
13099                         AVBD = Arg1
13100                     }
13101                 }
13102
13103                 Name (LPAT, Package (0x30)
13104                 {
13105                     0x09E3, 
13106                     0x03D1, 
13107                     0x0A15, 
13108                     0x03C1, 
13109                     0x0A47, 
13110                     0x03AD, 
13111                     0x0A79, 
13112                     0x0395, 
13113                     0x0AAB, 
13114                     0x0377, 
13115                     0x0ADD, 
13116                     0x0355, 
13117                     0x0B0F, 
13118                     0x032D, 
13119                     0x0B41, 
13120                     0x0301, 
13121                     0x0B73, 
13122                     0x02D0, 
13123                     0x0BA5, 
13124                     0x029D, 
13125                     0x0BD7, 
13126                     0x0267, 
13127                     0x0C09, 
13128                     0x0231, 
13129                     0x0C3B, 
13130                     0x01FC, 
13131                     0x0C6D, 
13132                     0x01C8, 
13133                     0x0C9F, 
13134                     0x0197, 
13135                     0x0CD1, 
13136                     0x0165, 
13137                     0x0D03, 
13138                     0x013B, 
13139                     0x0D35, 
13140                     0x0115, 
13141                     0x0D67, 
13142                     0xF3, 
13143                     0x0D99, 
13144                     0xD4, 
13145                     0x0DCB, 
13146                     0xBA, 
13147                     0x0DFD, 
13148                     0xA2, 
13149                     0x0E2F, 
13150                     0x8C, 
13151                     0x0E93, 
13152                     0x6B
13153                 })
13154             }
13155         }
13156
13157         Scope (I2C1)
13158         {
13159             Device (IMP3)
13160             {
13161                 Name (_ADR, Zero)  // _ADR: Address
13162                 Name (_HID, "IMPJ0003")  // _HID: Hardware ID
13163                 Name (_CID, "IMPJ0003")  // _CID: Compatible ID
13164                 Name (_UID, One)  // _UID: Unique ID
13165                 Method (_STA, 0, NotSerialized)  // _STA: Status
13166                 {
13167                     If ((PSSD == 0x02))
13168                     {
13169                         Return (0x0F)
13170                     }
13171
13172                     Return (Zero)
13173                 }
13174
13175                 Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
13176                 {
13177                     Name (SBUF, ResourceTemplate ()
13178                     {
13179                         I2cSerialBus (0x006E, ControllerInitiated, 0x000186A0,
13180                             AddressingMode7Bit, "\\_SB.I2C1",
13181                             0x00, ResourceConsumer, ,
13182                             )
13183                     })
13184                     Return (SBUF) /* \_SB_.I2C1.IMP3._CRS.SBUF */
13185                 }
13186             }
13187         }
13188
13189         PowerResource (P28X, 0x05, 0x0000)
13190         {
13191             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13192             {
13193                 I2C5, 
13194                 ^I2C5.PMIC
13195             })
13196             Method (_STA, 0, NotSerialized)  // _STA: Status
13197             {
13198                 If ((^^I2C5.PMIC.AVBG == One))
13199                 {
13200                     ^^I2C5.PMIC.G28X = Zero
13201                     If ((^^I2C5.PMIC.AVBL == One))
13202                     {
13203                         Return (^^I2C5.PMIC.X285) /* \_SB_.I2C5.PMIC.X285 */
13204                     }
13205                 }
13206
13207                 Return (Zero)
13208             }
13209
13210             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13211             {
13212                 If ((^^I2C5.PMIC.AVBL == One))
13213                 {
13214                     ^^I2C5.PMIC.X285 = One
13215                     If ((^^I2C5.PMIC.AVBG == One))
13216                     {
13217                         ^^I2C5.PMIC.G28X = One
13218                         Sleep (0x1E)
13219                     }
13220                 }
13221             }
13222
13223             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13224             {
13225                 If ((^^I2C5.PMIC.AVBL == One))
13226                 {
13227                     ^^I2C5.PMIC.X285 = Zero
13228                     If ((^^I2C5.PMIC.AVBG == One))
13229                     {
13230                         ^^I2C5.PMIC.G28X = One
13231                         Sleep (0x1E)
13232                     }
13233                 }
13234             }
13235         }
13236
13237         PowerResource (P18X, 0x05, 0x0000)
13238         {
13239             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13240             {
13241                 I2C5, 
13242                 ^I2C5.PMIC
13243             })
13244             Method (_STA, 0, NotSerialized)  // _STA: Status
13245             {
13246                 If ((^^I2C5.PMIC.AVBG == One))
13247                 {
13248                     ^^I2C5.PMIC.G18X = Zero
13249                     If ((^^I2C5.PMIC.AVBL == One))
13250                     {
13251                         Return (^^I2C5.PMIC.V18X) /* \_SB_.I2C5.PMIC.V18X */
13252                     }
13253                 }
13254
13255                 Return (Zero)
13256             }
13257
13258             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13259             {
13260                 If ((^^I2C5.PMIC.AVBL == One))
13261                 {
13262                     ^^I2C5.PMIC.V18X = One
13263                     If ((^^I2C5.PMIC.AVBG == One))
13264                     {
13265                         ^^I2C5.PMIC.G18X = One
13266                         Sleep (0x1E)
13267                     }
13268                 }
13269             }
13270
13271             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13272             {
13273                 If ((^^I2C5.PMIC.AVBL == One))
13274                 {
13275                     ^^I2C5.PMIC.V18X = Zero
13276                     If ((^^I2C5.PMIC.AVBG == One))
13277                     {
13278                         ^^I2C5.PMIC.G18X = One
13279                         Sleep (0x1E)
13280                     }
13281                 }
13282             }
13283         }
13284
13285         PowerResource (P28P, 0x05, 0x0000)
13286         {
13287             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13288             {
13289                 I2C5, 
13290                 ^I2C5.PMI1
13291             })
13292             Method (_STA, 0, NotSerialized)  // _STA: Status
13293             {
13294                 If ((^^I2C5.PMI1.AVBG == One))
13295                 {
13296                     ^^I2C5.PMI1.G28X = Zero
13297                     If ((^^I2C5.PMI1.AVBL == One))
13298                     {
13299                         Return (^^I2C5.PMI1.ALD1) /* \_SB_.I2C5.PMI1.ALD1 */
13300                     }
13301                 }
13302
13303                 Return (Zero)
13304             }
13305
13306             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13307             {
13308                 If ((^^I2C5.PMI1.AVBL == One))
13309                 {
13310                     ^^I2C5.PMI1.ALD1 = One
13311                     If ((^^I2C5.PMI1.AVBG == One))
13312                     {
13313                         ^^I2C5.PMI1.G28X = One
13314                         Sleep (0x1E)
13315                     }
13316                 }
13317             }
13318
13319             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13320             {
13321                 If ((^^I2C5.PMI1.AVBL == One))
13322                 {
13323                     ^^I2C5.PMI1.ALD1 = Zero
13324                     If ((^^I2C5.PMI1.AVBG == One))
13325                     {
13326                         ^^I2C5.PMI1.G28X = One
13327                         Sleep (0x1E)
13328                     }
13329                 }
13330             }
13331         }
13332
13333         PowerResource (P18P, 0x05, 0x0000)
13334         {
13335             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13336             {
13337                 I2C5, 
13338                 ^I2C5.PMI1
13339             })
13340             Method (_STA, 0, NotSerialized)  // _STA: Status
13341             {
13342                 If ((^^I2C5.PMI1.AVBG == One))
13343                 {
13344                     ^^I2C5.PMI1.G18X = Zero
13345                     If ((^^I2C5.PMI1.AVBL == One))
13346                     {
13347                         Return (^^I2C5.PMI1.ELD2) /* \_SB_.I2C5.PMI1.ELD2 */
13348                     }
13349                 }
13350
13351                 Return (Zero)
13352             }
13353
13354             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13355             {
13356                 If ((^^I2C5.PMI1.AVBL == One))
13357                 {
13358                     ^^I2C5.PMI1.ELD2 = One
13359                     If ((^^I2C5.PMI1.AVBG == One))
13360                     {
13361                         ^^I2C5.PMI1.G18X = One
13362                         Sleep (0x1E)
13363                     }
13364                 }
13365             }
13366
13367             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13368             {
13369                 If ((^^I2C5.PMI1.AVBL == One))
13370                 {
13371                     ^^I2C5.PMI1.ELD2 = Zero
13372                     If ((^^I2C5.PMI1.AVBG == One))
13373                     {
13374                         ^^I2C5.PMI1.G18X = One
13375                         Sleep (0x1E)
13376                     }
13377                 }
13378             }
13379         }
13380
13381         PowerResource (P28T, 0x05, 0x0000)
13382         {
13383             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13384             {
13385                 I2C5, 
13386                 ^I2C5.PMI2
13387             })
13388             Method (_STA, 0, NotSerialized)  // _STA: Status
13389             {
13390                 If ((^^I2C5.PMI2.AVBG == One))
13391                 {
13392                     ^^I2C5.PMI2.G28X = Zero
13393                     If ((^^I2C5.PMI2.AVBL == One))
13394                     {
13395                         Return (^^I2C5.PMI2.LDO9) /* \_SB_.I2C5.PMI2.LDO9 */
13396                     }
13397                 }
13398
13399                 Return (Zero)
13400             }
13401
13402             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13403             {
13404                 If ((^^I2C5.PMI2.AVBL == One))
13405                 {
13406                     ^^I2C5.PMI2.LDO9 = One
13407                     If ((^^I2C5.PMI2.AVBG == One))
13408                     {
13409                         ^^I2C5.PMI2.G28X = One
13410                         Sleep (0x1E)
13411                     }
13412                 }
13413             }
13414
13415             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13416             {
13417                 If ((^^I2C5.PMI2.AVBL == One))
13418                 {
13419                     ^^I2C5.PMI2.LDO9 = Zero
13420                     If ((^^I2C5.PMI2.AVBG == One))
13421                     {
13422                         ^^I2C5.PMI2.G28X = One
13423                         Sleep (0x1E)
13424                     }
13425                 }
13426             }
13427         }
13428
13429         PowerResource (P18T, 0x05, 0x0000)
13430         {
13431             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13432             {
13433                 I2C5, 
13434                 ^I2C5.PMI2
13435             })
13436             Method (_STA, 0, NotSerialized)  // _STA: Status
13437             {
13438                 If ((^^I2C5.PMI2.AVBG == One))
13439                 {
13440                     ^^I2C5.PMI2.G18X = Zero
13441                     If ((^^I2C5.PMI2.AVBL == One))
13442                     {
13443                         Return (^^I2C5.PMI2.LD10) /* \_SB_.I2C5.PMI2.LD10 */
13444                     }
13445                 }
13446
13447                 Return (Zero)
13448             }
13449
13450             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13451             {
13452                 If ((^^I2C5.PMI2.AVBL == One))
13453                 {
13454                     ^^I2C5.PMI2.LD10 = One
13455                     If ((^^I2C5.PMI2.AVBG == One))
13456                     {
13457                         ^^I2C5.PMI2.G18X = One
13458                         Sleep (0x1E)
13459                     }
13460                 }
13461             }
13462
13463             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13464             {
13465                 If ((^^I2C5.PMI2.AVBL == One))
13466                 {
13467                     ^^I2C5.PMI2.LD10 = Zero
13468                     If ((^^I2C5.PMI2.AVBG == One))
13469                     {
13470                         ^^I2C5.PMI2.G18X = One
13471                         Sleep (0x1E)
13472                     }
13473                 }
13474             }
13475         }
13476
13477         PowerResource (P1XT, 0x05, 0x0000)
13478         {
13479             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13480             {
13481                 I2C5, 
13482                 ^I2C5.PMI2
13483             })
13484             Method (_STA, 0, NotSerialized)  // _STA: Status
13485             {
13486                 If ((^^I2C5.PMI2.AVBG == One))
13487                 {
13488                     ^^I2C5.PMI2.G18U = Zero
13489                     If ((^^I2C5.PMI2.AVBL == One))
13490                     {
13491                         Return (^^I2C5.PMI2.LD11) /* \_SB_.I2C5.PMI2.LD11 */
13492                     }
13493                 }
13494
13495                 Return (Zero)
13496             }
13497
13498             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13499             {
13500                 If ((^^I2C5.PMI2.AVBL == One))
13501                 {
13502                     ^^I2C5.PMI2.LD11 = One
13503                     If ((^^I2C5.PMI2.AVBG == One))
13504                     {
13505                         ^^I2C5.PMI2.G18U = One
13506                         Sleep (0x1E)
13507                     }
13508                 }
13509             }
13510
13511             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13512             {
13513                 If ((^^I2C5.PMI2.AVBL == One))
13514                 {
13515                     ^^I2C5.PMI2.LD11 = Zero
13516                     If ((^^I2C5.PMI2.AVBG == One))
13517                     {
13518                         ^^I2C5.PMI2.G18U = One
13519                         Sleep (0x1E)
13520                     }
13521                 }
13522             }
13523         }
13524
13525         Device (TBAD)
13526         {
13527             Name (_HID, "INTCFD9" /* Intel Baytrail SOC GPIO Controller */)  // _HID: Hardware ID
13528             Name (_CID, "PNP0C40" /* Standard Button Controller */)  // _CID: Compatible ID
13529             Name (_DDN, "Keyboard less system - 5 Button Array Device")  // _DDN: DOS Device Name
13530             Name (_DEP, Package (0x04)  // _DEP: Dependencies
13531             {
13532                 GPO0, 
13533                 GPO2, 
13534                 I2C5, 
13535                 ^I2C5.PMI1
13536             })
13537             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
13538             {
13539                 Name (RBUF, ResourceTemplate ()
13540                 {
13541                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13542                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13543                         )
13544                         {   // Pin list
13545                             0x0010
13546                         }
13547                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13548                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13549                         )
13550                         {   // Pin list
13551                             0x0015
13552                         }
13553                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13554                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13555                         )
13556                         {   // Pin list
13557                             0x0001
13558                         }
13559                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13560                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13561                         )
13562                         {   // Pin list
13563                             0x0000
13564                         }
13565                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13566                         "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13567                         )
13568                         {   // Pin list
13569                             0x0007
13570                         }
13571                 })
13572                 Name (ABUF, ResourceTemplate ()
13573                 {
13574                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13575                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
13576                         )
13577                         {   // Pin list
13578                             0x0016
13579                         }
13580                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13581                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13582                         )
13583                         {   // Pin list
13584                             0x0015
13585                         }
13586                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13587                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13588                         )
13589                         {   // Pin list
13590                             0x0001
13591                         }
13592                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13593                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13594                         )
13595                         {   // Pin list
13596                             0x0000
13597                         }
13598                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13599                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
13600                         )
13601                         {   // Pin list
13602                             0x005F
13603                         }
13604                 })
13605                 Name (BBUF, ResourceTemplate ()
13606                 {
13607                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13608                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13609                         )
13610                         {   // Pin list
13611                             0x0016
13612                         }
13613                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13614                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13615                         )
13616                         {   // Pin list
13617                             0x0015
13618                         }
13619                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13620                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13621                         )
13622                         {   // Pin list
13623                             0x0001
13624                         }
13625                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13626                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13627                         )
13628                         {   // Pin list
13629                             0x0000
13630                         }
13631                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13632                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13633                         )
13634                         {   // Pin list
13635                             0x005F
13636                         }
13637                 })
13638                 Name (ABU0, ResourceTemplate ()
13639                 {
13640                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13641                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
13642                         )
13643                         {   // Pin list
13644                             0x0016
13645                         }
13646                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13647                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13648                         )
13649                         {   // Pin list
13650                             0x0015
13651                         }
13652                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13653                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13654                         )
13655                         {   // Pin list
13656                             0x0001
13657                         }
13658                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13659                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13660                         )
13661                         {   // Pin list
13662                             0x0000
13663                         }
13664                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13665                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13666                         )
13667                         {   // Pin list
13668                             0x0028
13669                         }
13670                 })
13671                 Name (BBU0, ResourceTemplate ()
13672                 {
13673                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13674                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13675                         )
13676                         {   // Pin list
13677                             0x0016
13678                         }
13679                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
13680                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13681                         )
13682                         {   // Pin list
13683                             0x0015
13684                         }
13685                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13686                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13687                         )
13688                         {   // Pin list
13689                             0x0001
13690                         }
13691                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13692                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13693                         )
13694                         {   // Pin list
13695                             0x0000
13696                         }
13697                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
13698                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
13699                         )
13700                         {   // Pin list
13701                             0x0028
13702                         }
13703                 })
13704                 If ((PMID == 0x05))
13705                 {
13706                     If ((OSSL & 0x80))
13707                     {
13708                         Return (ABUF) /* \_SB_.TBAD._CRS.ABUF */
13709                     }
13710                     Else
13711                     {
13712                         Return (ABU0) /* \_SB_.TBAD._CRS.ABU0 */
13713                     }
13714                 }
13715
13716                 If ((PMID == 0x06))
13717                 {
13718                     If ((OSSL & 0x80))
13719                     {
13720                         Return (BBUF) /* \_SB_.TBAD._CRS.BBUF */
13721                     }
13722                     Else
13723                     {
13724                         Return (BBU0) /* \_SB_.TBAD._CRS.BBU0 */
13725                     }
13726                 }
13727
13728                 Return (RBUF) /* \_SB_.TBAD._CRS.RBUF */
13729             }
13730
13731             Method (_STA, 0, NotSerialized)  // _STA: Status
13732             {
13733                 Return (0x0F)
13734             }
13735
13736             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
13737             {
13738                 Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
13739                 If ((Arg0 == ToUUID ("dfbcf3c5-e7a5-44e6-9c1f-29c76f6e059c") /* Power Button Device */))
13740                 {
13741                     While (One)
13742                     {
13743                         T_0 = ToInteger (Arg2)
13744                         If ((T_0 == Zero))
13745                         {
13746                             Return (Buffer (One)
13747                             {
13748                                  0x03                                             /* . */
13749                             })
13750                         }
13751                         Else
13752                         {
13753                             If ((T_0 == One))
13754                             {
13755                                 Return (0x07)
13756                             }
13757                         }
13758
13759                         Break
13760                     }
13761                 }
13762                 Else
13763                 {
13764                     Return (Buffer (One)
13765                     {
13766                          0x00                                             /* . */
13767                     })
13768                 }
13769
13770                 Return (Zero)
13771             }
13772         }
13773
13774         Device (MBID)
13775         {
13776             Name (_HID, "INT33BD" /* Intel Baytrail Mailbox Device */)  // _HID: Hardware ID
13777             Name (_CID, "INT33BD" /* Intel Baytrail Mailbox Device */)  // _CID: Compatible ID
13778             Name (_HRV, 0x02)  // _HRV: Hardware Revision
13779             Name (_UID, One)  // _UID: Unique ID
13780             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
13781             {
13782                 Name (RBUF, ResourceTemplate ()
13783                 {
13784                     Memory32Fixed (ReadWrite,
13785                         0xE00000D0,         // Address Base
13786                         0x0000000C,         // Address Length
13787                         )
13788                 })
13789                 Return (RBUF) /* \_SB_.MBID._CRS.RBUF */
13790             }
13791
13792             OperationRegion (REGS, 0x87, Zero, 0x30)
13793             Field (REGS, DWordAcc, NoLock, Preserve)
13794             {
13795                 PORT,   32, 
13796                 REG,    32, 
13797                 DATA,   32, 
13798                 MASK,   32, 
13799                 BE,     32, 
13800                 OP,     32
13801             }
13802
13803             Name (AVBL, Zero)
13804             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
13805             {
13806                 If ((Arg0 == 0x87))
13807                 {
13808                     AVBL = Arg1
13809                 }
13810             }
13811
13812             Method (READ, 3, Serialized)
13813             {
13814                 Local0 = 0xFFFFFFFF
13815                 If ((AVBL == One))
13816                 {
13817                     OP = Zero
13818                     PORT = Arg0
13819                     REG = Arg1
13820                     BE = Arg2
13821                     Local0 = DATA /* \_SB_.MBID.DATA */
13822                 }
13823
13824                 Return (Local0)
13825             }
13826
13827             Method (WRIT, 4, Serialized)
13828             {
13829                 If ((AVBL == One))
13830                 {
13831                     OP = One
13832                     PORT = Arg0
13833                     REG = Arg1
13834                     BE = Arg2
13835                     DATA = Arg3
13836                 }
13837             }
13838
13839             Method (MODI, 5, Serialized)
13840             {
13841                 If ((AVBL == One))
13842                 {
13843                     OP = 0x02
13844                     PORT = Arg0
13845                     REG = Arg1
13846                     BE = Arg2
13847                     DATA = Arg3
13848                     MASK = Arg4
13849                 }
13850             }
13851         }
13852
13853         Device (PAGD)
13854         {
13855             Name (_HID, "ACPI000C" /* Processor Aggregator Device */)  // _HID: Hardware ID
13856             Name (_CID, "ACPI000C" /* Processor Aggregator Device */)  // _CID: Compatible ID
13857             Name (IDCN, Zero)
13858             Name (PURP, Package (0x02)
13859             {
13860                 One, 
13861                 Zero
13862             })
13863             Method (_PUR, 0, Serialized)  // _PUR: Processor Utilization Request
13864             {
13865                 Index (PURP, One) = IDCN /* \_SB_.PAGD.IDCN */
13866                 Return (PURP) /* \_SB_.PAGD.PURP */
13867             }
13868
13869             Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
13870             {
13871                 Debug = "_OST is invoked"
13872             }
13873         }
13874     }
13875
13876     Name (PICM, Zero)
13877     Device (MDM)
13878     {
13879         Name (_HID, EisaId ("MCD0001"))  // _HID: Hardware ID
13880         Name (_CID, "MCD0001")  // _CID: Compatible ID
13881         Name (CPU, "ValleyView2")
13882         Name (MDMN, "XMM_6260")
13883         Method (_STA, 0, NotSerialized)  // _STA: Status
13884         {
13885             If ((OSSL & 0x80))
13886             {
13887                 Return (0x0F)
13888             }
13889
13890             Return (Zero)
13891         }
13892
13893         Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
13894         {
13895             Name (UBUF, ResourceTemplate ()
13896             {
13897                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13898                     "\\_SB.GPO1", 0x00, ResourceConsumer, ,
13899                     )
13900                     {   // Pin list
13901                         0x0017
13902                     }
13903                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
13904                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13905                     )
13906                     {   // Pin list
13907                         0x001E
13908                     }
13909                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
13910                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13911                     )
13912                     {   // Pin list
13913                         0x001C
13914                     }
13915                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13916                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13917                     )
13918                     {   // Pin list
13919                         0x001D
13920                     }
13921             })
13922             Return (UBUF) /* \MDM_._CRS.UBUF */
13923         }
13924     }
13925
13926     Scope (_SB.I2C1)
13927     {
13928         Name (AVBL, Zero)
13929         Method (_REG, 2, NotSerialized)  // _REG: Region Availability
13930         {
13931             If ((Arg0 == 0x09))
13932             {
13933                 AVBL = Arg1
13934             }
13935         }
13936
13937         Device (SMUX)
13938         {
13939             Name (_HID, "SMSC3750" /* SMSC 3750 USB MUX */)  // _HID: Hardware ID
13940             Name (_CID, "SMSC3750" /* SMSC 3750 USB MUX */)  // _CID: Compatible ID
13941             Name (_DDN, "SMSC 3750 USB MUX")  // _DDN: DOS Device Name
13942             Method (_STA, 0, NotSerialized)  // _STA: Status
13943             {
13944                 If ((OSSL & 0x80))
13945                 {
13946                     Return (0x0F)
13947                 }
13948
13949                 Return (Zero)
13950             }
13951
13952             Name (RBUF, ResourceTemplate ()
13953             {
13954                 I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80,
13955                     AddressingMode7Bit, "\\_SB.I2C1",
13956                     0x00, ResourceConsumer, ,
13957                     )
13958                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13959                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
13960                     )
13961                     {   // Pin list
13962                         0x0001
13963                     }
13964             })
13965             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
13966             {
13967                 Return (RBUF) /* \_SB_.I2C1.SMUX.RBUF */
13968             }
13969         }
13970
13971         Name (MUXW, ResourceTemplate ()
13972         {
13973             I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80,
13974                 AddressingMode7Bit, "\\_SB.I2C1",
13975                 0x00, ResourceConsumer, ,
13976                 )
13977         })
13978         OperationRegion (MUXO, GenericSerialBus, Zero, 0x10)
13979         Field (MUXO, BufferAcc, NoLock, Preserve)
13980         {
13981             Connection (MUXW), 
13982             AccessAs (BufferAcc, AttribByte), 
13983             MSTA,   8
13984         }
13985
13986         Field (MUXO, BufferAcc, NoLock, Preserve)
13987         {
13988             Connection (MUXW), 
13989             Offset (0x01), 
13990             AccessAs (BufferAcc, AttribByte), 
13991             MCON,   8
13992         }
13993
13994         Field (MUXO, BufferAcc, NoLock, Preserve)
13995         {
13996             Connection (MUXW), 
13997             Offset (0x02), 
13998             AccessAs (BufferAcc, AttribByte), 
13999             MCHG,   8
14000         }
14001
14002         Field (MUXO, BufferAcc, NoLock, Preserve)
14003         {
14004             Connection (MUXW), 
14005             Offset (0x03), 
14006             AccessAs (BufferAcc, AttribByte), 
14007             MCST,   8
14008         }
14009
14010         Device (GPOE)
14011         {
14012             Name (_HID, "INBC0000" /* GPIO Expander */)  // _HID: Hardware ID
14013             Name (_CID, "INBC0000" /* GPIO Expander */)  // _CID: Compatible ID
14014             Name (_DDN, "GPIO Expander")  // _DDN: DOS Device Name
14015             Method (_STA, 0, NotSerialized)  // _STA: Status
14016             {
14017                 If ((OSSL & 0x80))
14018                 {
14019                     Return (0x0F)
14020                 }
14021
14022                 Return (Zero)
14023             }
14024
14025             Name (RBUF, ResourceTemplate ()
14026             {
14027                 I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80,
14028                     AddressingMode7Bit, "\\_SB.I2C1",
14029                     0x00, ResourceConsumer, ,
14030                     )
14031             })
14032             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14033             {
14034                 Return (RBUF) /* \_SB_.I2C1.GPOE.RBUF */
14035             }
14036         }
14037
14038         Name (IOEX, ResourceTemplate ()
14039         {
14040             I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80,
14041                 AddressingMode7Bit, "\\_SB.I2C1",
14042                 0x00, ResourceConsumer, ,
14043                 )
14044         })
14045         OperationRegion (IOXO, GenericSerialBus, Zero, 0x20)
14046         Field (IOXO, BufferAcc, NoLock, Preserve)
14047         {
14048             Connection (IOEX), 
14049             Offset (0x01), 
14050             AccessAs (BufferAcc, AttribByte), 
14051             INR1,   8
14052         }
14053
14054         Field (IOXO, BufferAcc, NoLock, Preserve)
14055         {
14056             Connection (IOEX), 
14057             Offset (0x05), 
14058             AccessAs (BufferAcc, AttribByte), 
14059             OUTR,   8
14060         }
14061
14062         Field (IOXO, BufferAcc, NoLock, Preserve)
14063         {
14064             Connection (IOEX), 
14065             Offset (0x0D), 
14066             AccessAs (BufferAcc, AttribByte), 
14067             CONR,   8
14068         }
14069     }
14070
14071     Scope (_TZ)
14072     {
14073         ThermalZone (TZ00)
14074         {
14075             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14076             {
14077                 \_SB.I2C5, 
14078                 \_SB.I2C5.PMIC
14079             })
14080             Method (_TMP, 0, Serialized)  // _TMP: Temperature
14081             {
14082                 If ((\_SB.I2C5.PMIC.AVBG == One))
14083                 {
14084                     \_SB.I2C5.PMIC.GMP2 = Zero
14085                     If ((\_SB.I2C5.PMIC.AVBD == One))
14086                     {
14087                         Return (\_SB.I2C5.PMIC.TMP2)
14088                     }
14089                 }
14090
14091                 Return (0x0AAC)
14092             }
14093         }
14094     }
14095
14096     Scope (_SB.PCI0)
14097     {
14098         Device (PDRC)
14099         {
14100             Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
14101             Name (_UID, One)  // _UID: Unique ID
14102             Name (BUF0, ResourceTemplate ()
14103             {
14104                 Memory32Fixed (ReadWrite,
14105                     0xE0000000,         // Address Base
14106                     0x10000000,         // Address Length
14107                     )
14108                 Memory32Fixed (ReadWrite,
14109                     0xFED01000,         // Address Base
14110                     0x00001000,         // Address Length
14111                     )
14112                 Memory32Fixed (ReadWrite,
14113                     0xFED03000,         // Address Base
14114                     0x00001000,         // Address Length
14115                     )
14116                 Memory32Fixed (ReadWrite,
14117                     0xFED04000,         // Address Base
14118                     0x00001000,         // Address Length
14119                     )
14120                 Memory32Fixed (ReadWrite,
14121                     0xFED0C000,         // Address Base
14122                     0x00004000,         // Address Length
14123                     )
14124                 Memory32Fixed (ReadWrite,
14125                     0xFED08000,         // Address Base
14126                     0x00001000,         // Address Length
14127                     )
14128                 Memory32Fixed (ReadWrite,
14129                     0xFED1C000,         // Address Base
14130                     0x00001000,         // Address Length
14131                     )
14132                 Memory32Fixed (ReadOnly,
14133                     0xFEE00000,         // Address Base
14134                     0x00100000,         // Address Length
14135                     )
14136                 Memory32Fixed (ReadWrite,
14137                     0xFEF00000,         // Address Base
14138                     0x00100000,         // Address Length
14139                     )
14140             })
14141         }
14142     }
14143
14144     Method (BRTN, 1, Serialized)
14145     {
14146         If (((DID1 & 0x0F00) == 0x0400))
14147         {
14148             Notify (\_SB.PCI0.GFX0.DD01, Arg0)
14149         }
14150
14151         If (((DID2 & 0x0F00) == 0x0400))
14152         {
14153             Notify (\_SB.PCI0.GFX0.DD02, Arg0)
14154         }
14155
14156         If (((DID3 & 0x0F00) == 0x0400))
14157         {
14158             Notify (\_SB.PCI0.GFX0.DD03, Arg0)
14159         }
14160
14161         If (((DID4 & 0x0F00) == 0x0400))
14162         {
14163             Notify (\_SB.PCI0.GFX0.DD04, Arg0)
14164         }
14165
14166         If (((DID5 & 0x0F00) == 0x0400))
14167         {
14168             Notify (\_SB.PCI0.GFX0.DD05, Arg0)
14169         }
14170
14171         If (CondRefOf (NDN3))
14172         {
14173             NDN3 (Arg0)
14174         }
14175     }
14176
14177     Scope (_SB.I2C1)
14178     {
14179         Device (SMFG)
14180         {
14181             Name (_HID, "MAX17047" /* Fuel Gauge Controller */)  // _HID: Hardware ID
14182             Name (_CID, "MAX17047" /* Fuel Gauge Controller */)  // _CID: Compatible ID
14183             Name (_DDN, "Fuel Gauge Controller")  // _DDN: DOS Device Name
14184             Name (RBUF, ResourceTemplate ()
14185             {
14186                 I2cSerialBus (0x0036, ControllerInitiated, 0x000186A0,
14187                     AddressingMode7Bit, "\\_SB.I2C1",
14188                     0x00, ResourceConsumer, ,
14189                     )
14190                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14191                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14192                     )
14193                     {   // Pin list
14194                         0x0012
14195                     }
14196             })
14197             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14198             {
14199                 Return (RBUF) /* \_SB_.I2C1.SMFG.RBUF */
14200             }
14201
14202             Method (_STA, 0, NotSerialized)  // _STA: Status
14203             {
14204                 If (((BDID == 0x06) && (OSSL & 0x80)))
14205                 {
14206                     Return (0x0F)
14207                 }
14208
14209                 Return (Zero)
14210             }
14211         }
14212
14213         Device (SMCG)
14214         {
14215             Name (_HID, "SMB0349" /* Charger */)  // _HID: Hardware ID
14216             Name (_CID, "SMB0349" /* Charger */)  // _CID: Compatible ID
14217             Name (_DDN, "Charger")  // _DDN: DOS Device Name
14218             Name (RBUF, ResourceTemplate ()
14219             {
14220                 I2cSerialBus (0x0035, ControllerInitiated, 0x000186A0,
14221                     AddressingMode7Bit, "\\_SB.I2C1",
14222                     0x00, ResourceConsumer, ,
14223                     )
14224                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14225                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14226                     )
14227                     {   // Pin list
14228                         0x0002
14229                     }
14230             })
14231             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14232             {
14233                 Return (RBUF) /* \_SB_.I2C1.SMCG.RBUF */
14234             }
14235
14236             Method (_STA, 0, NotSerialized)  // _STA: Status
14237             {
14238                 If (((BDID == 0x06) && (OSSL & 0x80)))
14239                 {
14240                     Return (0x0F)
14241                 }
14242
14243                 Return (Zero)
14244             }
14245         }
14246
14247         Device (TBCG)
14248         {
14249             Name (_HID, "TBQ24296" /* Charger */)  // _HID: Hardware ID
14250             Name (_CID, "TBQ24296" /* Charger */)  // _CID: Compatible ID
14251             Name (_DDN, "Charger")  // _DDN: DOS Device Name
14252             Name (RBUF, ResourceTemplate ()
14253             {
14254                 I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80,
14255                     AddressingMode7Bit, "\\_SB.I2C1",
14256                     0x00, ResourceConsumer, ,
14257                     )
14258                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14259                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14260                     )
14261                     {   // Pin list
14262                         0x0002
14263                     }
14264             })
14265             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14266             {
14267                 Return (RBUF) /* \_SB_.I2C1.TBCG.RBUF */
14268             }
14269
14270             Method (_STA, 0, NotSerialized)  // _STA: Status
14271             {
14272                 If (((BDID == 0x06) && (OSSL & 0x80)))
14273                 {
14274                     Return (0x0F)
14275                 }
14276
14277                 Return (Zero)
14278             }
14279         }
14280     }
14281
14282     Scope (_SB.I2C1)
14283     {
14284         Name (MXFG, ResourceTemplate ()
14285         {
14286             I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
14287                 AddressingMode7Bit, "\\_SB.I2C1",
14288                 0x00, ResourceConsumer, ,
14289                 )
14290         })
14291         OperationRegion (DVFG, GenericSerialBus, Zero, 0x0100)
14292         Field (DVFG, BufferAcc, NoLock, Preserve)
14293         {
14294             Connection (MXFG), 
14295             Offset (0x05), 
14296             AccessAs (BufferAcc, AttribBytes (0x02)), 
14297             FG05,   8
14298         }
14299
14300         Field (DVFG, BufferAcc, NoLock, Preserve)
14301         {
14302             Connection (MXFG), 
14303             Offset (0x10), 
14304             AccessAs (BufferAcc, AttribBytes (0x02)), 
14305             FG10,   8
14306         }
14307
14308         Field (DVFG, BufferAcc, NoLock, Preserve)
14309         {
14310             Connection (MXFG), 
14311             Offset (0x17), 
14312             AccessAs (BufferAcc, AttribBytes (0x02)), 
14313             FG17,   8
14314         }
14315
14316         Field (DVFG, BufferAcc, NoLock, Preserve)
14317         {
14318             Connection (MXFG), 
14319             Offset (0x18), 
14320             AccessAs (BufferAcc, AttribBytes (0x02)), 
14321             FG18,   8
14322         }
14323
14324         Field (DVFG, BufferAcc, NoLock, Preserve)
14325         {
14326             Connection (MXFG), 
14327             Offset (0x09), 
14328             AccessAs (BufferAcc, AttribBytes (0x02)), 
14329             FG09,   8
14330         }
14331
14332         Field (DVFG, BufferAcc, NoLock, Preserve)
14333         {
14334             Connection (MXFG), 
14335             Offset (0x0A), 
14336             AccessAs (BufferAcc, AttribBytes (0x02)), 
14337             FG0A,   8
14338         }
14339
14340         Field (DVFG, BufferAcc, NoLock, Preserve)
14341         {
14342             Connection (MXFG), 
14343             Offset (0x11), 
14344             AccessAs (BufferAcc, AttribBytes (0x02)), 
14345             FG11,   8
14346         }
14347
14348         Field (DVFG, BufferAcc, NoLock, Preserve)
14349         {
14350             Connection (MXFG), 
14351             AccessAs (BufferAcc, AttribBytes (0x02)), 
14352             FG00,   8
14353         }
14354
14355         Field (DVFG, BufferAcc, NoLock, Preserve)
14356         {
14357             Connection (MXFG), 
14358             Offset (0x03), 
14359             AccessAs (BufferAcc, AttribBytes (0x02)), 
14360             FG03,   8
14361         }
14362
14363         Field (DVFG, BufferAcc, NoLock, Preserve)
14364         {
14365             Connection (MXFG), 
14366             Offset (0x1D), 
14367             AccessAs (BufferAcc, AttribBytes (0x02)), 
14368             FG1D,   8
14369         }
14370
14371         Field (DVFG, BufferAcc, NoLock, Preserve)
14372         {
14373             Connection (MXFG), 
14374             Offset (0x2B), 
14375             AccessAs (BufferAcc, AttribBytes (0x02)), 
14376             FG2B,   8
14377         }
14378
14379         Field (DVFG, BufferAcc, NoLock, Preserve)
14380         {
14381             Connection (MXFG), 
14382             Offset (0x08), 
14383             AccessAs (BufferAcc, AttribBytes (0x02)), 
14384             THRM,   8
14385         }
14386
14387         Field (DVFG, BufferAcc, NoLock, Preserve)
14388         {
14389             Connection (MXFG), 
14390             Offset (0x06), 
14391             AccessAs (BufferAcc, AttribBytes (0x02)), 
14392             SOCR,   8
14393         }
14394
14395         Field (DVFG, BufferAcc, NoLock, Preserve)
14396         {
14397             Connection (MXFG), 
14398             Offset (0x1C), 
14399             AccessAs (BufferAcc, AttribBytes (0x02)), 
14400             MXCU,   8
14401         }
14402
14403         Name (SMBC, ResourceTemplate ()
14404         {
14405             I2cSerialBus (0x0035, ControllerInitiated, 0x00061A80,
14406                 AddressingMode7Bit, "\\_SB.I2C1",
14407                 0x00, ResourceConsumer, ,
14408                 )
14409         })
14410         OperationRegion (DVBC, GenericSerialBus, Zero, 0x0100)
14411         Field (DVBC, BufferAcc, NoLock, Preserve)
14412         {
14413             Connection (SMBC), 
14414             AccessAs (BufferAcc, AttribByte), 
14415             BC00,   8, 
14416             BC01,   8, 
14417             BC02,   8, 
14418             BC03,   8, 
14419             BC04,   8, 
14420             BC05,   8, 
14421             BC06,   8, 
14422             BC07,   8, 
14423             BC08,   8, 
14424             BC09,   8, 
14425             BC0A,   8, 
14426             BC0B,   8, 
14427             BC0C,   8, 
14428             BC0D,   8, 
14429             BC0E,   8, 
14430             BC0F,   8, 
14431             BC10,   8
14432         }
14433
14434         Field (DVBC, BufferAcc, NoLock, Preserve)
14435         {
14436             Connection (SMBC), 
14437             Offset (0x3D), 
14438             AccessAs (BufferAcc, AttribByte), 
14439             BC3D,   8
14440         }
14441
14442         Field (DVBC, BufferAcc, NoLock, Preserve)
14443         {
14444             Connection (SMBC), 
14445             Offset (0x30), 
14446             AccessAs (BufferAcc, AttribByte), 
14447             BC30,   8
14448         }
14449
14450         Field (DVBC, BufferAcc, NoLock, Preserve)
14451         {
14452             Connection (SMBC), 
14453             Offset (0x3E), 
14454             AccessAs (BufferAcc, AttribByte), 
14455             BC3E,   8
14456         }
14457
14458         Field (DVBC, BufferAcc, NoLock, Preserve)
14459         {
14460             Connection (SMBC), 
14461             Offset (0x35), 
14462             AccessAs (BufferAcc, AttribBytes (0x06)), 
14463             BC35,   8
14464         }
14465
14466         Name (BQBC, ResourceTemplate ()
14467         {
14468             I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80,
14469                 AddressingMode7Bit, "\\_SB.I2C1",
14470                 0x00, ResourceConsumer, ,
14471                 )
14472         })
14473         OperationRegion (DVBQ, GenericSerialBus, Zero, 0x20)
14474         Field (DVBQ, BufferAcc, NoLock, Preserve)
14475         {
14476             Connection (BQBC), 
14477             AccessAs (BufferAcc, AttribByte), 
14478             BQ00,   8, 
14479             BQ01,   8, 
14480             BQ02,   8, 
14481             BQ03,   8, 
14482             BQ04,   8, 
14483             BQ05,   8, 
14484             BQ06,   8, 
14485             BQ07,   8, 
14486             BQ08,   8, 
14487             BQ09,   8, 
14488             BQ0A,   8
14489         }
14490
14491         Device (BATC)
14492         {
14493             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
14494             Name (_UID, One)  // _UID: Unique ID
14495             Name (FGDV, 0x0A)
14496             Name (BCCC, 0x60)
14497             Name (BCCE, One)
14498             Name (BCCL, 0xFFFFFFFF)
14499             Name (BCLP, 0x1004)
14500             Name (DSCP, 0x132A)
14501             Name (DSVO, 0x0ED8)
14502             Name (RECT, 0x1004)
14503             Name (BTPC, Zero)
14504             Name (AVCU, Zero)
14505             Name (ACMD, 0xFF)
14506             Name (_DEP, Package (0x03)  // _DEP: Dependencies
14507             {
14508                 I2C1, 
14509                 GPO2, 
14510                 GPO0
14511             })
14512             Name (BUFF, Buffer (0x03)
14513             {
14514                  0x00, 0x01, 0x00                                 /* ... */
14515             })
14516             CreateByteField (BUFF, Zero, BYAT)
14517             CreateByteField (BUFF, 0x02, DATA)
14518             Name (BUF1, Buffer (0x06)
14519             {
14520                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
14521             })
14522             CreateByteField (BUF1, Zero, BSTA)
14523             CreateByteField (BUF1, One, BLEN)
14524             CreateDWordField (BUF1, 0x02, DAT1)
14525             Name (BUF2, Buffer (0x04)
14526             {
14527                  0x00, 0x00, 0x00, 0x00                           /* .... */
14528             })
14529             CreateByteField (BUF2, Zero, BSTS)
14530             CreateByteField (BUF2, One, SLEN)
14531             CreateWordField (BUF2, 0x02, WRD1)
14532             Name (INBU, Buffer (0x08)
14533             {
14534                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
14535             })
14536             CreateByteField (INBU, Zero, INST)
14537             CreateByteField (INBU, One, INLN)
14538             CreateByteField (INBU, 0x02, INT0)
14539             CreateByteField (INBU, 0x03, INT1)
14540             CreateByteField (INBU, 0x04, INT2)
14541             CreateByteField (INBU, 0x05, INT3)
14542             CreateByteField (INBU, 0x06, INT4)
14543             CreateByteField (INBU, 0x07, INT5)
14544             Method (CLIM, 0, NotSerialized)
14545             {
14546                 BUFF = MSTA /* \_SB_.I2C1.MSTA */
14547                 Local1 = 0x02
14548                 Sleep (0x64)
14549                 ADBG ("CLIM")
14550                 ADBG (DATA)
14551                 If ((DATA & 0x10))
14552                 {
14553                     If ((DATA & 0xE0))
14554                     {
14555                         Local0 = (DATA & 0xE0)
14556                         If (((Local0 == 0xA0) || (Local0 == 0x60)))
14557                         {
14558                             ADBG ("CLIM----1")
14559                             Local1 = 0x02
14560                         }
14561
14562                         If (((Local0 == 0x40) || (Local0 == 0x20)))
14563                         {
14564                             ADBG ("CLIM----2")
14565                             Local1 = 0x07
14566                         }
14567
14568                         If ((Local0 == 0x80))
14569                         {
14570                             ADBG ("CLIM----3")
14571                             Local1 = Zero
14572                         }
14573                     }
14574                 }
14575
14576                 Return (Local1)
14577             }
14578
14579             Name (BIXP, Package (0x14)
14580             {
14581                 Zero, 
14582                 One, 
14583                 0xFFFFFFFF, 
14584                 0xFFFFFFFF, 
14585                 One, 
14586                 0xFFFFFFFF, 
14587                 0x0A, 
14588                 0x04, 
14589                 Zero, 
14590                 0x00017318, 
14591                 0xFFFFFFFF, 
14592                 0xFFFFFFFF, 
14593                 0x88B8, 
14594                 0x61A8, 
14595                 One, 
14596                 One, 
14597                 "SR Real Battery", 
14598                 "123456789", 
14599                 "LION", 
14600                 "Intel SR 1"
14601             })
14602             Name (BSTP, Package (0x04)
14603             {
14604                 Zero, 
14605                 0xFFFFFFFF, 
14606                 0xFFFFFFFF, 
14607                 0xFFFFFFFF
14608             })
14609             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
14610             {
14611                 ADBG ("BIX")
14612                 If ((AVBL == One))
14613                 {
14614                     BUF2 = FG10 /* \_SB_.I2C1.FG10 */
14615                     If ((BSTS != One))
14616                     {
14617                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14618                         Local2 = (Local1 * 0x05)
14619                         Divide (Local2, FGDV, Local0, Local1)
14620                         Index (BIXP, 0x03) = Local1
14621                     }
14622
14623                     BUF2 = FG17 /* \_SB_.I2C1.FG17 */
14624                     If ((BSTS != One))
14625                     {
14626                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14627                         Divide (Local1, 0x64, Local0, Local2)
14628                         Index (BIXP, 0x08) = Local2
14629                     }
14630                 }
14631
14632                 Index (BIXP, 0x02) = DSCP /* \_SB_.I2C1.BATC.DSCP */
14633                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C1.BATC.DSVO */
14634                 Divide (DSCP, 0x0A, Local0, Local1)
14635                 Index (BIXP, 0x06) = Local1
14636                 Divide (DSCP, 0x14, Local0, Local1)
14637                 Index (BIXP, 0x07) = Local1
14638                 If ((ACMD == 0xFF))
14639                 {
14640                     BUFF = INR1 /* \_SB_.I2C1.INR1 */
14641                     If (((DATA & 0x20) == 0x20))
14642                     {
14643                         ACMD = One
14644                         ADBG ("AC Mode")
14645                     }
14646                     Else
14647                     {
14648                         ACMD = Zero
14649                         ADBG ("Non-AC Mode")
14650                     }
14651                 }
14652
14653                 Return (BIXP) /* \_SB_.I2C1.BATC.BIXP */
14654             }
14655
14656             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
14657             {
14658                 If ((AVBL == One))
14659                 {
14660                     ADBG ("BST")
14661                     BUFF = BQ09 /* \_SB_.I2C1.BQ09 */
14662                     Local0 = (DATA & 0x80)
14663                     If ((Local0 == 0x80))
14664                     {
14665                         BUFF = BQ05 /* \_SB_.I2C1.BQ05 */
14666                         Local0 = (DATA & 0xCF)
14667                         DATA = Local0
14668                         BQ05 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14669                     }
14670
14671                     BUF2 = FG00 /* \_SB_.I2C1.FG00 */
14672                     If ((BSTS != One))
14673                     {
14674                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14675                     }
14676
14677                     ADBG (Local1)
14678                     If ((Local1 != Zero))
14679                     {
14680                         Local0 = (WRD1 & 0x02)
14681                         WRD1 = Local0
14682                         FG00 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
14683                     }
14684
14685                     BUFF = BQ00 /* \_SB_.I2C1.BQ00 */
14686                     Local0 = (DATA & 0x80)
14687                     If ((Local0 == 0x80))
14688                     {
14689                         Local0 = (DATA & 0x7F)
14690                         DATA = Local0
14691                         BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14692                         BUFF = BQ07 /* \_SB_.I2C1.BQ07 */
14693                         Local0 = (DATA | 0x80)
14694                         DATA = Local0
14695                         BQ07 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14696                     }
14697
14698                     BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
14699                     If ((BYAT != One))
14700                     {
14701                         Local0 = (DATA >> 0x04)
14702                         Local0 &= 0x03
14703                         If (((Local0 == One) || (Local0 == 0x02)))
14704                         {
14705                             Local1 = 0x02
14706                         }
14707
14708                         If ((Local0 == Zero))
14709                         {
14710                             Local1 = One
14711                         }
14712
14713                         If ((Local0 == 0x03))
14714                         {
14715                             Local1 = Zero
14716                         }
14717
14718                         Index (BSTP, Zero) = Local1
14719                     }
14720
14721                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
14722                     If ((BSTS != One))
14723                     {
14724                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14725                         If ((Local1 & 0x8000))
14726                         {
14727                             Local1 -= 0xFFFF
14728                         }
14729
14730                         Divide (Local1, FGDV, Local0, Local2)
14731                         Local1 = (Local2 * 0x9C)
14732                         Divide (Local1, 0x64, Local0, Local2)
14733                         Index (BSTP, One) = Local2
14734                     }
14735
14736                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
14737                     If ((BSTS != One))
14738                     {
14739                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14740                         Local2 = (Local1 * 0x05)
14741                         Divide (Local2, FGDV, Local0, Local1)
14742                         Index (BSTP, 0x02) = Local1
14743                     }
14744
14745                     BUF2 = FG09 /* \_SB_.I2C1.FG09 */
14746                     If ((BSTS != One))
14747                     {
14748                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14749                         Local2 = (Local1 >> 0x03)
14750                         Local1 = (Local2 * 0x0271)
14751                         Divide (Local1, 0x03E8, Local0, Local2)
14752                         Index (BSTP, 0x03) = Local2
14753                     }
14754
14755                     BUFF = BQ01 /* \_SB_.I2C1.BQ01 */
14756                     If ((BYAT != One))
14757                     {
14758                         If ((BCCE == One))
14759                         {
14760                             DATA |= 0x10
14761                             BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14762                         }
14763                         Else
14764                         {
14765                             DATA &= 0xEF
14766                             BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14767                         }
14768
14769                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
14770                         ADBG ("Charger enable")
14771                         ADBG (Local0)
14772                     }
14773
14774                     BUFF = BQ02 /* \_SB_.I2C1.BQ02 */
14775                     If ((BYAT != One))
14776                     {
14777                         Local1 = BCCC /* \_SB_.I2C1.BATC.BCCC */
14778                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
14779                         Local2 = (Local0 & 0xFC)
14780                         If ((Local2 != Local1))
14781                         {
14782                             ADBG ("UPD CU From")
14783                             ADBG (DATA)
14784                             Local2 = (DATA & 0x03)
14785                             DATA = (Local2 | Local1)
14786                             BQ02 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14787                         }
14788
14789                         Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
14790                         ADBG ("Fast Current")
14791                         ADBG (Local1)
14792                     }
14793
14794                     If ((ACMD != One))
14795                     {
14796                         Local3 = CLIM ()
14797                         ADBG (Local3)
14798                         BUFF = BQ00 /* \_SB_.I2C1.BQ00 */
14799                         If ((BYAT != One))
14800                         {
14801                             Local2 = (DATA & 0x07)
14802                             If ((Local2 != Local3))
14803                             {
14804                                 Local2 = (DATA & 0xF8)
14805                                 DATA = (Local2 | Local3)
14806                                 BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */
14807                             }
14808                         }
14809
14810                         Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
14811                         ADBG ("Input Current")
14812                         ADBG (Local1)
14813                     }
14814                 }
14815
14816                 Return (BSTP) /* \_SB_.I2C1.BATC.BSTP */
14817             }
14818
14819             Method (INTC, 0, NotSerialized)
14820             {
14821                 BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
14822                 If ((BYAT != One))
14823                 {
14824                     Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
14825                 }
14826
14827                 Return (Local1)
14828             }
14829
14830             Method (INTF, 0, NotSerialized)
14831             {
14832                 ADBG ("INTF")
14833                 BUF2 = FG00 /* \_SB_.I2C1.FG00 */
14834                 If ((BSTS != One))
14835                 {
14836                     Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14837                 }
14838
14839                 Return (Local1)
14840             }
14841
14842             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
14843             {
14844                 BTPC = Arg0
14845                 ADBG ("BTP")
14846                 ADBG (Arg0)
14847                 If ((AVBL == One))
14848                 {
14849                     DAT1 = Arg0
14850                     BLEN = 0x04
14851                     BUF2 = FG2B /* \_SB_.I2C1.FG2B */
14852                     If ((BSTS != One))
14853                     {
14854                         Local1 = (WRD1 & 0xFFFC)
14855                         WRD1 = Local1
14856                         FG2B = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
14857                     }
14858
14859                     BUF2 = FG1D /* \_SB_.I2C1.FG1D */
14860                     If ((BSTS != One))
14861                     {
14862                         Local1 = (WRD1 & 0xFFFB)
14863                         Local2 = (Local1 | 0x4004)
14864                         WRD1 = Local2
14865                         FG1D = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
14866                     }
14867
14868                     BUF2 = SOCR /* \_SB_.I2C1.SOCR */
14869                     If ((BSTS != One))
14870                     {
14871                         Local0 = (WRD1 >> 0x08)
14872                         Local1 = (Local0 & 0xFF)
14873                     }
14874
14875                     Local2 = (Local1 + One)
14876                     Local3 = (Local1 - One)
14877                     Local1 = (Local2 << 0x08)
14878                     Local2 = (Local1 | Local3)
14879                     WRD1 = Local2
14880                     FG03 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
14881                 }
14882             }
14883
14884             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
14885             {
14886                 ADBG ("BTM")
14887                 If ((Arg0 > 0x7530))
14888                 {
14889                     Return (Zero)
14890                 }
14891
14892                 If ((AVBL == One))
14893                 {
14894                     BUF2 = FG11 /* \_SB_.I2C1.FG11 */
14895                     If ((BSTS != One))
14896                     {
14897                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14898                         If ((Arg0 == Zero))
14899                         {
14900                             Local2 = (Local1 >> 0x05)
14901                             Local1 = (Local2 * 0x03)
14902                             Local2 = (Local1 * 0x3C)
14903                             Return (Local2)
14904                         }
14905
14906                         BUF2 = FG05 /* \_SB_.I2C1.FG05 */
14907                         If ((BSTS != One))
14908                         {
14909                             Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14910                             Local2 = (Local1 * 0x05)
14911                             Divide (Local2, FGDV, Local0, Local1)
14912                             Local0 = (Local1 * 0x0E10)
14913                             Divide (Local0, Arg0, Local1, Local2)
14914                             Return (Local2)
14915                         }
14916                     }
14917                 }
14918
14919                 Return (0xFFFFFFFF)
14920             }
14921
14922             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
14923             {
14924                 ADBG ("BCT")
14925                 If (((Arg0 > 0x64) || (Arg0 < One)))
14926                 {
14927                     Return (Zero)
14928                 }
14929
14930                 If ((AVBL == One))
14931                 {
14932                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
14933                     Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14934                     If ((BSTS != One))
14935                     {
14936                         Local2 = (Local1 * 0x05)
14937                         Divide (Local2, FGDV, Local0, Local1)
14938                         RECT = Local1
14939                     }
14940
14941                     BUF2 = FG10 /* \_SB_.I2C1.FG10 */
14942                     If ((BSTS != One))
14943                     {
14944                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14945                         Local2 = (Local1 * 0x05)
14946                         Divide (Local2, FGDV, Local0, Local1)
14947                         BCLP = Local1
14948                     }
14949
14950                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
14951                     If ((BSTS != One))
14952                     {
14953                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
14954                         If ((Local1 & 0x8000))
14955                         {
14956                             Return (Zero)
14957                         }
14958                     }
14959
14960                     Local0 = (BCLP * Arg0)
14961                     Local0 -= RECT /* \_SB_.I2C1.BATC.RECT */
14962                     Local0 *= 0x0E10
14963                     Divide (Local0, Local1, Local2, Local3)
14964                     Return (Local3)
14965                 }
14966
14967                 Return (0xFFFFFFFF)
14968             }
14969
14970             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
14971             {
14972                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
14973                 {
14974                     If ((Arg2 == 0x02))
14975                     {
14976                         If ((Arg1 == Zero))
14977                         {
14978                             Return (Buffer (One)
14979                             {
14980                                  0x00                                             /* . */
14981                             })
14982                         }
14983                     }
14984                 }
14985
14986                 Return (Zero)
14987             }
14988
14989             Method (_STA, 0, NotSerialized)  // _STA: Status
14990             {
14991                 If ((PMID == 0x05))
14992                 {
14993                     Return (Zero)
14994                 }
14995
14996                 If ((PMID == 0x06))
14997                 {
14998                     Return (Zero)
14999                 }
15000
15001                 If ((AVBL == One))
15002                 {
15003                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
15004                     If ((BSTS != Zero))
15005                     {
15006                         Return (Zero)
15007                     }
15008                 }
15009
15010                 Return (0x1F)
15011             }
15012
15013             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15014             {
15015                 Return (_SB) /* \_SB_ */
15016             }
15017
15018             Method (PSOC, 0, NotSerialized)
15019             {
15020                 If ((AVBL == One))
15021                 {
15022                     BUF2 = SOCR /* \_SB_.I2C1.SOCR */
15023                     If ((BSTS != One))
15024                     {
15025                         Local0 = (WRD1 >> 0x08)
15026                         Local1 = (Local0 & 0xFF)
15027                     }
15028
15029                     Return (Local1)
15030                 }
15031
15032                 Return (Zero)
15033             }
15034
15035             Method (PMAX, 0, NotSerialized)
15036             {
15037                 If ((AVBL == One))
15038                 {
15039                     BUF2 = MXCU /* \_SB_.I2C1.MXCU */
15040                     If ((BSTS != One))
15041                     {
15042                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15043                         If ((Local1 & 0x8000))
15044                         {
15045                             Local0 = (Local1 >> 0x08)
15046                             Local1 = (Local0 & 0xFF)
15047                             Local0 = (0xFFFF - Local1)
15048                             Local1 = (Local0 * 0x04)
15049                         }
15050                         Else
15051                         {
15052                             Local0 = (Local1 >> 0x08)
15053                             Local2 = (Local0 & 0xFF)
15054                             Local1 = (Local2 * 0x04)
15055                         }
15056
15057                         Divide (Local1, 0x0A, Local0, Local2)
15058                         Divide (Local2, FGDV, Local0, Local1)
15059                         Local2 = (Local1 * 0x03E8)
15060                         Local1 = (DSVO * Local2)
15061                         Return (Local1)
15062                     }
15063                 }
15064
15065                 Return (Zero)
15066             }
15067
15068             Method (VMIN, 0, NotSerialized)
15069             {
15070                 Return (0x0DAC)
15071             }
15072
15073             Method (APWR, 0, NotSerialized)
15074             {
15075                 Return (0x0365C040)
15076             }
15077
15078             Method (NPWR, 0, NotSerialized)
15079             {
15080                 Local3 = APWR ()
15081                 If ((AVBL == One))
15082                 {
15083                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
15084                     If ((BSTS != One))
15085                     {
15086                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15087                         If ((Local1 & 0x8000))
15088                         {
15089                             Local1 -= 0xFFFF
15090                         }
15091
15092                         Divide (Local1, FGDV, Local0, Local2)
15093                         Local1 = (Local2 * 0x9C)
15094                         Divide (Local1, 0x64, Local0, Local2)
15095                         AVCU = Local2
15096                         BUF2 = FG09 /* \_SB_.I2C1.FG09 */
15097                         If ((BSTS != One))
15098                         {
15099                             Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15100                             Local2 = (Local1 >> 0x03)
15101                             Local1 = (Local2 * 0x0271)
15102                             Divide (Local1, 0x03E8, Local0, Local2)
15103                         }
15104
15105                         Local1 = (Local2 * AVCU) /* \_SB_.I2C1.BATC.AVCU */
15106                         Local0 = (Local3 - Local1)
15107                         Return (Local0)
15108                     }
15109                 }
15110
15111                 Return (Local0)
15112             }
15113
15114             Method (PSRC, 0, NotSerialized)
15115             {
15116                 If ((AVBL == One))
15117                 {
15118                     BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
15119                     If ((BYAT != One))
15120                     {
15121                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
15122                         Local0 = (DATA >> 0x06)
15123                         Local0 &= 0x03
15124                         Return (Local0)
15125                     }
15126                 }
15127
15128                 Return (One)
15129             }
15130
15131             Method (CTYP, 0, NotSerialized)
15132             {
15133                 Return (0x02)
15134             }
15135
15136             Method (ARTG, 0, NotSerialized)
15137             {
15138                 Return (0x0365C040)
15139             }
15140         }
15141     }
15142
15143     Scope (_SB)
15144     {
15145         Device (ADP1)
15146         {
15147             Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
15148             Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
15149             {
15150                 If ((^^GPO2.USID == Zero))
15151                 {
15152                     Return (Zero)
15153                 }
15154
15155                 If ((PMID == One))
15156                 {
15157                     If (CondRefOf (\_SB.I2C1.BATC, Local1))
15158                     {
15159                         Local0 = ^^I2C1.BATC.PSRC ()
15160                         If ((Local0 == Zero))
15161                         {
15162                             Return (Zero)
15163                         }
15164                         Else
15165                         {
15166                             Return (One)
15167                         }
15168                     }
15169
15170                     Return (One)
15171                 }
15172
15173                 If ((PMID == 0x05))
15174                 {
15175                     If (CondRefOf (\_SB.I2C5.BMBT, Local1))
15176                     {
15177                         Local0 = ^^I2C5.BMBT.PSRC ()
15178                         If ((Local0 == Zero))
15179                         {
15180                             Return (Zero)
15181                         }
15182                         Else
15183                         {
15184                             Return (One)
15185                         }
15186                     }
15187                 }
15188
15189                 If ((PMID == 0x06))
15190                 {
15191                     If (CondRefOf (\_SB.I2C5.TIBT, Local1))
15192                     {
15193                         Local0 = ^^I2C5.TIBT.PSRC ()
15194                         If ((Local0 == Zero))
15195                         {
15196                             Return (Zero)
15197                         }
15198                         Else
15199                         {
15200                             Return (One)
15201                         }
15202                     }
15203                 }
15204
15205                 Return (One)
15206             }
15207
15208             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15209             {
15210                 Return (_SB) /* \_SB_ */
15211             }
15212         }
15213     }
15214
15215     Scope (_SB.I2C5)
15216     {
15217         Device (BMDR)
15218         {
15219             Name (_HID, "INT33FE" /* XPOWER Battery Device */)  // _HID: Hardware ID
15220             Name (_CID, "INT33FE" /* XPOWER Battery Device */)  // _CID: Compatible ID
15221             Name (_DDN, "XPOWER Battery Device")  // _DDN: DOS Device Name
15222             Name (_DEP, Package (0x02)  // _DEP: Dependencies
15223             {
15224                 I2C5, 
15225                 PMI1
15226             })
15227             Name (RBUF, ResourceTemplate ()
15228             {
15229                 I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0,
15230                     AddressingMode7Bit, "\\_SB.I2C1",
15231                     0x00, ResourceConsumer, ,
15232                     )
15233                 GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000,
15234                     "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
15235                     )
15236                     {   // Pin list
15237                         0x0011
15238                     }
15239             })
15240             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
15241             {
15242                 Return (RBUF) /* \_SB_.I2C5.BMDR.RBUF */
15243             }
15244
15245             Method (_STA, 0, NotSerialized)  // _STA: Status
15246             {
15247                 If ((PMID == 0x05))
15248                 {
15249                     Return (0x0F)
15250                 }
15251
15252                 Return (Zero)
15253             }
15254
15255             OperationRegion (BMOP, 0x9E, Zero, 0x0100)
15256             Field (BMOP, DWordAcc, NoLock, Preserve)
15257             {
15258                 SOC,    32, 
15259                 FCCP,   32, 
15260                 CHST,   32, 
15261                 RMCP,   32, 
15262                 VOLT,   32, 
15263                 BATP,   32, 
15264                 SRP0,   32, 
15265                 STYP,   32, 
15266                 CHGC,   32, 
15267                 STPC,   32, 
15268                 GADC,   32, 
15269                 TTEM,   32, 
15270                 TTCH,   32, 
15271                 CYCL,   32, 
15272                 BTP,    32, 
15273                 DPCU,   32, 
15274                 DSCP,   32
15275             }
15276
15277             Name (AVBL, Zero)
15278             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
15279             {
15280                 If ((Arg0 == 0x9E))
15281                 {
15282                     AVBL = Arg1
15283                 }
15284             }
15285
15286             Name (CHTP, Zero)
15287             Method (SBTP, 0, Serialized)
15288             {
15289                 ADBG ("SBTP")
15290                 ADBG ("XP00")
15291                 Name (BMUX, Buffer (0x03)
15292                 {
15293                      0x00, 0x01, 0x00                                 /* ... */
15294                 })
15295                 CreateByteField (BMUX, Zero, BBBY)
15296                 CreateByteField (BMUX, 0x02, DDDT)
15297                 BMUX = XP00 /* \_SB_.I2C5.XP00 */
15298                 ADBG (BMUX)
15299                 If ((BBBY != One))
15300                 {
15301                     If ((DDDT && 0x20))
15302                     {
15303                         ADBG ("vbus on 2C")
15304                         BMUX = XP2C /* \_SB_.I2C5.XP2C */
15305                         If ((BBBY != One))
15306                         {
15307                             Local1 = 0x14
15308                             While (((DDDT && 0x04) && (Local1 != Zero)))
15309                             {
15310                                 Sleep (0x64)
15311                                 BMUX = XP2C /* \_SB_.I2C5.XP2C */
15312                                 DDDT &= 0x04
15313                                 Local1 -= One
15314                             }
15315
15316                             If ((Local1 == Zero))
15317                             {
15318                                 ADBG ("timeout")
15319                                 CHTP = Zero
15320                             }
15321                             Else
15322                             {
15323                                 ADBG ("Det ok")
15324                                 BMUX = XP2F /* \_SB_.I2C5.XP2F */
15325                                 Local0 = (DDDT >> 0x05)
15326                                 CHTP = Local0
15327                             }
15328                         }
15329                         Else
15330                         {
15331                             ADBG ("2C r Fail")
15332                             CHTP = Zero
15333                         }
15334                     }
15335                     Else
15336                     {
15337                         ADBG ("VBUS OFF")
15338                         CHTP = Zero
15339                     }
15340                 }
15341                 Else
15342                 {
15343                     ADBG ("00readFail")
15344                     CHTP = Zero
15345                 }
15346
15347                 ADBG (CHTP)
15348                 If (CondRefOf (\_SB.I2C5.BMBT, Local1))
15349                 {
15350                     Notify (ADP1, 0x80) // Status Change
15351                     Notify (BMBT, 0x80) // Status Change
15352                     Notify (BMBT, 0x81) // Information Change
15353                     If (CondRefOf (\_SB.DPTF, Local3))
15354                     {
15355                         Notify (DPTF, 0x86) // Device-Specific
15356                         Notify (TCHG, 0x80) // Status Change
15357                     }
15358
15359                     Notify (ADP1, 0x80) // Status Change
15360                     Return (One)
15361                 }
15362
15363                 Return (Zero)
15364             }
15365
15366             Method (PTYP, 0, NotSerialized)
15367             {
15368                 ADBG ("PTYP")
15369                 Local0 = (PMID | 0x80)
15370                 Return (Local0)
15371             }
15372         }
15373
15374         Device (TIDR)
15375         {
15376             Name (_HID, "INT33FE" /* XPOWER Battery Device */)  // _HID: Hardware ID
15377             Name (_CID, "INT33FE" /* XPOWER Battery Device */)  // _CID: Compatible ID
15378             Name (_DDN, "TI PMIC Battery Device")  // _DDN: DOS Device Name
15379             Name (_DEP, Package (0x02)  // _DEP: Dependencies
15380             {
15381                 I2C5, 
15382                 PMI2
15383             })
15384             Name (RBUF, ResourceTemplate ()
15385             {
15386                 I2cSerialBus (0x006B, ControllerInitiated, 0x000186A0,
15387                     AddressingMode7Bit, "\\_SB.I2C1",
15388                     0x00, ResourceConsumer, ,
15389                     )
15390                 I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0,
15391                     AddressingMode7Bit, "\\_SB.I2C1",
15392                     0x00, ResourceConsumer, ,
15393                     )
15394                 GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000,
15395                     "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
15396                     )
15397                     {   // Pin list
15398                         0x0011
15399                     }
15400             })
15401             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
15402             {
15403                 Return (RBUF) /* \_SB_.I2C5.TIDR.RBUF */
15404             }
15405
15406             Method (_STA, 0, NotSerialized)  // _STA: Status
15407             {
15408                 If ((PMID == 0x06))
15409                 {
15410                     Return (0x0F)
15411                 }
15412
15413                 Return (Zero)
15414             }
15415
15416             OperationRegion (BMOP, 0x9E, Zero, 0x0100)
15417             Field (BMOP, DWordAcc, NoLock, Preserve)
15418             {
15419                 SOC,    32, 
15420                 FCCP,   32, 
15421                 CHST,   32, 
15422                 RMCP,   32, 
15423                 VOLT,   32, 
15424                 BATP,   32, 
15425                 SRP0,   32, 
15426                 STYP,   32, 
15427                 CHGC,   32, 
15428                 STPC,   32, 
15429                 GADC,   32, 
15430                 TTEM,   32, 
15431                 TTCH,   32, 
15432                 CYCL,   32, 
15433                 BTP,    32, 
15434                 DPCU,   32, 
15435                 DSCP,   32
15436             }
15437
15438             Name (AVBL, Zero)
15439             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
15440             {
15441                 If ((Arg0 == 0x9E))
15442                 {
15443                     AVBL = Arg1
15444                 }
15445             }
15446
15447             Method (SBTP, 0, NotSerialized)
15448             {
15449                 ADBG ("SBTP")
15450                 If (CondRefOf (\_SB.I2C5.TIBT, Local1))
15451                 {
15452                     Notify (ADP1, 0x80) // Status Change
15453                     Notify (TIBT, 0x80) // Status Change
15454                     Notify (TIBT, 0x81) // Information Change
15455                     If (CondRefOf (\_SB.DPTF, Local3))
15456                     {
15457                         Notify (DPTF, 0x86) // Device-Specific
15458                         Notify (TCHG, 0x80) // Status Change
15459                     }
15460
15461                     Return (One)
15462                 }
15463
15464                 Return (Zero)
15465             }
15466
15467             Method (PTYP, 0, NotSerialized)
15468             {
15469                 ADBG ("PTYP")
15470                 Local0 = (PMID | 0x80)
15471                 Return (Local0)
15472             }
15473         }
15474
15475         Device (BMBT)
15476         {
15477             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
15478             Name (_UID, One)  // _UID: Unique ID
15479             Name (BCCE, One)
15480             Name (OTGS, Zero)
15481             Name (CHPR, One)
15482             Name (FGDV, 0x0A)
15483             Name (BCCC, 0x07)
15484             Name (BCIL, 0x65)
15485             Name (BCVF, 0x93)
15486             Name (BCFV, 0xED)
15487             Name (BCCH, 0x38)
15488             Name (BCST, 0x05)
15489             Name (BCPE, 0x74)
15490             Name (BCCL, 0xFFFFFFFF)
15491             Name (BCLP, 0x1004)
15492             Name (DSCP, 0x1300)
15493             Name (DSVO, 0x0EA6)
15494             Name (BTPC, Zero)
15495             Name (AVCU, Zero)
15496             Name (_DEP, Package (0x01)  // _DEP: Dependencies
15497             {
15498                 I2C5
15499             })
15500             Name (BUFF, Buffer (0x03)
15501             {
15502                  0x00, 0x01, 0x00                                 /* ... */
15503             })
15504             CreateByteField (BUFF, Zero, BYAT)
15505             CreateByteField (BUFF, 0x02, DATA)
15506             Name (BUF1, Buffer (0x06)
15507             {
15508                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
15509             })
15510             CreateByteField (BUF1, Zero, BSTA)
15511             CreateByteField (BUF1, One, BLEN)
15512             CreateDWordField (BUF1, 0x02, DAT1)
15513             Name (BUF2, Buffer (0x04)
15514             {
15515                  0x00, 0x00, 0x00, 0x00                           /* .... */
15516             })
15517             CreateByteField (BUF2, Zero, BSTS)
15518             CreateByteField (BUF2, One, SLEN)
15519             CreateWordField (BUF2, 0x02, WRD1)
15520             Name (BIXP, Package (0x14)
15521             {
15522                 Zero, 
15523                 One, 
15524                 0xFFFFFFFF, 
15525                 0xFFFFFFFF, 
15526                 One, 
15527                 0xFFFFFFFF, 
15528                 0x0A, 
15529                 0x04, 
15530                 Zero, 
15531                 0x00017318, 
15532                 0xFFFFFFFF, 
15533                 0xFFFFFFFF, 
15534                 0x88B8, 
15535                 0x61A8, 
15536                 One, 
15537                 One, 
15538                 "SR Real Battery", 
15539                 "123456789", 
15540                 "LION", 
15541                 "Intel SR 1"
15542             })
15543             Name (BSTP, Package (0x04)
15544             {
15545                 Zero, 
15546                 0xFFFFFFFF, 
15547                 0xFFFFFFFF, 
15548                 0xFFFFFFFF
15549             })
15550             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
15551             {
15552                 ADBG ("BIX")
15553                 If ((^^BMDR.AVBL == One))
15554                 {
15555                     Index (BIXP, 0x03) = ^^BMDR.FCCP /* \_SB_.I2C5.BMDR.FCCP */
15556                     Index (BIXP, 0x08) = ^^BMDR.CYCL /* \_SB_.I2C5.BMDR.CYCL */
15557                     Index (BIXP, 0x02) = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */
15558                     DSCP = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */
15559                 }
15560
15561                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.BMBT.DSVO */
15562                 Divide (DSCP, 0x0A, Local0, Local1)
15563                 Index (BIXP, 0x06) = Local1
15564                 Divide (DSCP, 0x14, Local0, Local1)
15565                 Index (BIXP, 0x07) = Local1
15566                 Return (BIXP) /* \_SB_.I2C5.BMBT.BIXP */
15567             }
15568
15569             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
15570             {
15571                 If ((^^BMDR.AVBL == One))
15572                 {
15573                     ADBG ("BST")
15574                     Local0 = ^^BMDR.CHST /* \_SB_.I2C5.BMDR.CHST */
15575                     Local0 &= 0x0F
15576                     If ((Local0 == 0x02))
15577                     {
15578                         Local1 = 0x02
15579                     }
15580
15581                     If ((Local0 == One))
15582                     {
15583                         Local1 = One
15584                     }
15585
15586                     If ((Local0 == 0x08))
15587                     {
15588                         Local1 = Zero
15589                     }
15590
15591                     Index (BSTP, Zero) = Local1
15592                     Index (BSTP, One) = ^^BMDR.CHGC /* \_SB_.I2C5.BMDR.CHGC */
15593                     Index (BSTP, 0x02) = ^^BMDR.RMCP /* \_SB_.I2C5.BMDR.RMCP */
15594                     Index (BSTP, 0x03) = ^^BMDR.VOLT /* \_SB_.I2C5.BMDR.VOLT */
15595                     ^^BMDR.DPCU = BCCC /* \_SB_.I2C5.BMBT.BCCC */
15596                 }
15597
15598                 Return (BSTP) /* \_SB_.I2C5.BMBT.BSTP */
15599             }
15600
15601             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
15602             {
15603                 BTPC = Arg0
15604                 ADBG ("BTP")
15605                 ADBG (Arg0)
15606                 If ((^^BMDR.AVBL == One))
15607                 {
15608                     ^^BMDR.BTP = Arg0
15609                 }
15610             }
15611
15612             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
15613             {
15614                 ADBG ("BTM")
15615                 If ((Arg0 > 0x7530))
15616                 {
15617                     Return (Zero)
15618                 }
15619
15620                 Return (0xFFFFFFFF)
15621             }
15622
15623             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
15624             {
15625                 ADBG ("BCT")
15626                 If (((Arg0 > 0x64) || (Arg0 < One)))
15627                 {
15628                     Return (Zero)
15629                 }
15630
15631                 Return (0xFFFFFFFF)
15632             }
15633
15634             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
15635             {
15636                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
15637                 {
15638                     If ((Arg2 == 0x02))
15639                     {
15640                         If ((Arg1 == Zero))
15641                         {
15642                             Return (Buffer (One)
15643                             {
15644                                  0x00                                             /* . */
15645                             })
15646                         }
15647                     }
15648                 }
15649
15650                 Return (Zero)
15651             }
15652
15653             Method (_STA, 0, NotSerialized)  // _STA: Status
15654             {
15655                 If ((PMID == 0x05))
15656                 {
15657                     Return (0x1F)
15658                 }
15659
15660                 Return (Zero)
15661             }
15662
15663             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15664             {
15665                 Return (_SB) /* \_SB_ */
15666             }
15667
15668             Method (PSOC, 0, NotSerialized)
15669             {
15670                 ADBG ("PSOC")
15671                 If ((^^BMDR.AVBL == One))
15672                 {
15673                     Local1 = ^^BMDR.SOC /* \_SB_.I2C5.BMDR.SOC_ */
15674                     Return (Local1)
15675                 }
15676
15677                 Return (Zero)
15678             }
15679
15680             Method (PMAX, 0, NotSerialized)
15681             {
15682                 Return (Zero)
15683             }
15684
15685             Method (VMIN, 0, NotSerialized)
15686             {
15687                 Return (0x0E10)
15688             }
15689
15690             Method (APWR, 0, NotSerialized)
15691             {
15692                 Return (0x00FC3A50)
15693             }
15694
15695             Method (NPWR, 0, NotSerialized)
15696             {
15697                 Local3 = APWR ()
15698                 Return (Zero)
15699             }
15700
15701             Method (PSRC, 0, NotSerialized)
15702             {
15703                 If ((^^BMDR.AVBL == One))
15704                 {
15705                     Local0 = ^^BMDR.CHTP /* \_SB_.I2C5.BMDR.CHTP */
15706                     If ((Local0 == Zero))
15707                     {
15708                         Return (Zero)
15709                     }
15710
15711                     If ((Local0 == One))
15712                     {
15713                         Return (One)
15714                     }
15715
15716                     If ((Local0 == 0x02))
15717                     {
15718                         Return (0x02)
15719                     }
15720
15721                     If ((Local0 == 0x03))
15722                     {
15723                         Return (0x03)
15724                     }
15725
15726                     If ((Local0 == 0x04))
15727                     {
15728                         Return (0x04)
15729                     }
15730
15731                     If ((Local0 == 0x05))
15732                     {
15733                         Return (0x05)
15734                     }
15735
15736                     Return (Zero)
15737                 }
15738
15739                 Return (One)
15740             }
15741
15742             Method (CTYP, 0, NotSerialized)
15743             {
15744                 Return (0x02)
15745             }
15746
15747             Method (ARTG, 0, NotSerialized)
15748             {
15749                 Return (APWR ())
15750             }
15751         }
15752
15753         Device (TIBT)
15754         {
15755             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
15756             Name (_UID, One)  // _UID: Unique ID
15757             Name (BCCE, One)
15758             Name (OTGS, Zero)
15759             Name (CHPR, One)
15760             Name (FGDV, 0x0A)
15761             Name (BCCC, 0x80)
15762             Name (BCIL, 0x65)
15763             Name (BCVF, 0x93)
15764             Name (BCFV, 0xED)
15765             Name (BCCH, 0x38)
15766             Name (BCST, 0x05)
15767             Name (BCPE, 0x74)
15768             Name (BCCL, 0xFFFFFFFF)
15769             Name (BCLP, 0x1004)
15770             Name (DSCP, 0x1300)
15771             Name (DSVO, 0x0EA6)
15772             Name (BTPC, Zero)
15773             Name (AVCU, Zero)
15774             Name (_DEP, Package (0x01)  // _DEP: Dependencies
15775             {
15776                 I2C5
15777             })
15778             Name (BUFF, Buffer (0x03)
15779             {
15780                  0x00, 0x01, 0x00                                 /* ... */
15781             })
15782             CreateByteField (BUFF, Zero, BYAT)
15783             CreateByteField (BUFF, 0x02, DATA)
15784             Name (BUF1, Buffer (0x06)
15785             {
15786                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
15787             })
15788             CreateByteField (BUF1, Zero, BSTA)
15789             CreateByteField (BUF1, One, BLEN)
15790             CreateDWordField (BUF1, 0x02, DAT1)
15791             Name (BUF2, Buffer (0x04)
15792             {
15793                  0x00, 0x00, 0x00, 0x00                           /* .... */
15794             })
15795             CreateByteField (BUF2, Zero, BSTS)
15796             CreateByteField (BUF2, One, SLEN)
15797             CreateWordField (BUF2, 0x02, WRD1)
15798             Name (BIXP, Package (0x14)
15799             {
15800                 Zero, 
15801                 One, 
15802                 0xFFFFFFFF, 
15803                 0xFFFFFFFF, 
15804                 One, 
15805                 0xFFFFFFFF, 
15806                 0x0A, 
15807                 0x04, 
15808                 Zero, 
15809                 0x00017318, 
15810                 0xFFFFFFFF, 
15811                 0xFFFFFFFF, 
15812                 0x88B8, 
15813                 0x61A8, 
15814                 One, 
15815                 One, 
15816                 "SR Real Battery", 
15817                 "123456789", 
15818                 "LION", 
15819                 "Intel SR 1"
15820             })
15821             Name (BSTP, Package (0x04)
15822             {
15823                 Zero, 
15824                 0xFFFFFFFF, 
15825                 0xFFFFFFFF, 
15826                 0xFFFFFFFF
15827             })
15828             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
15829             {
15830                 ADBG ("BIX")
15831                 If ((^^TIDR.AVBL == One))
15832                 {
15833                     Index (BIXP, 0x03) = ^^TIDR.FCCP /* \_SB_.I2C5.TIDR.FCCP */
15834                     Index (BIXP, 0x08) = ^^TIDR.CYCL /* \_SB_.I2C5.TIDR.CYCL */
15835                     Index (BIXP, 0x02) = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */
15836                     DSCP = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */
15837                 }
15838
15839                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.TIBT.DSVO */
15840                 Divide (DSCP, 0x0A, Local0, Local1)
15841                 Index (BIXP, 0x06) = Local1
15842                 Divide (DSCP, 0x14, Local0, Local1)
15843                 Index (BIXP, 0x07) = Local1
15844                 Return (BIXP) /* \_SB_.I2C5.TIBT.BIXP */
15845             }
15846
15847             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
15848             {
15849                 If ((^^TIDR.AVBL == One))
15850                 {
15851                     ADBG ("BST")
15852                     Local0 = ^^TIDR.CHST /* \_SB_.I2C5.TIDR.CHST */
15853                     Local0 &= 0x0F
15854                     If ((Local0 == 0x02))
15855                     {
15856                         Local1 = 0x02
15857                     }
15858
15859                     If ((Local0 == One))
15860                     {
15861                         Local1 = One
15862                     }
15863
15864                     If ((Local0 == 0x08))
15865                     {
15866                         Local1 = Zero
15867                     }
15868
15869                     Index (BSTP, Zero) = Local1
15870                     Index (BSTP, One) = ^^TIDR.CHGC /* \_SB_.I2C5.TIDR.CHGC */
15871                     Index (BSTP, 0x02) = ^^TIDR.RMCP /* \_SB_.I2C5.TIDR.RMCP */
15872                     Index (BSTP, 0x03) = ^^TIDR.VOLT /* \_SB_.I2C5.TIDR.VOLT */
15873                     ^^TIDR.DPCU = BCCC /* \_SB_.I2C5.TIBT.BCCC */
15874                 }
15875
15876                 Return (BSTP) /* \_SB_.I2C5.TIBT.BSTP */
15877             }
15878
15879             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
15880             {
15881                 BTPC = Arg0
15882                 ADBG ("BTP")
15883                 ADBG (Arg0)
15884                 If ((^^TIDR.AVBL == One))
15885                 {
15886                     ^^TIDR.BTP = Arg0
15887                 }
15888             }
15889
15890             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
15891             {
15892                 ADBG ("BTM")
15893                 If ((Arg0 > 0x7530))
15894                 {
15895                     Return (Zero)
15896                 }
15897
15898                 Return (0xFFFFFFFF)
15899             }
15900
15901             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
15902             {
15903                 ADBG ("BCT")
15904                 If (((Arg0 > 0x64) || (Arg0 < One)))
15905                 {
15906                     Return (Zero)
15907                 }
15908
15909                 Return (0xFFFFFFFF)
15910             }
15911
15912             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
15913             {
15914                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
15915                 {
15916                     If ((Arg2 == 0x02))
15917                     {
15918                         If ((Arg1 == Zero))
15919                         {
15920                             Return (Buffer (One)
15921                             {
15922                                  0x00                                             /* . */
15923                             })
15924                         }
15925                     }
15926                 }
15927
15928                 Return (Zero)
15929             }
15930
15931             Method (_STA, 0, NotSerialized)  // _STA: Status
15932             {
15933                 If ((PMID == 0x06))
15934                 {
15935                     Return (0x1F)
15936                 }
15937
15938                 Return (Zero)
15939             }
15940
15941             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15942             {
15943                 Return (_SB) /* \_SB_ */
15944             }
15945
15946             Method (PSOC, 0, NotSerialized)
15947             {
15948                 ADBG ("PSOC")
15949                 If ((^^TIDR.AVBL == One))
15950                 {
15951                     Local1 = ^^TIDR.SOC /* \_SB_.I2C5.TIDR.SOC_ */
15952                     Return (Local1)
15953                 }
15954
15955                 Return (Zero)
15956             }
15957
15958             Method (PMAX, 0, NotSerialized)
15959             {
15960                 Return (Zero)
15961             }
15962
15963             Method (VMIN, 0, NotSerialized)
15964             {
15965                 Return (0x0DAC)
15966             }
15967
15968             Method (APWR, 0, NotSerialized)
15969             {
15970                 Return (0x0365C040)
15971             }
15972
15973             Method (NPWR, 0, NotSerialized)
15974             {
15975                 Local3 = APWR ()
15976                 Return (Zero)
15977             }
15978
15979             Method (PSRC, 0, NotSerialized)
15980             {
15981                 If ((^^TIDR.AVBL == One))
15982                 {
15983                     Local0 = ^^TIDR.STYP /* \_SB_.I2C5.TIDR.STYP */
15984                     If ((Local0 == Zero))
15985                     {
15986                         Return (Zero)
15987                     }
15988
15989                     If ((Local0 == One))
15990                     {
15991                         Return (One)
15992                     }
15993
15994                     If ((Local0 == 0x02))
15995                     {
15996                         Return (0x02)
15997                     }
15998
15999                     If ((Local0 == 0x03))
16000                     {
16001                         Return (0x03)
16002                     }
16003
16004                     If ((Local0 == 0x04))
16005                     {
16006                         Return (0x04)
16007                     }
16008
16009                     If ((Local0 == 0x05))
16010                     {
16011                         Return (0x05)
16012                     }
16013                 }
16014
16015                 Return (One)
16016             }
16017
16018             Method (CTYP, 0, NotSerialized)
16019             {
16020                 Return (0x02)
16021             }
16022
16023             Method (ARTG, 0, NotSerialized)
16024             {
16025                 Return (0x0365C040)
16026             }
16027         }
16028     }
16029 }
16030