Fix some warnings about missing return values
[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, NotSerialized)  // _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, NotSerialized)  // _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                     0x0000001D,
3671                 }
3672                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3673                 {
3674                     0x00000018,
3675                 }
3676                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3677                 {
3678                     0x00000019,
3679                 }
3680                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3681                 {
3682                     0x0000001A,
3683                 }
3684                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3685                 {
3686                     0x0000001B,
3687                 }
3688                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3689                 {
3690                     0x0000001C,
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             Device (ADMA)
3732             {
3733                 Name (_ADR, Zero)  // _ADR: Address
3734                 Name (_HID, "ADMA0F28" /* Intel Audio DMA */)  // _HID: Hardware ID
3735                 Name (_CID, "ADMA0F28" /* Intel Audio DMA */)  // _CID: Compatible ID
3736                 Name (_DDN, "Intel(R) Audio  DMA0 - DMA0F28")  // _DDN: DOS Device Name
3737                 Name (_UID, One)  // _UID: Unique ID
3738                 Method (_STA, 0, NotSerialized)  // _STA: Status
3739                 {
3740                     If ((OSSL & 0x80))
3741                     {
3742                         Return (0x0F)
3743                     }
3744
3745                     Return (Zero)
3746                 }
3747
3748                 Name (RBUF, ResourceTemplate ()
3749                 {
3750                     Memory32Fixed (ReadWrite,
3751                         0xDF498000,         // Address Base
3752                         0x00001000,         // Address Length
3753                         _Y07)
3754                     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3755                     {
3756                         0x00000018,
3757                     }
3758                 })
3759
3760                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3761                 {
3762                     CreateDWordField (RBUF, \_SB.LPEA.ADMA._Y07._BAS, B0BA)  // _BAS: Base Address
3763                     B0BA = LPE0 /* \LPE0 */
3764                     Return (RBUF) /* \_SB_.LPEA.ADMA.RBUF */
3765                 }
3766             }
3767
3768             Device (SSP1)
3769             {
3770                 Name (_ADR, Zero)  // _ADR: Address
3771                 Name (_HID, "SSPX0000" /* Intel SSP Device */)  // _HID: Hardware ID
3772                 Name (_CID, "SSPX0000" /* Intel SSP Device */)  // _CID: Compatible ID
3773                 Name (_DDN, "Intel(R) SSP Device")  // _DDN: DOS Device Name
3774                 Name (_UID, One)  // _UID: Unique ID
3775                 Method (_STA, 0, NotSerialized)  // _STA: Status
3776                 {
3777                     If ((OSSL & 0x80))
3778                     {
3779                         Return (0x0F)
3780                     }
3781
3782                     Return (Zero)
3783                 }
3784
3785                 Name (RBUF, ResourceTemplate ()
3786                 {
3787                     Memory32Fixed (ReadWrite,
3788                         0xDF4A1000,         // Address Base
3789                         0x00001000,         // Address Length
3790                         _Y08)
3791                     Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
3792                     {
3793                         0x0000001B,
3794                     }
3795                 })
3796
3797                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3798                 {
3799                     CreateDWordField (RBUF, \_SB.LPEA.SSP1._Y08._BAS, B0BA)  // _BAS: Base Address
3800                     B0BA = (LPE0 + 0x000A1000)
3801                     Return (RBUF) /* \_SB_.LPEA.SSP1.RBUF */
3802                 }
3803
3804                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
3805                 {
3806                     Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
3807                     If ((Arg0 == ToUUID ("886a3f26-600c-4401-b7b1-01e9c2e7e77e")))
3808                     {
3809                         Return ("BLUET")
3810                     }
3811
3812                     If ((Arg0 == ToUUID ("30d3f83e-2ee1-4bf0-86e9-f69ded2887ee")))
3813                     {
3814                         Return (One)
3815                     }
3816
3817                     If ((Arg0 == ToUUID ("208b1400-f7c8-4325-ab32-53cd79b7d0a6")))
3818                     {
3819                         Return (0xFF2A1000)
3820                     }
3821
3822                     If ((Arg0 == ToUUID ("e6e37c60-e78b-4fbd-bd26-5bd3667a6c9a")))
3823                     {
3824                         While (One)
3825                         {
3826                             T_0 = ToInteger (Arg1)
3827                             If ((T_0 == 0x08))
3828                             {
3829                                 Return (Buffer (0x05)
3830                                 {
3831                                      0x00, 0x00, 0x00, 0x00, 0x01                     /* ..... */
3832                                 })
3833                             }
3834                             Else
3835                             {
3836                                 If ((T_0 == 0x10))
3837                                 {
3838                                     Return (Buffer (0x05)
3839                                     {
3840                                          0x06, 0x02, 0x00, 0x0E, 0x10                     /* ..... */
3841                                     })
3842                                 }
3843                                 Else
3844                                 {
3845                                     If ((T_0 == 0x30))
3846                                     {
3847                                         Return (Buffer (0x05)
3848                                         {
3849                                              0x06, 0x02, 0x00, 0x0E, 0x10                     /* ..... */
3850                                         })
3851                                     }
3852                                 }
3853                             }
3854
3855                             Break
3856                         }
3857
3858                         Return ("ERR-T")
3859                     }
3860
3861                     Return ("ERR-M")
3862                 }
3863             }
3864         }
3865
3866         Device (TIMC)
3867         {
3868             Name (_ADR, Zero)  // _ADR: Address
3869             Name (_HID, "TIMC0F28")  // _HID: Hardware ID
3870             Name (_CID, "TIMC0F28")  // _CID: Compatible ID
3871             Name (_DDN, "Intel(R) Audio Machine Driver - TIMC0F28")  // _DDN: DOS Device Name
3872             Name (_UID, One)  // _UID: Unique ID
3873             Name (_DEP, Package (0x02)  // _DEP: Dependencies
3874             {
3875                 GPO2, 
3876                 ^I2C2.TTLV
3877             })
3878             Method (_STA, 0, NotSerialized)  // _STA: Status
3879             {
3880                 Return (Zero)
3881             }
3882
3883             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3884             {
3885                 Name (RBUF, ResourceTemplate ()
3886                 {
3887                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3888                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3889                         )
3890                         {   // Pin list
3891                             0x0004
3892                         }
3893                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3894                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3895                         )
3896                         {   // Pin list
3897                             0x001B
3898                         }
3899                 })
3900                 Return (RBUF) /* \_SB_.TIMC._CRS.RBUF */
3901             }
3902         }
3903
3904         Device (AMCR)
3905         {
3906             Name (_ADR, Zero)  // _ADR: Address
3907             Name (_HID, "AMCR0F28" /* Intel Audio Machine Driver */)  // _HID: Hardware ID
3908             Name (_CID, "AMCR0F28" /* Intel Audio Machine Driver */)  // _CID: Compatible ID
3909             Name (_DDN, "Intel(R) Audio Machine Driver - AMCR0F28")  // _DDN: DOS Device Name
3910             Name (_UID, One)  // _UID: Unique ID
3911             Name (_DEP, Package (0x02)  // _DEP: Dependencies
3912             {
3913                 GPO2, 
3914                 ^I2C2.RTEK
3915             })
3916             Method (_STA, 0, NotSerialized)  // _STA: Status
3917             {
3918                 If ((OSSL & 0x80))
3919                 {
3920                     Return (0x0F)
3921                 }
3922
3923                 Return (Zero)
3924             }
3925
3926             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3927             {
3928                 Name (RBUF, ResourceTemplate ()
3929                 {
3930                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3931                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3932                         )
3933                         {   // Pin list
3934                             0x0004
3935                         }
3936                     GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
3937                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
3938                         )
3939                         {   // Pin list
3940                             0x001B
3941                         }
3942                 })
3943                 Return (RBUF) /* \_SB_.AMCR._CRS.RBUF */
3944             }
3945         }
3946
3947         Device (HAD)
3948         {
3949             Name (_ADR, Zero)  // _ADR: Address
3950             Name (_HID, "HAD0F28" /* Intel HDMI Audio Driver */)  // _HID: Hardware ID
3951             Name (_CID, "HAD0F28" /* Intel HDMI Audio Driver */)  // _CID: Compatible ID
3952             Name (_DDN, "Intel(R) HDMI Audio Driver - HAD")  // _DDN: DOS Device Name
3953             Name (_UID, One)  // _UID: Unique ID
3954             Method (_STA, 0, NotSerialized)  // _STA: Status
3955             {
3956                 If ((OSSL & 0x80))
3957                 {
3958                     Return (0x0F)
3959                 }
3960
3961                 Return (Zero)
3962             }
3963
3964             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
3965             {
3966                 Name (RBUF, ResourceTemplate ()
3967                 {
3968                     Memory32Fixed (ReadWrite,
3969                         0x00065800,         // Address Base
3970                         0x00000140,         // Address Length
3971                         )
3972                 })
3973                 Return (RBUF) /* \_SB_.HAD_._CRS.RBUF */
3974             }
3975         }
3976     }
3977
3978     Scope (_SB.PCI0)
3979     {
3980         Scope (XHC1)
3981         {
3982             Name (_DDN, "Baytrail XHCI controller (CCG core/Host only)")  // _DDN: DOS Device Name
3983             Name (_DEP, Package (0x01)  // _DEP: Dependencies
3984             {
3985                 PEPD
3986             })
3987             Name (_STR, Unicode ("Baytrail XHCI controller (CCG core/Host only)"))  // _STR: Description String
3988             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
3989             Name (MSET, Zero)
3990             Name (DDST, Zero)
3991             OperationRegion (PCSL, SystemMemory, 0xE00A0074, One)
3992             Field (PCSL, ByteAcc, NoLock, WriteAsZeros)
3993             {
3994                 PMPS,   2
3995             }
3996
3997             OperationRegion (PCSH, SystemMemory, 0xE00A0075, One)
3998             Field (PCSH, ByteAcc, NoLock, Preserve)
3999             {
4000                 PMCH,   8
4001             }
4002
4003             OperationRegion (XMSE, SystemMemory, 0xE00A0000, 0x0100)
4004             Field (XMSE, AnyAcc, NoLock, Preserve)
4005             {
4006                 Offset (0x04), 
4007                     ,   1, 
4008                 CMSE,   1, 
4009                 Offset (0x10), 
4010                 BAR0,   32, 
4011                 Offset (0x74), 
4012                 PMCS,   16, 
4013                 Offset (0xB0), 
4014                     ,   13, 
4015                 PHY2,   2, 
4016                     ,   13, 
4017                 USHP,   1, 
4018                     ,   1, 
4019                 SCFG,   1
4020             }
4021
4022             Method (PWOF, 0, Serialized)
4023             {
4024                 SCFG = One
4025             }
4026
4027             Method (PWON, 0, Serialized)
4028             {
4029                 SCFG = Zero
4030             }
4031
4032             OperationRegion (XPRT, SystemMemory, (PEBS + 0x000A0000), 0x0100)
4033             Field (XPRT, AnyAcc, NoLock, Preserve)
4034             {
4035                 DVID,   16, 
4036                 Offset (0x74), 
4037                 D0D3,   2, 
4038                 Offset (0x75), 
4039                 PMEE,   1, 
4040                     ,   6, 
4041                 PMES,   1, 
4042                 Offset (0xB0), 
4043                     ,   13, 
4044                 MB13,   1, 
4045                 MB14,   1, 
4046                 Offset (0xB4), 
4047                 Offset (0xD0), 
4048                 PR2,    32, 
4049                 PR2M,   32, 
4050                 PR3,    32, 
4051                 PR3M,   32
4052             }
4053
4054             OperationRegion (XHCP, SystemMemory, (PEBS + 0x000A0000), 0x0100)
4055             Field (XHCP, AnyAcc, Lock, Preserve)
4056             {
4057                 Offset (0x04), 
4058                 PDBM,   16, 
4059                 Offset (0x10), 
4060                 MEMB,   32
4061             }
4062
4063             Name (PCHS, Zero)
4064             Name (SRMB, 0x90800000)
4065             Method (_PS0, 0, Serialized)  // _PS0: Power State 0
4066             {
4067                 ADBG ("XHC D0")
4068                 P8XH (Zero, 0xA0)
4069                 If ((DVID == 0xFFFF))
4070                 {
4071                     Return (Zero)
4072                 }
4073
4074                 SRMB = (MEMB & 0xFFFFFFF0)
4075                 Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */
4076                 Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */
4077                 PDBM &= 0xFFFFFFFFFFFFFFF9
4078                 MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */
4079                 PDBM |= 0x02
4080                 OperationRegion (MCA1, SystemMemory, SRMB, 0x9000)
4081                 Field (MCA1, DWordAcc, Lock, Preserve)
4082                 {
4083                     Offset (0x510), 
4084                     R510,   32, 
4085                     Offset (0x520), 
4086                     R520,   32, 
4087                     Offset (0x530), 
4088                     R530,   32, 
4089                     Offset (0x540), 
4090                     R540,   32, 
4091                     Offset (0x8058), 
4092                     Offset (0x8059), 
4093                     CDES,   1, 
4094                     Offset (0x805A), 
4095                     STSP,   1, 
4096                         ,   3, 
4097                     CFEC,   1, 
4098                     Offset (0x8060), 
4099                         ,   25, 
4100                     EPRE,   1, 
4101                     Offset (0x8094), 
4102                         ,   14, 
4103                     CMMF,   1, 
4104                         ,   6, 
4105                     ESSP,   1, 
4106                         ,   1, 
4107                     DAPA,   1, 
4108                     Offset (0x80E0), 
4109                         ,   15, 
4110                     AX15,   1, 
4111                     Offset (0x80FC), 
4112                         ,   25, 
4113                     PPL1,   1, 
4114                     Offset (0x8110), 
4115                         ,   1, 
4116                     CRNC,   1, 
4117                     Offset (0x8111), 
4118                     EPTD,   1, 
4119                         ,   2, 
4120                     HTPP,   1, 
4121                         ,   8, 
4122                     TRMC,   1, 
4123                     Offset (0x8140), 
4124                     MIDS,   12, 
4125                     AWPC,   12, 
4126                     EIHR,   8, 
4127                         ,   6, 
4128                     SSII,   1, 
4129                     SSIO,   1, 
4130                     HSII,   1, 
4131                     Offset (0x8154), 
4132                         ,   31, 
4133                     CLK2,   1, 
4134                     Offset (0x8164), 
4135                     ETBC,   1, 
4136                     ERBC,   1, 
4137                     ESAI,   1, 
4138                     ETMA,   1, 
4139                     EOAI,   1, 
4140                     EIAI,   1, 
4141                     TTEA,   1, 
4142                     ECMA,   1, 
4143                     Offset (0x816C), 
4144                         ,   2, 
4145                     CLK0,   1, 
4146                         ,   11, 
4147                     CLK1,   1, 
4148                     Offset (0x8188), 
4149                     Offset (0x818B), 
4150                     FIDD,   1, 
4151                         ,   1, 
4152                     FTSS,   1
4153                 }
4154
4155                 Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */
4156                 If ((Local3 == 0x03))
4157                 {
4158                     D0D3 = Zero
4159                     Sleep (0x0A)
4160                 }
4161
4162                 If ((PCHS == 0x02))
4163                 {
4164                     MB13 = Zero
4165                     MB14 = Zero
4166                     CLK0 = Zero
4167                     CLK1 = Zero
4168                 }
4169
4170                 CLK2 = One
4171                 CDES = One
4172                 STSP = One
4173                 CFEC = Zero
4174                 EPRE = One
4175                 DAPA = One
4176                 ESSP = One
4177                 CMMF = One
4178                 PPL1 = One
4179                 CRNC = Zero
4180                 EPTD = Zero
4181                 HTPP = One
4182                 TRMC = One
4183                 MIDS = 0x3C
4184                 AWPC = 0x0F
4185                 EIHR = 0xFF
4186                 SSII = One
4187                 SSIO = One
4188                 HSII = One
4189                 ERBC = One
4190                 ETBC = One
4191                 ESAI = One
4192                 ETMA = One
4193                 EOAI = One
4194                 EIAI = One
4195                 TTEA = One
4196                 ECMA = One
4197                 FIDD = One
4198                 FTSS = One
4199                 USHP = Zero
4200                 If ((PCHS == 0x02))
4201                 {
4202                     While (((((R510 & 0x03FB) == 0x02E0) || ((R520 & 
4203                         0x03FB) == 0x02E0)) || (((R530 & 0x03FB) == 0x02E0) || ((R540 & 
4204                         0x03FB) == 0x02E0))))
4205                     {
4206                         Stall (0x32)
4207                     }
4208
4209                     Local0 = R510 /* \_SB_.PCI0.XHC1._PS0.R510 */
4210                     If (((Local0 & 0x000203FB) == 0x02A0))
4211                     {
4212                         R510 = (Local0 | 0x80000000)
4213                         While (((R510 & 0x00180000) == Zero))
4214                         {
4215                             Stall (0x32)
4216                         }
4217
4218                         Local0 = (R510 & 0xFFFFFFFFFFFFFFFD)
4219                         R510 = (Local0 | 0x00FE0000)
4220                     }
4221
4222                     Local0 = R520 /* \_SB_.PCI0.XHC1._PS0.R520 */
4223                     If (((Local0 & 0x000203FB) == 0x02A0))
4224                     {
4225                         R520 = (Local0 | 0x80000000)
4226                         While (((R520 & 0x00180000) == Zero))
4227                         {
4228                             Stall (0x32)
4229                         }
4230
4231                         Local0 = (R520 & 0xFFFFFFFFFFFFFFFD)
4232                         R520 = (Local0 | 0x00FE0000)
4233                     }
4234
4235                     Local0 = R530 /* \_SB_.PCI0.XHC1._PS0.R530 */
4236                     If (((Local0 & 0x000203FB) == 0x02A0))
4237                     {
4238                         R530 = (Local0 | 0x80000000)
4239                         While (((R530 & 0x00180000) == Zero))
4240                         {
4241                             Stall (0x32)
4242                         }
4243
4244                         Local0 = (R530 & 0xFFFFFFFFFFFFFFFD)
4245                         R530 = (Local0 | 0x00FE0000)
4246                     }
4247
4248                     Local0 = R540 /* \_SB_.PCI0.XHC1._PS0.R540 */
4249                     If (((Local0 & 0x000203FB) == 0x02A0))
4250                     {
4251                         R540 = (Local0 | 0x80000000)
4252                         While (((R540 & 0x00180000) == Zero))
4253                         {
4254                             Stall (0x32)
4255                         }
4256
4257                         Local0 = (R540 & 0xFFFFFFFFFFFFFFFD)
4258                         R540 = (Local0 | 0x00FE0000)
4259                     }
4260
4261                     AX15 = One
4262                 }
4263
4264                 If ((Local3 == 0x03))
4265                 {
4266                     ADBG ("PS0->D3")
4267                     P8XH (Zero, 0xA1)
4268                     D0D3 = 0x03
4269                 }
4270                 Else
4271                 {
4272                     P8XH (Zero, 0xA2)
4273                 }
4274
4275                 PDBM &= 0xFFFFFFFFFFFFFFFD
4276                 MEMB = Local2
4277                 PDBM = Local1
4278
4279                 Return (Zero)
4280             }
4281
4282             Method (_PS3, 0, Serialized)  // _PS3: Power State 3
4283             {
4284                 ADBG ("XHC D3")
4285                 P8XH (Zero, 0xB0)
4286                 If ((DVID == 0xFFFF))
4287                 {
4288                     Return (Zero)
4289                 }
4290
4291                 SRMB = (MEMB & 0xFFFFFFF0)
4292                 Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */
4293                 Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */
4294                 PDBM &= 0xFFFFFFFFFFFFFFF9
4295                 MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */
4296                 PDBM |= 0x02
4297                 OperationRegion (MCA1, SystemMemory, SRMB, 0x9000)
4298                 Field (MCA1, DWordAcc, Lock, Preserve)
4299                 {
4300                     Offset (0x80E0), 
4301                         ,   15, 
4302                     AX15,   1, 
4303                     Offset (0x8154), 
4304                         ,   31, 
4305                     CLK2,   1, 
4306                     Offset (0x816C), 
4307                         ,   2, 
4308                     CLK0,   1, 
4309                         ,   11, 
4310                     CLK1,   1, 
4311                     Offset (0x8170)
4312                 }
4313
4314                 Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */
4315                 If ((Local3 == 0x03))
4316                 {
4317                     D0D3 = Zero
4318                 }
4319
4320                 If ((PCHS == 0x02))
4321                 {
4322                     MB13 = One
4323                     MB14 = One
4324                     CLK0 = One
4325                     CLK1 = One
4326                 }
4327
4328                 CLK2 = Zero
4329                 If ((PCHS == 0x02))
4330                 {
4331                     AX15 = Zero
4332                 }
4333
4334                 If ((PMEE == One))
4335                 {
4336                     USHP = One
4337                 }
4338
4339                 If ((Local3 == 0x03))
4340                 {
4341                     ADBG ("PS3->D3")
4342                     P8XH (Zero, 0xB1)
4343                     D0D3 = 0x03
4344                 }
4345                 Else
4346                 {
4347                     P8XH (Zero, 0xB2)
4348                 }
4349
4350                 PDBM &= 0xFFFFFFFFFFFFFFFD
4351                 MEMB = Local2
4352                 PDBM = Local1
4353
4354                 Return (Zero)
4355             }
4356
4357             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
4358             {
4359             }
4360
4361             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4362             {
4363                 Return (Zero)
4364             }
4365
4366             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
4367             {
4368                 Return (Package (0x01)
4369                 {
4370                     USBC
4371                 })
4372             }
4373
4374             Method (_STA, 0, NotSerialized)  // _STA: Status
4375             {
4376                 If ((XHCI != Zero))
4377                 {
4378                     Return (0x0F)
4379                 }
4380                 Else
4381                 {
4382                     Return (Zero)
4383                 }
4384             }
4385
4386             Device (RHUB)
4387             {
4388                 Name (_ADR, Zero)  // _ADR: Address
4389                 Device (SSP1)
4390                 {
4391                     Name (_ADR, 0x07)  // _ADR: Address
4392                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4393                     {
4394                         Name (UPCP, Package (0x04)
4395                         {
4396                             Zero, 
4397                             0x06, 
4398                             Zero, 
4399                             Zero
4400                         })
4401                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._UPC.UPCP */
4402                     }
4403
4404                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4405                     {
4406                         Name (PLDP, Package (0x01)
4407                         {
4408                             Buffer (0x14)
4409                             {
4410                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4411                                 /* 0008 */  0x48, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* H....... */
4412                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4413                             }
4414                         })
4415                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._PLD.PLDP */
4416                     }
4417
4418                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4419                     {
4420                         ADBG ("DSM11")
4421                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4422                         {
4423                             ADBG ("DSM12")
4424                             If ((Arg1 == Zero))
4425                             {
4426                                 ADBG ("DSM13")
4427                                 If ((Arg2 == Zero))
4428                                 {
4429                                     ADBG ("SSP1 QUERY")
4430                                     Debug = "Method _DSM Function Query"
4431                                     Return (Buffer (One)
4432                                     {
4433                                          0x05                                             /* . */
4434                                     })
4435                                 }
4436
4437                                 If ((Arg2 == 0x02))
4438                                 {
4439                                     ADBG ("SSP1 DSM")
4440                                     Debug = "Method _DSM Function Index2"
4441                                     Return (Zero)
4442                                 }
4443                             }
4444                         }
4445                         Else
4446                         {
4447                             Return (Zero)
4448                         }
4449
4450                         Return (Zero)
4451                     }
4452                 }
4453
4454                 Device (HS01)
4455                 {
4456                     Name (_ADR, One)  // _ADR: Address
4457                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4458                     {
4459                         Name (UPCP, Package (0x04)
4460                         {
4461                             0xFF, 
4462                             0x06, 
4463                             Zero, 
4464                             Zero
4465                         })
4466                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS01._UPC.UPCP */
4467                     }
4468
4469                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4470                     {
4471                         Name (PLDP, Package (0x01)
4472                         {
4473                             Buffer (0x14)
4474                             {
4475                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4476                                 /* 0008 */  0x49, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* I....... */
4477                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4478                             }
4479                         })
4480                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS01._PLD.PLDP */
4481                     }
4482
4483                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4484                     {
4485                         ADBG ("DSM21")
4486                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4487                         {
4488                             ADBG ("DSM22")
4489                             If ((Arg1 == Zero))
4490                             {
4491                                 ADBG ("DSM23")
4492                                 If ((Arg2 == Zero))
4493                                 {
4494                                     ADBG ("HS01 QUERY")
4495                                     Debug = "Method _DSM Function Query"
4496                                     Return (Buffer (One)
4497                                     {
4498                                          0x05                                             /* . */
4499                                     })
4500                                 }
4501
4502                                 If ((Arg2 == 0x02))
4503                                 {
4504                                     ADBG ("HS01 DSM")
4505                                     Debug = "Method _DSM Function Index2"
4506                                     Return (Zero)
4507                                 }
4508                             }
4509                         }
4510                         Else
4511                         {
4512                             Return (Zero)
4513                         }
4514
4515                         Return (Zero)
4516                     }
4517                 }
4518
4519                 Device (HS02)
4520                 {
4521                     Name (_ADR, 0x02)  // _ADR: Address
4522                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4523                     {
4524                         Name (UPCP, Package (0x04)
4525                         {
4526                             0xFF, 
4527                             0xFF, 
4528                             Zero, 
4529                             Zero
4530                         })
4531                         Name (UPCR, Package (0x04)
4532                         {
4533                             0xFF, 
4534                             Zero, 
4535                             Zero, 
4536                             Zero
4537                         })
4538                         If ((BDID == 0x02))
4539                         {
4540                             Return (UPCR) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCR */
4541                         }
4542                         Else
4543                         {
4544                             Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCP */
4545                         }
4546                     }
4547
4548                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4549                     {
4550                         Name (PLDP, Package (0x01)
4551                         {
4552                             Buffer (0x14)
4553                             {
4554                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4555                                 /* 0008 */  0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* @....... */
4556                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4557                             }
4558                         })
4559                         Name (PLDR, Package (0x01)
4560                         {
4561                             Buffer (0x14)
4562                             {
4563                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4564                                 /* 0008 */  0x41, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* A....... */
4565                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4566                             }
4567                         })
4568                         If ((BDID == 0x02))
4569                         {
4570                             Return (PLDR) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDR */
4571                         }
4572                         Else
4573                         {
4574                             Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDP */
4575                         }
4576                     }
4577
4578                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4579                     {
4580                         ADBG ("DSM31")
4581                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4582                         {
4583                             ADBG ("DSM32")
4584                             If ((Arg1 == Zero))
4585                             {
4586                                 ADBG ("DSM33")
4587                                 If ((Arg2 == Zero))
4588                                 {
4589                                     ADBG ("HS02 QUERY")
4590                                     Debug = "Method _DSM Function Query"
4591                                     Return (Buffer (One)
4592                                     {
4593                                          0x05                                             /* . */
4594                                     })
4595                                 }
4596
4597                                 If ((Arg2 == 0x02))
4598                                 {
4599                                     ADBG ("HS02 DSM")
4600                                     Debug = "Method _DSM Function Index2"
4601                                     Return (Zero)
4602                                 }
4603                             }
4604                         }
4605                         Else
4606                         {
4607                             Return (Zero)
4608                         }
4609
4610                         Return (Zero)
4611                     }
4612                 }
4613
4614                 Device (HS03)
4615                 {
4616                     Name (_ADR, 0x03)  // _ADR: Address
4617                     Name (_DEP, Package (0x01)  // _DEP: Dependencies
4618                     {
4619                         GPO2
4620                     })
4621                     Name (PSTS, Zero)
4622                     PowerResource (WWPR, 0x00, 0x0000)
4623                     {
4624                         Name (_DEP, Package (0x01)  // _DEP: Dependencies
4625                         {
4626                             GPO2
4627                         })
4628                         Method (_STA, 0, NotSerialized)  // _STA: Status
4629                         {
4630                             If ((\_SB.GPO2.AVBL == One))
4631                             {
4632                                 Return (\_SB.GPO0.WWD3)
4633                             }
4634
4635                             Return (Zero)
4636                         }
4637
4638                         Method (_ON, 0, NotSerialized)  // _ON_: Power On
4639                         {
4640                             If ((PSTS == Zero))
4641                             {
4642                                 If ((\_SB.GPO2.AVBL == One))
4643                                 {
4644                                     Sleep (0x0200)
4645                                     \_SB.GPO0.WWD3 = One
4646                                     PSTS = One
4647                                 }
4648                             }
4649                         }
4650
4651                         Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
4652                         {
4653                             If ((\_SB.GPO2.AVBL == One))
4654                             {
4655                                 \_SB.GPO0.WWD3 = Zero
4656                                 PSTS = Zero
4657                             }
4658                         }
4659                     }
4660
4661                     Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
4662                     Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
4663                     {
4664                         WWPR
4665                     })
4666                     Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
4667                     {
4668                         WWPR
4669                     })
4670                     Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
4671                     {
4672                         WWPR
4673                     })
4674                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4675                     {
4676                         Name (UPCP, Package (0x04)
4677                         {
4678                             0xFF, 
4679                             0xFF, 
4680                             Zero, 
4681                             Zero
4682                         })
4683                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS03._UPC.UPCP */
4684                     }
4685
4686                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4687                     {
4688                         Name (PLDP, Package (0x01)
4689                         {
4690                             Buffer (0x14)
4691                             {
4692                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4693                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4694                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4695                             }
4696                         })
4697                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS03._PLD.PLDP */
4698                     }
4699
4700                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4701                     {
4702                         ADBG ("DSM41")
4703                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4704                         {
4705                             ADBG ("DSM42")
4706                             If ((Arg1 == Zero))
4707                             {
4708                                 ADBG ("DSM43")
4709                                 If ((Arg2 == Zero))
4710                                 {
4711                                     ADBG ("HS03 QUERY")
4712                                     Debug = "Method _DSM Function Query"
4713                                     Return (Buffer (One)
4714                                     {
4715                                          0x05                                             /* . */
4716                                     })
4717                                 }
4718
4719                                 If ((Arg2 == 0x02))
4720                                 {
4721                                     ADBG ("HS03 DSM")
4722                                     Debug = "Method _DSM Function Index2"
4723                                     Return (Zero)
4724                                 }
4725                             }
4726                         }
4727                         Else
4728                         {
4729                             Return (Zero)
4730                         }
4731
4732                         Return (Zero)
4733                     }
4734
4735                     Device (MODM)
4736                     {
4737                         Name (_ADR, 0x03)  // _ADR: Address
4738                         Name (_PR0, Package (0x01)  // _PR0: Power Resources for D0
4739                         {
4740                             WWPR
4741                         })
4742                         Name (_PR2, Package (0x01)  // _PR2: Power Resources for D2
4743                         {
4744                             WWPR
4745                         })
4746                         Name (_PR3, Package (0x01)  // _PR3: Power Resources for D3hot
4747                         {
4748                             WWPR
4749                         })
4750                     }
4751                 }
4752
4753                 Device (HS04)
4754                 {
4755                     Name (_ADR, 0x04)  // _ADR: Address
4756                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4757                     {
4758                         Name (UPCP, Package (0x04)
4759                         {
4760                             0xFF, 
4761                             0xFF, 
4762                             Zero, 
4763                             Zero
4764                         })
4765                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS04._UPC.UPCP */
4766                     }
4767
4768                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4769                     {
4770                         Name (PLDP, Package (0x01)
4771                         {
4772                             Buffer (0x14)
4773                             {
4774                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4775                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4776                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4777                             }
4778                         })
4779                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS04._PLD.PLDP */
4780                     }
4781
4782                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4783                     {
4784                         ADBG ("DSM51")
4785                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4786                         {
4787                             ADBG ("DSM52")
4788                             If ((Arg1 == Zero))
4789                             {
4790                                 ADBG ("DSM53")
4791                                 If ((Arg2 == Zero))
4792                                 {
4793                                     ADBG ("HS04 QUERY")
4794                                     Debug = "Method _DSM Function Query"
4795                                     Return (Buffer (One)
4796                                     {
4797                                          0x05                                             /* . */
4798                                     })
4799                                 }
4800
4801                                 If ((Arg2 == 0x02))
4802                                 {
4803                                     ADBG ("HS04 DSM")
4804                                     Debug = "Method _DSM Function Index2"
4805                                     Return (Zero)
4806                                 }
4807                             }
4808                         }
4809                         Else
4810                         {
4811                             Return (Zero)
4812                         }
4813
4814                         Return (Zero)
4815                     }
4816                 }
4817
4818                 Device (HSC1)
4819                 {
4820                     Name (_ADR, 0x05)  // _ADR: Address
4821                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4822                     {
4823                         Name (UPCP, Package (0x04)
4824                         {
4825                             0xFF, 
4826                             0xFF, 
4827                             Zero, 
4828                             Zero
4829                         })
4830                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._UPC.UPCP */
4831                     }
4832
4833                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4834                     {
4835                         Name (PLDP, Package (0x01)
4836                         {
4837                             Buffer (0x14)
4838                             {
4839                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4840                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4841                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4842                             }
4843                         })
4844                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._PLD.PLDP */
4845                     }
4846
4847                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4848                     {
4849                         ADBG ("DSM61")
4850                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4851                         {
4852                             ADBG ("DSM62")
4853                             If ((Arg1 == Zero))
4854                             {
4855                                 ADBG ("DSM63")
4856                                 If ((Arg2 == Zero))
4857                                 {
4858                                     ADBG ("HSIC1 QUERY")
4859                                     Debug = "Method _DSM Function Query"
4860                                     Return (Buffer (One)
4861                                     {
4862                                          0x05                                             /* . */
4863                                     })
4864                                 }
4865
4866                                 If ((Arg2 == 0x02))
4867                                 {
4868                                     ADBG ("HSIC1 DSM")
4869                                     Debug = "Method _DSM Function Index2"
4870                                     Return (One)
4871                                 }
4872                             }
4873                         }
4874                         Else
4875                         {
4876                             Return (Zero)
4877                         }
4878
4879                         Return (Zero)
4880                     }
4881                 }
4882
4883                 Device (HSC2)
4884                 {
4885                     Name (_ADR, 0x06)  // _ADR: Address
4886                     Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
4887                     {
4888                         Name (UPCP, Package (0x04)
4889                         {
4890                             0xFF, 
4891                             0xFF, 
4892                             Zero, 
4893                             Zero
4894                         })
4895                         Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._UPC.UPCP */
4896                     }
4897
4898                     Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
4899                     {
4900                         Name (PLDP, Package (0x01)
4901                         {
4902                             Buffer (0x14)
4903                             {
4904                                 /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
4905                                 /* 0008 */  0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* 0....... */
4906                                 /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
4907                             }
4908                         })
4909                         Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._PLD.PLDP */
4910                     }
4911
4912                     Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
4913                     {
4914                         ADBG ("DSM71")
4915                         If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */))
4916                         {
4917                             ADBG ("DSM72")
4918                             If ((Arg1 == Zero))
4919                             {
4920                                 ADBG ("DSM73")
4921                                 If ((Arg2 == Zero))
4922                                 {
4923                                     ADBG ("HSIC2 QUERY")
4924                                     Debug = "Method _DSM Function Query"
4925                                     Return (Buffer (One)
4926                                     {
4927                                          0x05                                             /* . */
4928                                     })
4929                                 }
4930
4931                                 If ((Arg2 == 0x02))
4932                                 {
4933                                     ADBG ("HSIC2 DSM called")
4934                                     Debug = "Method _DSM Function Index2"
4935                                     Return (One)
4936                                 }
4937                             }
4938                         }
4939                         Else
4940                         {
4941                             Return (Zero)
4942                         }
4943
4944                         Return (Zero)
4945                     }
4946                 }
4947             }
4948         }
4949
4950         Device (OTG1)
4951         {
4952             Name (_ADR, 0x00160000)  // _ADR: Address
4953             Name (_DDN, "Baytrail XHCI controller (Synopsys core/OTG)")  // _DDN: DOS Device Name
4954             Name (_STR, Unicode ("Baytrail XHCI controller (Synopsys core/OTG)"))  // _STR: Description String
4955             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
4956             OperationRegion (PMEB, PCI_Config, 0x84, 0x04)
4957             Field (PMEB, WordAcc, NoLock, Preserve)
4958             {
4959                 Offset (0x01), 
4960                 PMEE,   1, 
4961                     ,   6, 
4962                 PMES,   1
4963             }
4964
4965             OperationRegion (GENR, PCI_Config, 0xA0, 0x10)
4966             Field (GENR, WordAcc, NoLock, Preserve)
4967             {
4968                     ,   18, 
4969                 CPME,   1, 
4970                 U2EN,   1, 
4971                 U3EN,   1
4972             }
4973
4974             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
4975             {
4976                 CPME = One
4977                 U2EN = One
4978                 U3EN = One
4979             }
4980
4981             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
4982             {
4983                 CPME = Zero
4984                 U2EN = Zero
4985                 U3EN = Zero
4986             }
4987
4988             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
4989             {
4990             }
4991
4992             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
4993             {
4994                 Return (Zero)
4995             }
4996
4997             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
4998             {
4999                 Return (Package (0x01)
5000                 {
5001                     USBC
5002                 })
5003             }
5004
5005             Method (_STA, 0, NotSerialized)  // _STA: Status
5006             {
5007                 If ((OTGM != Zero))
5008                 {
5009                     Return (0x0F)
5010                 }
5011                 Else
5012                 {
5013                     Return (Zero)
5014                 }
5015             }
5016         }
5017
5018         Scope (\_SB)
5019         {
5020             PowerResource (USBC, 0x00, 0x0000)
5021             {
5022                 Method (_STA, 0, NotSerialized)  // _STA: Status
5023                 {
5024                     Return (0x0F)
5025                 }
5026
5027                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
5028                 {
5029                 }
5030
5031                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
5032                 {
5033                 }
5034             }
5035         }
5036
5037         Scope (EHC1)
5038         {
5039             Name (_DEP, Package (0x01)  // _DEP: Dependencies
5040             {
5041                 PEPD
5042             })
5043             OperationRegion (PWKE, PCI_Config, 0x62, 0x04)
5044             Field (PWKE, DWordAcc, NoLock, Preserve)
5045             {
5046                     ,   1, 
5047                 PWUC,   8
5048             }
5049
5050             Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
5051             {
5052                 If (Arg0)
5053                 {
5054                     PWUC = Ones
5055                 }
5056                 Else
5057                 {
5058                     PWUC = Zero
5059                 }
5060             }
5061
5062             Device (HUBN)
5063             {
5064                 Name (_ADR, Zero)  // _ADR: Address
5065                 Device (PR01)
5066                 {
5067                     Name (_ADR, One)  // _ADR: Address
5068                     Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5069                     {
5070                         0xFF, 
5071                         Zero, 
5072                         Zero, 
5073                         Zero
5074                     })
5075                     Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5076                     {
5077                         ToPLD (
5078                             PLD_Revision       = 0x1,
5079                             PLD_IgnoreColor    = 0x1,
5080                             PLD_Red            = 0x0,
5081                             PLD_Green          = 0x0,
5082                             PLD_Blue           = 0x0,
5083                             PLD_Width          = 0x0,
5084                             PLD_Height         = 0x0,
5085                             PLD_UserVisible    = 0x0,
5086                             PLD_Dock           = 0x0,
5087                             PLD_Lid            = 0x0,
5088                             PLD_Panel          = "UNKNOWN",
5089                             PLD_VerticalPosition = "UPPER",
5090                             PLD_HorizontalPosition = "LEFT",
5091                             PLD_Shape          = "UNKNOWN",
5092                             PLD_GroupOrientation = 0x0,
5093                             PLD_GroupToken     = 0x0,
5094                             PLD_GroupPosition  = 0x0,
5095                             PLD_Bay            = 0x0,
5096                             PLD_Ejectable      = 0x0,
5097                             PLD_EjectRequired  = 0x0,
5098                             PLD_CabinetNumber  = 0x0,
5099                             PLD_CardCageNumber = 0x0,
5100                             PLD_Reference      = 0x0,
5101                             PLD_Rotation       = 0x0,
5102                             PLD_Order          = 0x0,
5103                             PLD_VerticalOffset = 0x0,
5104                             PLD_HorizontalOffset = 0x0)
5105
5106                     })
5107                     Device (PR11)
5108                     {
5109                         Name (_ADR, One)  // _ADR: Address
5110                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5111                         {
5112                             0xFF, 
5113                             0xFF, 
5114                             Zero, 
5115                             Zero
5116                         })
5117                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5118                         {
5119                             ToPLD (
5120                                 PLD_Revision       = 0x1,
5121                                 PLD_IgnoreColor    = 0x1,
5122                                 PLD_Red            = 0x0,
5123                                 PLD_Green          = 0x0,
5124                                 PLD_Blue           = 0x0,
5125                                 PLD_Width          = 0x0,
5126                                 PLD_Height         = 0x0,
5127                                 PLD_UserVisible    = 0x1,
5128                                 PLD_Dock           = 0x0,
5129                                 PLD_Lid            = 0x0,
5130                                 PLD_Panel          = "FRONT",
5131                                 PLD_VerticalPosition = "",
5132                                 PLD_HorizontalPosition = "LEFT",
5133                                 PLD_Shape          = "UNKNOWN",
5134                                 PLD_GroupOrientation = 0x0,
5135                                 PLD_GroupToken     = 0x0,
5136                                 PLD_GroupPosition  = 0x0,
5137                                 PLD_Bay            = 0x0,
5138                                 PLD_Ejectable      = 0x0,
5139                                 PLD_EjectRequired  = 0x0,
5140                                 PLD_CabinetNumber  = 0x0,
5141                                 PLD_CardCageNumber = 0x0,
5142                                 PLD_Reference      = 0x0,
5143                                 PLD_Rotation       = 0x0,
5144                                 PLD_Order          = 0x0,
5145                                 PLD_VerticalOffset = 0x0,
5146                                 PLD_HorizontalOffset = 0x0)
5147
5148                         })
5149                     }
5150
5151                     Device (PR12)
5152                     {
5153                         Name (_ADR, 0x02)  // _ADR: Address
5154                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5155                         {
5156                             0xFF, 
5157                             0xFF, 
5158                             Zero, 
5159                             Zero
5160                         })
5161                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5162                         {
5163                             ToPLD (
5164                                 PLD_Revision       = 0x1,
5165                                 PLD_IgnoreColor    = 0x1,
5166                                 PLD_Red            = 0x0,
5167                                 PLD_Green          = 0x0,
5168                                 PLD_Blue           = 0x0,
5169                                 PLD_Width          = 0x0,
5170                                 PLD_Height         = 0x0,
5171                                 PLD_UserVisible    = 0x1,
5172                                 PLD_Dock           = 0x0,
5173                                 PLD_Lid            = 0x0,
5174                                 PLD_Panel          = "FRONT",
5175                                 PLD_VerticalPosition = "",
5176                                 PLD_HorizontalPosition = "CENTER",
5177                                 PLD_Shape          = "UNKNOWN",
5178                                 PLD_GroupOrientation = 0x0,
5179                                 PLD_GroupToken     = 0x0,
5180                                 PLD_GroupPosition  = 0x0,
5181                                 PLD_Bay            = 0x0,
5182                                 PLD_Ejectable      = 0x0,
5183                                 PLD_EjectRequired  = 0x0,
5184                                 PLD_CabinetNumber  = 0x0,
5185                                 PLD_CardCageNumber = 0x0,
5186                                 PLD_Reference      = 0x0,
5187                                 PLD_Rotation       = 0x0,
5188                                 PLD_Order          = 0x0,
5189                                 PLD_VerticalOffset = 0x0,
5190                                 PLD_HorizontalOffset = 0x0)
5191
5192                         })
5193                     }
5194
5195                     Device (PR13)
5196                     {
5197                         Name (_ADR, 0x03)  // _ADR: Address
5198                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5199                         {
5200                             0xFF, 
5201                             0xFF, 
5202                             Zero, 
5203                             Zero
5204                         })
5205                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5206                         {
5207                             ToPLD (
5208                                 PLD_Revision       = 0x1,
5209                                 PLD_IgnoreColor    = 0x1,
5210                                 PLD_Red            = 0x0,
5211                                 PLD_Green          = 0x0,
5212                                 PLD_Blue           = 0x0,
5213                                 PLD_Width          = 0x0,
5214                                 PLD_Height         = 0x0,
5215                                 PLD_UserVisible    = 0x1,
5216                                 PLD_Dock           = 0x0,
5217                                 PLD_Lid            = 0x0,
5218                                 PLD_Panel          = "FRONT",
5219                                 PLD_VerticalPosition = "",
5220                                 PLD_HorizontalPosition = "CENTER",
5221                                 PLD_Shape          = "UNKNOWN",
5222                                 PLD_GroupOrientation = 0x0,
5223                                 PLD_GroupToken     = 0x0,
5224                                 PLD_GroupPosition  = 0x0,
5225                                 PLD_Bay            = 0x0,
5226                                 PLD_Ejectable      = 0x0,
5227                                 PLD_EjectRequired  = 0x0,
5228                                 PLD_CabinetNumber  = 0x0,
5229                                 PLD_CardCageNumber = 0x0,
5230                                 PLD_Reference      = 0x0,
5231                                 PLD_Rotation       = 0x0,
5232                                 PLD_Order          = 0x0,
5233                                 PLD_VerticalOffset = 0x0,
5234                                 PLD_HorizontalOffset = 0x0)
5235
5236                         })
5237                     }
5238
5239                     Device (PR14)
5240                     {
5241                         Name (_ADR, 0x04)  // _ADR: Address
5242                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5243                         {
5244                             0xFF, 
5245                             0xFF, 
5246                             Zero, 
5247                             Zero
5248                         })
5249                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5250                         {
5251                             ToPLD (
5252                                 PLD_Revision       = 0x1,
5253                                 PLD_IgnoreColor    = 0x1,
5254                                 PLD_Red            = 0x0,
5255                                 PLD_Green          = 0x0,
5256                                 PLD_Blue           = 0x0,
5257                                 PLD_Width          = 0x0,
5258                                 PLD_Height         = 0x0,
5259                                 PLD_UserVisible    = 0x1,
5260                                 PLD_Dock           = 0x0,
5261                                 PLD_Lid            = 0x0,
5262                                 PLD_Panel          = "FRONT",
5263                                 PLD_VerticalPosition = "",
5264                                 PLD_HorizontalPosition = "RIGHT",
5265                                 PLD_Shape          = "UNKNOWN",
5266                                 PLD_GroupOrientation = 0x0,
5267                                 PLD_GroupToken     = 0x0,
5268                                 PLD_GroupPosition  = 0x0,
5269                                 PLD_Bay            = 0x0,
5270                                 PLD_Ejectable      = 0x0,
5271                                 PLD_EjectRequired  = 0x0,
5272                                 PLD_CabinetNumber  = 0x0,
5273                                 PLD_CardCageNumber = 0x0,
5274                                 PLD_Reference      = 0x0,
5275                                 PLD_Rotation       = 0x0,
5276                                 PLD_Order          = 0x0,
5277                                 PLD_VerticalOffset = 0x0,
5278                                 PLD_HorizontalOffset = 0x0)
5279
5280                         })
5281                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5282                         {
5283                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5284                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5285                             {
5286                                 While (One)
5287                                 {
5288                                     T_0 = ToInteger (Arg2)
5289                                     If ((T_0 == Zero))
5290                                     {
5291                                         If ((Arg1 == One))
5292                                         {
5293                                             Return (Buffer (One)
5294                                             {
5295                                                  0x07                                             /* . */
5296                                             })
5297                                         }
5298                                         Else
5299                                         {
5300                                             Return (Buffer (One)
5301                                             {
5302                                                  0x00                                             /* . */
5303                                             })
5304                                         }
5305                                     }
5306                                     Else
5307                                     {
5308                                         If ((T_0 == One))
5309                                         {
5310                                             If ((SDGV == 0xFF))
5311                                             {
5312                                                 Return (Zero)
5313                                             }
5314                                             Else
5315                                             {
5316                                                 Return (One)
5317                                             }
5318                                         }
5319                                         Else
5320                                         {
5321                                             If ((T_0 == 0x02))
5322                                             {
5323                                                 Return (SDGV) /* \SDGV */
5324                                             }
5325                                         }
5326                                     }
5327
5328                                     Break
5329                                 }
5330                             }
5331
5332                             Return (Zero)
5333                         }
5334                     }
5335
5336                     Device (PR15)
5337                     {
5338                         Name (_ADR, 0x05)  // _ADR: Address
5339                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5340                         {
5341                             0xFF, 
5342                             0xFF, 
5343                             Zero, 
5344                             Zero
5345                         })
5346                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5347                         {
5348                             ToPLD (
5349                                 PLD_Revision       = 0x1,
5350                                 PLD_IgnoreColor    = 0x1,
5351                                 PLD_Red            = 0x0,
5352                                 PLD_Green          = 0x0,
5353                                 PLD_Blue           = 0x0,
5354                                 PLD_Width          = 0x0,
5355                                 PLD_Height         = 0x0,
5356                                 PLD_UserVisible    = 0x1,
5357                                 PLD_Dock           = 0x0,
5358                                 PLD_Lid            = 0x0,
5359                                 PLD_Panel          = "UNKNOWN",
5360                                 PLD_VerticalPosition = "LOWER",
5361                                 PLD_HorizontalPosition = "RIGHT",
5362                                 PLD_Shape          = "UNKNOWN",
5363                                 PLD_GroupOrientation = 0x0,
5364                                 PLD_GroupToken     = 0x0,
5365                                 PLD_GroupPosition  = 0x0,
5366                                 PLD_Bay            = 0x0,
5367                                 PLD_Ejectable      = 0x0,
5368                                 PLD_EjectRequired  = 0x0,
5369                                 PLD_CabinetNumber  = 0x0,
5370                                 PLD_CardCageNumber = 0x0,
5371                                 PLD_Reference      = 0x0,
5372                                 PLD_Rotation       = 0x0,
5373                                 PLD_Order          = 0x0,
5374                                 PLD_VerticalOffset = 0x0,
5375                                 PLD_HorizontalOffset = 0x0)
5376
5377                         })
5378                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5379                         {
5380                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5381                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5382                             {
5383                                 While (One)
5384                                 {
5385                                     T_0 = ToInteger (Arg2)
5386                                     If ((T_0 == Zero))
5387                                     {
5388                                         If ((Arg1 == One))
5389                                         {
5390                                             Return (Buffer (One)
5391                                             {
5392                                                  0x07                                             /* . */
5393                                             })
5394                                         }
5395                                         Else
5396                                         {
5397                                             Return (Buffer (One)
5398                                             {
5399                                                  0x00                                             /* . */
5400                                             })
5401                                         }
5402                                     }
5403                                     Else
5404                                     {
5405                                         If ((T_0 == One))
5406                                         {
5407                                             If ((SDGV == 0xFF))
5408                                             {
5409                                                 Return (Zero)
5410                                             }
5411                                             Else
5412                                             {
5413                                                 Return (One)
5414                                             }
5415                                         }
5416                                         Else
5417                                         {
5418                                             If ((T_0 == 0x02))
5419                                             {
5420                                                 Return (SDGV) /* \SDGV */
5421                                             }
5422                                         }
5423                                     }
5424
5425                                     Break
5426                                 }
5427                             }
5428
5429                             Return (Zero)
5430                         }
5431                     }
5432
5433                     Device (PR16)
5434                     {
5435                         Name (_ADR, 0x06)  // _ADR: Address
5436                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5437                         {
5438                             0xFF, 
5439                             0xFF, 
5440                             Zero, 
5441                             Zero
5442                         })
5443                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5444                         {
5445                             ToPLD (
5446                                 PLD_Revision       = 0x1,
5447                                 PLD_IgnoreColor    = 0x1,
5448                                 PLD_Red            = 0x0,
5449                                 PLD_Green          = 0x0,
5450                                 PLD_Blue           = 0x0,
5451                                 PLD_Width          = 0x0,
5452                                 PLD_Height         = 0x0,
5453                                 PLD_UserVisible    = 0x1,
5454                                 PLD_Dock           = 0x0,
5455                                 PLD_Lid            = 0x0,
5456                                 PLD_Panel          = "UNKNOWN",
5457                                 PLD_VerticalPosition = "LOWER",
5458                                 PLD_HorizontalPosition = "RIGHT",
5459                                 PLD_Shape          = "UNKNOWN",
5460                                 PLD_GroupOrientation = 0x0,
5461                                 PLD_GroupToken     = 0x0,
5462                                 PLD_GroupPosition  = 0x0,
5463                                 PLD_Bay            = 0x0,
5464                                 PLD_Ejectable      = 0x0,
5465                                 PLD_EjectRequired  = 0x0,
5466                                 PLD_CabinetNumber  = 0x0,
5467                                 PLD_CardCageNumber = 0x0,
5468                                 PLD_Reference      = 0x0,
5469                                 PLD_Rotation       = 0x0,
5470                                 PLD_Order          = 0x0,
5471                                 PLD_VerticalOffset = 0x0,
5472                                 PLD_HorizontalOffset = 0x0)
5473
5474                         })
5475                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5476                         {
5477                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5478                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5479                             {
5480                                 While (One)
5481                                 {
5482                                     T_0 = ToInteger (Arg2)
5483                                     If ((T_0 == Zero))
5484                                     {
5485                                         If ((Arg1 == One))
5486                                         {
5487                                             Return (Buffer (One)
5488                                             {
5489                                                  0x07                                             /* . */
5490                                             })
5491                                         }
5492                                         Else
5493                                         {
5494                                             Return (Buffer (One)
5495                                             {
5496                                                  0x00                                             /* . */
5497                                             })
5498                                         }
5499                                     }
5500                                     Else
5501                                     {
5502                                         If ((T_0 == One))
5503                                         {
5504                                             If ((SDGV == 0xFF))
5505                                             {
5506                                                 Return (Zero)
5507                                             }
5508                                             Else
5509                                             {
5510                                                 Return (One)
5511                                             }
5512                                         }
5513                                         Else
5514                                         {
5515                                             If ((T_0 == 0x02))
5516                                             {
5517                                                 Return (SDGV) /* \SDGV */
5518                                             }
5519                                         }
5520                                     }
5521
5522                                     Break
5523                                 }
5524                             }
5525
5526                             Return (Zero)
5527                         }
5528                     }
5529
5530                     Device (PR17)
5531                     {
5532                         Name (_ADR, 0x07)  // _ADR: Address
5533                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5534                         {
5535                             0xFF, 
5536                             0xFF, 
5537                             Zero, 
5538                             Zero
5539                         })
5540                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5541                         {
5542                             ToPLD (
5543                                 PLD_Revision       = 0x1,
5544                                 PLD_IgnoreColor    = 0x1,
5545                                 PLD_Red            = 0x0,
5546                                 PLD_Green          = 0x0,
5547                                 PLD_Blue           = 0x0,
5548                                 PLD_Width          = 0x0,
5549                                 PLD_Height         = 0x0,
5550                                 PLD_UserVisible    = 0x1,
5551                                 PLD_Dock           = 0x0,
5552                                 PLD_Lid            = 0x0,
5553                                 PLD_Panel          = "UNKNOWN",
5554                                 PLD_VerticalPosition = "LOWER",
5555                                 PLD_HorizontalPosition = "RIGHT",
5556                                 PLD_Shape          = "UNKNOWN",
5557                                 PLD_GroupOrientation = 0x0,
5558                                 PLD_GroupToken     = 0x0,
5559                                 PLD_GroupPosition  = 0x0,
5560                                 PLD_Bay            = 0x0,
5561                                 PLD_Ejectable      = 0x0,
5562                                 PLD_EjectRequired  = 0x0,
5563                                 PLD_CabinetNumber  = 0x0,
5564                                 PLD_CardCageNumber = 0x0,
5565                                 PLD_Reference      = 0x0,
5566                                 PLD_Rotation       = 0x0,
5567                                 PLD_Order          = 0x0,
5568                                 PLD_VerticalOffset = 0x0,
5569                                 PLD_HorizontalOffset = 0x0)
5570
5571                         })
5572                         Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
5573                         {
5574                             Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
5575                             If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8")))
5576                             {
5577                                 While (One)
5578                                 {
5579                                     T_0 = ToInteger (Arg2)
5580                                     If ((T_0 == Zero))
5581                                     {
5582                                         If ((Arg1 == One))
5583                                         {
5584                                             Return (Buffer (One)
5585                                             {
5586                                                  0x07                                             /* . */
5587                                             })
5588                                         }
5589                                         Else
5590                                         {
5591                                             Return (Buffer (One)
5592                                             {
5593                                                  0x00                                             /* . */
5594                                             })
5595                                         }
5596                                     }
5597                                     Else
5598                                     {
5599                                         If ((T_0 == One))
5600                                         {
5601                                             If ((SDGV == 0xFF))
5602                                             {
5603                                                 Return (Zero)
5604                                             }
5605                                             Else
5606                                             {
5607                                                 Return (One)
5608                                             }
5609                                         }
5610                                         Else
5611                                         {
5612                                             If ((T_0 == 0x02))
5613                                             {
5614                                                 Return (SDGV) /* \SDGV */
5615                                             }
5616                                         }
5617                                     }
5618
5619                                     Break
5620                                 }
5621                             }
5622
5623                             Return (Zero)
5624                         }
5625                     }
5626
5627                     Device (PR18)
5628                     {
5629                         Name (_ADR, 0x08)  // _ADR: Address
5630                         Name (_UPC, Package (0x04)  // _UPC: USB Port Capabilities
5631                         {
5632                             0xFF, 
5633                             0xFF, 
5634                             Zero, 
5635                             Zero
5636                         })
5637                         Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
5638                         {
5639                             ToPLD (
5640                                 PLD_Revision       = 0x1,
5641                                 PLD_IgnoreColor    = 0x1,
5642                                 PLD_Red            = 0x0,
5643                                 PLD_Green          = 0x0,
5644                                 PLD_Blue           = 0x0,
5645                                 PLD_Width          = 0x0,
5646                                 PLD_Height         = 0x0,
5647                                 PLD_UserVisible    = 0x1,
5648                                 PLD_Dock           = 0x0,
5649                                 PLD_Lid            = 0x0,
5650                                 PLD_Panel          = "UNKNOWN",
5651                                 PLD_VerticalPosition = "LOWER",
5652                                 PLD_HorizontalPosition = "RIGHT",
5653                                 PLD_Shape          = "UNKNOWN",
5654                                 PLD_GroupOrientation = 0x0,
5655                                 PLD_GroupToken     = 0x0,
5656                                 PLD_GroupPosition  = 0x0,
5657                                 PLD_Bay            = 0x0,
5658                                 PLD_Ejectable      = 0x0,
5659                                 PLD_EjectRequired  = 0x0,
5660                                 PLD_CabinetNumber  = 0x0,
5661                                 PLD_CardCageNumber = 0x0,
5662                                 PLD_Reference      = 0x0,
5663                                 PLD_Rotation       = 0x0,
5664                                 PLD_Order          = 0x0,
5665                                 PLD_VerticalOffset = 0x0,
5666                                 PLD_HorizontalOffset = 0x0)
5667
5668                         })
5669                     }
5670                 }
5671             }
5672
5673             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
5674             OperationRegion (USBR, PCI_Config, 0x54, 0x04)
5675             Field (USBR, WordAcc, NoLock, Preserve)
5676             {
5677                 Offset (0x01), 
5678                 PMEE,   1, 
5679                     ,   6, 
5680                 PMES,   1
5681             }
5682
5683             Method (_STA, 0, NotSerialized)  // _STA: Status
5684             {
5685                 If ((XHCI == Zero))
5686                 {
5687                     Return (0x0F)
5688                 }
5689                 Else
5690                 {
5691                     Return (Zero)
5692                 }
5693             }
5694
5695             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
5696             {
5697             }
5698
5699             Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
5700             {
5701                 Return (Zero)
5702             }
5703
5704             Method (_PR3, 0, NotSerialized)  // _PR3: Power Resources for D3hot
5705             {
5706                 Return (Package (0x01)
5707                 {
5708                     USBC
5709                 })
5710             }
5711         }
5712
5713         Device (SEC0)
5714         {
5715             Name (_ADR, 0x001A0000)  // _ADR: Address
5716             Name (_DEP, Package (0x01)  // _DEP: Dependencies
5717             {
5718                 PEPD
5719             })
5720             Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
5721             OperationRegion (PMEB, PCI_Config, 0x84, 0x04)
5722             Field (PMEB, WordAcc, NoLock, Preserve)
5723             {
5724                 Offset (0x01), 
5725                 PMEE,   1, 
5726                     ,   6, 
5727                 PMES,   1
5728             }
5729
5730             Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
5731             {
5732             }
5733
5734             Name (RBUF, ResourceTemplate ()
5735             {
5736                 Memory32Fixed (ReadWrite,
5737                     0x00000000,         // Address Base
5738                     0x00000000,         // Address Length
5739                     _Y09)
5740             })
5741             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
5742             {
5743                 If ((PAVP == 0x02))
5744                 {
5745                     CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._BAS, B0BA)  // _BAS: Base Address
5746                     CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._LEN, B0LN)  // _LEN: Length
5747                     B0BA = PAVB /* \PAVB */
5748                     B0LN = PAVL /* \PAVL */
5749                     Return (RBUF) /* \_SB_.PCI0.SEC0.RBUF */
5750                 }
5751
5752                 Return (ResourceTemplate ()
5753                 {
5754                 })
5755             }
5756         }
5757     }
5758
5759     Scope (_PR)
5760     {
5761         Processor (CPU0, 0x01, 0x00000000, 0x00) {}
5762         Processor (CPU1, 0x02, 0x00000000, 0x00) {}
5763         Processor (CPU2, 0x03, 0x00000000, 0x00) {}
5764         Processor (CPU3, 0x04, 0x00000000, 0x00) {}
5765     }
5766
5767     Mutex (MUTX, 0x00)
5768     OperationRegion (PRT0, SystemIO, 0x80, 0x04)
5769     Field (PRT0, DWordAcc, Lock, Preserve)
5770     {
5771         P80H,   32
5772     }
5773
5774     Method (P8XH, 2, Serialized)
5775     {
5776         If ((Arg0 == Zero))
5777         {
5778             P80D = ((P80D & 0xFFFFFF00) | Arg1)
5779         }
5780
5781         If ((Arg0 == One))
5782         {
5783             P80D = ((P80D & 0xFFFF00FF) | (Arg1 << 0x08))
5784         }
5785
5786         If ((Arg0 == 0x02))
5787         {
5788             P80D = ((P80D & 0xFF00FFFF) | (Arg1 << 0x10))
5789         }
5790
5791         If ((Arg0 == 0x03))
5792         {
5793             P80D = ((P80D & 0x00FFFFFF) | (Arg1 << 0x18))
5794         }
5795
5796         P80H = P80D /* \P80D */
5797     }
5798
5799     OperationRegion (SPRT, SystemIO, 0xB2, 0x02)
5800     Field (SPRT, ByteAcc, Lock, Preserve)
5801     {
5802         SSMP,   8
5803     }
5804
5805     Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
5806     {
5807         GPIC = Arg0
5808         PICM = Arg0
5809     }
5810
5811     OperationRegion (SWC0, SystemIO, 0x0610, 0x0F)
5812     Field (SWC0, ByteAcc, NoLock, Preserve)
5813     {
5814         G1S,    8, 
5815         Offset (0x04), 
5816         G1E,    8, 
5817         Offset (0x0A), 
5818         G1S2,   8, 
5819         G1S3,   8
5820     }
5821
5822     OperationRegion (SWC1, SystemIO, PMBS, 0x2C)
5823     Field (SWC1, DWordAcc, NoLock, Preserve)
5824     {
5825         Offset (0x20), 
5826         G0S,    32, 
5827         Offset (0x28), 
5828         G0EN,   32
5829     }
5830
5831     Method (PPTS, 1, NotSerialized)
5832     {
5833         P80D = Zero
5834         P8XH (Zero, Arg0)
5835         G1S3 = Ones
5836         G1S2 = Ones
5837         G1S = One
5838         G1E = One
5839         G0S = Ones
5840         If (CondRefOf (TCGM))
5841         {
5842             \_SB.PCI0.LPCB.TPM.PTS (Arg0)
5843         }
5844     }
5845
5846     Method (PWAK, 1, Serialized)
5847     {
5848         P8XH (One, 0xAB)
5849         If (NEXP)
5850         {
5851             If ((OSCC & 0x02))
5852             {
5853                 \_SB.PCI0.NHPG ()
5854             }
5855
5856             If ((OSCC & 0x04))
5857             {
5858                 \_SB.PCI0.NPME ()
5859             }
5860         }
5861
5862         If (((Arg0 == 0x03) || (Arg0 == 0x04)))
5863         {
5864             If ((PFLV == FMBL))
5865             {
5866                 If ((Arg0 == 0x04))
5867                 {
5868                     PNOT ()
5869                 }
5870             }
5871
5872             If ((CFGD & 0x01000000)) {}
5873             If ((OSYS == 0x07D2))
5874             {
5875                 If ((CFGD & One))
5876                 {
5877                     If ((\_PR.CPU0._PPC > Zero))
5878                     {
5879                         \_PR.CPU0._PPC -= One
5880                         PNOT ()
5881                         \_PR.CPU0._PPC += One
5882                         PNOT ()
5883                     }
5884                     Else
5885                     {
5886                         \_PR.CPU0._PPC += One
5887                         PNOT ()
5888                         \_PR.CPU0._PPC -= One
5889                         PNOT ()
5890                     }
5891                 }
5892             }
5893         }
5894     }
5895
5896     Method (PNOT, 0, Serialized)
5897     {
5898         If (MPEN)
5899         {
5900             If ((PDC0 & 0x08))
5901             {
5902                 Notify (\_PR.CPU0, 0x80) // Performance Capability Change
5903                 If ((PDC0 & 0x10))
5904                 {
5905                     Sleep (0x64)
5906                     Notify (\_PR.CPU0, 0x81) // C-State Change
5907                 }
5908             }
5909
5910             If ((PDC1 & 0x08))
5911             {
5912                 Notify (\_PR.CPU1, 0x80) // Performance Capability Change
5913                 If ((PDC1 & 0x10))
5914                 {
5915                     Sleep (0x64)
5916                     Notify (\_PR.CPU1, 0x81) // C-State Change
5917                 }
5918             }
5919
5920             If ((PDC2 & 0x08))
5921             {
5922                 Notify (\_PR.CPU2, 0x80) // Performance Capability Change
5923                 If ((PDC2 & 0x10))
5924                 {
5925                     Sleep (0x64)
5926                     Notify (\_PR.CPU2, 0x81) // C-State Change
5927                 }
5928             }
5929
5930             If ((PDC3 & 0x08))
5931             {
5932                 Notify (\_PR.CPU3, 0x80) // Performance Capability Change
5933                 If ((PDC3 & 0x10))
5934                 {
5935                     Sleep (0x64)
5936                     Notify (\_PR.CPU3, 0x81) // C-State Change
5937                 }
5938             }
5939         }
5940         Else
5941         {
5942             Notify (\_PR.CPU0, 0x80) // Performance Capability Change
5943             Sleep (0x64)
5944             Notify (\_PR.CPU0, 0x81) // C-State Change
5945         }
5946     }
5947
5948     Scope (_SB)
5949     {
5950         Name (CRTT, 0x6E)
5951         Name (ACTT, 0x55)
5952         Name (SCR0, 0x0102)
5953         Name (SCR1, 0x0102)
5954         Name (SCR2, 0x0102)
5955         Name (SCR3, 0x0102)
5956         Name (GCR0, 0x46)
5957         Name (GCR1, 0x46)
5958         Name (GCR2, 0x46)
5959         Name (GCR3, 0x46)
5960         Name (GCR4, 0x46)
5961         Name (PST0, 0x3C)
5962         Name (PST1, 0x3C)
5963         Name (PST2, 0x3C)
5964         Name (PST3, 0x3C)
5965         Name (PST4, 0x3C)
5966         Name (LPMV, 0x03)
5967         Name (PDBG, Zero)
5968         Name (PDPM, One)
5969         Name (PDBP, One)
5970         Name (DLPO, Package (0x06)
5971         {
5972             One, 
5973             One, 
5974             One, 
5975             0x19, 
5976             One, 
5977             One
5978         })
5979         Name (BRQD, Zero)
5980         Name (PSC1, Zero)
5981         Name (PSC2, Zero)
5982         Name (PSC3, Zero)
5983         Name (PSA1, Zero)
5984         Name (PSA2, Zero)
5985         Name (PSA3, Zero)
5986         Method (_INI, 0, NotSerialized)  // _INI: Initialize
5987         {
5988             CRTT = DPCT /* \DPCT */
5989             ACTT = DPPT /* \DPPT */
5990             GCR0 = DGC0 /* \DGC0 */
5991             GCR1 = DGC1 /* \DGC1 */
5992             GCR2 = DGC2 /* \DGC2 */
5993             GCR3 = DGC3 /* \DGC3 */
5994             GCR4 = DGC4 /* \DGC4 */
5995             PST0 = DGP0 /* \DGP0 */
5996             PST1 = DGP1 /* \DGP1 */
5997             PST2 = DGP2 /* \DGP2 */
5998             PST3 = DGP3 /* \DGP3 */
5999             PST4 = DGP4 /* \DGP4 */
6000             SCR0 = DSC0 /* \DSC0 */
6001             SCR1 = DSC1 /* \DSC1 */
6002             SCR2 = DSC2 /* \DSC2 */
6003             SCR3 = DSC3 /* \DSC3 */
6004             LPMV = DLPM /* \DLPM */
6005             PDBG = DDBG /* \DDBG */
6006             Index (DLPO, One) = LPOE /* \LPOE */
6007             Index (DLPO, 0x02) = LPPS /* \LPPS */
6008             Index (DLPO, 0x03) = LPST /* \LPST */
6009             Index (DLPO, 0x04) = LPPC /* \LPPC */
6010             Index (DLPO, 0x05) = LPPF /* \LPPF */
6011             PDPM = DPME /* \DPME */
6012         }
6013
6014         Scope (PCI0)
6015         {
6016             Method (_INI, 0, NotSerialized)  // _INI: Initialize
6017             {
6018                 OSYS = 0x07D0
6019                 If (CondRefOf (\_OSI, Local0))
6020                 {
6021                     If (_OSI ("Windows 2001"))
6022                     {
6023                         OSYS = 0x07D1
6024                     }
6025
6026                     If (_OSI ("Windows 2001 SP1"))
6027                     {
6028                         OSYS = 0x07D1
6029                     }
6030
6031                     If (_OSI ("Windows 2001 SP2"))
6032                     {
6033                         OSYS = 0x07D2
6034                     }
6035
6036                     If (_OSI ("Windows 2006"))
6037                     {
6038                         OSYS = 0x07D6
6039                     }
6040
6041                     If (_OSI ("Windows 2009"))
6042                     {
6043                         OSYS = 0x07D9
6044                     }
6045
6046                     If (_OSI ("Windows 2012"))
6047                     {
6048                         OSYS = 0x07DC
6049                     }
6050
6051                     If (_OSI ("Windows 2013"))
6052                     {
6053                         OSYS = 0x07DD
6054                     }
6055                 }
6056             }
6057
6058             Method (NHPG, 0, Serialized)
6059             {
6060             }
6061
6062             Method (NPME, 0, Serialized)
6063             {
6064             }
6065         }
6066
6067         Device (GPED)
6068         {
6069             Name (_ADR, Zero)  // _ADR: Address
6070             Name (_HID, "INT0002" /* Virtual GPIO Controller */)  // _HID: Hardware ID
6071             Name (_CID, "INT0002" /* Virtual GPIO Controller */)  // _CID: Compatible ID
6072             Name (_DDN, "Virtual GPIO controller")  // _DDN: DOS Device Name
6073             Name (_UID, One)  // _UID: Unique ID
6074             Name (INST, One)
6075             Name (XTMP, Zero)
6076             OperationRegion (SCIS, SystemMemory, 0xFED030C0, 0x04)
6077             Field (SCIS, DWordAcc, NoLock, Preserve)
6078             {
6079                 LGBE,   1, 
6080                 LHAD,   1, 
6081                 LATA,   1, 
6082                 LDIO,   1, 
6083                 LARD,   1, 
6084                 LIO1,   1, 
6085                 LCEP,   1, 
6086                 LANB,   1, 
6087                 LHCI,   1, 
6088                 LOTG,   1, 
6089                 LECI,   1, 
6090                 LHSI,   1
6091             }
6092
6093             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
6094             {
6095                 Return (SOCS) /* \SOCS */
6096             }
6097
6098             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
6099             {
6100                 If ((Arg0 == ToUUID ("8b38b469-6f95-4b08-9b02-2defcc2d2c35")))
6101                 {
6102                     If ((Arg2 == Zero))
6103                     {
6104                         If ((Arg1 == One))
6105                         {
6106                             Return (Buffer (One)
6107                             {
6108                                  0x03                                             /* . */
6109                             })
6110                         }
6111                     }
6112
6113                     If ((Arg2 == One))
6114                     {
6115                         Return ((PMBS + 0x20))
6116                     }
6117
6118                     Return (Zero)
6119                 }
6120                 Else
6121                 {
6122                     Return (Buffer (One)
6123                     {
6124                          0x00                                             /* . */
6125                     })
6126                 }
6127             }
6128
6129             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
6130             {
6131                 Name (RBUF, ResourceTemplate ()
6132                 {
6133                     Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
6134                     {
6135                         0x00000009,
6136                     }
6137                 })
6138                 Return (RBUF) /* \_SB_.GPED._CRS.RBUF */
6139             }
6140
6141             Method (_STA, 0, NotSerialized)  // _STA: Status
6142             {
6143                 Return (0x0F)
6144             }
6145
6146             Method (_AEI, 0, NotSerialized)  // _AEI: ACPI Event Interrupts
6147             {
6148                 Name (RBUF, ResourceTemplate ()
6149                 {
6150                     GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullDown, 0x0000,
6151                         "\\_SB.GPED", 0x00, ResourceConsumer, ,
6152                         )
6153                         {   // Pin list
6154                             0x0002
6155                         }
6156                 })
6157                 Return (RBUF) /* \_SB_.GPED._AEI.RBUF */
6158             }
6159
6160             Method (_L02, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
6161             {
6162                 If ((XHCI == Zero))
6163                 {
6164                     If ((^^PCI0.EHC1.PMES == One))
6165                     {
6166                         ^^PCI0.EHC1.PMEE = Zero
6167                         Local0 = ^^PCI0.EHC1.PMEE /* \_SB_.PCI0.EHC1.PMEE */
6168                         Notify (^^PCI0.EHC1, 0x02) // Device Wake
6169                     }
6170                 }
6171                 Else
6172                 {
6173                     If ((SOCS > 0x05))
6174                     {
6175                         XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6176                         If ((XTMP == 0x8000))
6177                         {
6178                             Notify (^^PCI0.XHC1, 0x02) // Device Wake
6179                         }
6180                     }
6181                     Else
6182                     {
6183                         If ((SOCS > 0x02))
6184                         {
6185                             XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6186                             If ((XTMP == 0x8000))
6187                             {
6188                                 ^^PCI0.XHC1.PMCH = 0x81
6189                                 Notify (^^PCI0.XHC1, 0x02) // Device Wake
6190                             }
6191                         }
6192                         Else
6193                         {
6194                             XTMP = (^^PCI0.XHC1.PMCS & 0x0103)
6195                             If ((XTMP == 0x0103))
6196                             {
6197                                 ^^PCI0.XHC1.PMCS = 0x0100
6198                                 Sleep (0x0A)
6199                                 XTMP = (^^PCI0.XHC1.PMCS & 0x8000)
6200                                 If ((XTMP == 0x8000))
6201                                 {
6202                                     ^^PCI0.XHC1.PMCH = 0x81
6203                                 }
6204                                 Else
6205                                 {
6206                                     ^^PCI0.XHC1.PMCS = 0x0103
6207                                 }
6208
6209                                 Sleep (0x0A)
6210                                 Notify (^^PCI0.XHC1, 0x02) // Device Wake
6211                             }
6212                             Else
6213                             {
6214                                 ^^PCI0.XHC1.PMCH = 0x81
6215                                 Sleep (0x0A)
6216                             }
6217                         }
6218                     }
6219                 }
6220
6221                 If ((OTGM != Zero))
6222                 {
6223                     If ((^^PCI0.OTG1.PMES == One))
6224                     {
6225                         ADBG ("OTG wake")
6226                         ^^PCI0.OTG1.PMEE = Zero
6227                         ^^PCI0.OTG1.CPME = Zero
6228                         ^^PCI0.OTG1.U2EN = Zero
6229                         ^^PCI0.OTG1.U3EN = Zero
6230                         Notify (^^PCI0.OTG1, 0x02) // Device Wake
6231                     }
6232                 }
6233
6234                 If ((^^PCI0.SEC0.PMES == One))
6235                 {
6236                     ^^PCI0.SEC0.PMEE = Zero
6237                     Local0 = ^^PCI0.SEC0.PMEE /* \_SB_.PCI0.SEC0.PMEE */
6238                     Notify (^^PCI0.SEC0, 0x02) // Device Wake
6239                 }
6240             }
6241         }
6242
6243         Device (GPO0)
6244         {
6245             Name (_ADR, Zero)  // _ADR: Address
6246             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6247             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6248             Name (_DDN, "ValleyView General Purpose Input/Output (GPIO) controller")  // _DDN: DOS Device Name
6249             Name (_UID, One)  // _UID: Unique ID
6250             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
6251             {
6252                 Name (RBUF, ResourceTemplate ()
6253                 {
6254                     Memory32Fixed (ReadWrite,
6255                         0xFED0C000,         // Address Base
6256                         0x00001000,         // Address Length
6257                         )
6258                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6259                     {
6260                         0x00000031,
6261                     }
6262                 })
6263                 Return (RBUF) /* \_SB_.GPO0._CRS.RBUF */
6264             }
6265
6266             Method (_STA, 0, NotSerialized)  // _STA: Status
6267             {
6268                 Return (0x0F)
6269             }
6270
6271             Name (AVBL, Zero)
6272             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6273             {
6274                 If ((Arg0 == 0x08))
6275                 {
6276                     AVBL = Arg1
6277                 }
6278             }
6279
6280             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6281             Field (GPOP, ByteAcc, NoLock, Preserve)
6282             {
6283                 Connection (
6284                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6285                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6286                         )
6287                         {   // Pin list
6288                             0x0002
6289                         }
6290                 ), 
6291                 CCU2,   1, 
6292                 Connection (
6293                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6294                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6295                         )
6296                         {   // Pin list
6297                             0x0003
6298                         }
6299                 ), 
6300                 CCU3,   1, 
6301                 Connection (
6302                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6303                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6304                         )
6305                         {   // Pin list
6306                             0x005F
6307                         }
6308                 ), 
6309                 TCON,   1, 
6310                 Connection (
6311                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6312                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
6313                         )
6314                         {   // Pin list
6315                             0x0064
6316                         }
6317                 ), 
6318                 WWD3,   1
6319             }
6320         }
6321
6322         Device (GPO1)
6323         {
6324             Name (_ADR, Zero)  // _ADR: Address
6325             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6326             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6327             Name (_DDN, "ValleyView GPNCORE controller")  // _DDN: DOS Device Name
6328             Name (_UID, 0x02)  // _UID: Unique ID
6329             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
6330             {
6331                 Name (RBUF, ResourceTemplate ()
6332                 {
6333                     Memory32Fixed (ReadWrite,
6334                         0xFED0D000,         // Address Base
6335                         0x00001000,         // Address Length
6336                         )
6337                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6338                     {
6339                         0x00000030,
6340                     }
6341                 })
6342                 Return (RBUF) /* \_SB_.GPO1._CRS.RBUF */
6343             }
6344
6345             Name (AVBL, Zero)
6346             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6347             {
6348                 If ((Arg0 == 0x08))
6349                 {
6350                     AVBL = Arg1
6351                 }
6352             }
6353
6354             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6355             Field (GPOP, ByteAcc, NoLock, Preserve)
6356             {
6357                 Connection (
6358                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6359                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
6360                         )
6361                         {   // Pin list
6362                             0x000F
6363                         }
6364                 ), 
6365                 BST5,   1, 
6366                 Connection (
6367                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6368                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
6369                         )
6370                         {   // Pin list
6371                             0x001A
6372                         }
6373                 ), 
6374                 TCD3,   1
6375             }
6376
6377             Method (_STA, 0, NotSerialized)  // _STA: Status
6378             {
6379                 Return (0x0F)
6380             }
6381         }
6382
6383         Device (GPO2)
6384         {
6385             Name (_ADR, Zero)  // _ADR: Address
6386             Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _HID: Hardware ID
6387             Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */)  // _CID: Compatible ID
6388             Name (_DDN, "ValleyView GPSUS controller")  // _DDN: DOS Device Name
6389             Name (_UID, 0x03)  // _UID: Unique ID
6390             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
6391             {
6392                 Name (RBUF, ResourceTemplate ()
6393                 {
6394                     Memory32Fixed (ReadWrite,
6395                         0xFED0E000,         // Address Base
6396                         0x00001000,         // Address Length
6397                         )
6398                     Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
6399                     {
6400                         0x00000032,
6401                     }
6402                 })
6403                 Return (RBUF) /* \_SB_.GPO2._CRS.RBUF */
6404             }
6405
6406             Method (_STA, 0, NotSerialized)  // _STA: Status
6407             {
6408                 Return (0x0F)
6409             }
6410
6411             Method (_AEI, 0, NotSerialized)  // _AEI: ACPI Event Interrupts
6412             {
6413                 Name (FBUF, ResourceTemplate ()
6414                 {
6415                     GpioInt (Edge, ActiveBoth, SharedAndWake, PullUp, 0x0000,
6416                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6417                         )
6418                         {   // Pin list
6419                             0x0012
6420                         }
6421                 })
6422                 Return (FBUF) /* \_SB_.GPO2._AEI.FBUF */
6423             }
6424
6425             Name (BMUX, Buffer (0x03)
6426             {
6427                  0x00, 0x01, 0x00                                 /* ... */
6428             })
6429             CreateByteField (BMUX, Zero, BBBY)
6430             CreateByteField (BMUX, 0x02, DDDT)
6431             Method (_E12, 0, NotSerialized)  // _Exx: Edge-Triggered GPE
6432             {
6433                 If (((AVBL == One) && (^^GPO1.AVBL == One)))
6434                 {
6435                     If ((USID == One))
6436                     {
6437                         ^^GPO1.BST5 = Zero
6438                         Sleep (0x05)
6439                         BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */
6440                         DDDT &= 0x7F
6441                         ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */
6442                         MOTG = One
6443                         ^^PCI0.XHC1.PWOF ()
6444                     }
6445                     Else
6446                     {
6447                         BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */
6448                         DDDT |= 0x80
6449                         ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */
6450                         Sleep (0x05)
6451                         ^^GPO1.BST5 = One
6452                         Sleep (0x05)
6453                         MOTG = Zero
6454                         ^^PCI0.XHC1.PWON ()
6455                     }
6456                 }
6457             }
6458
6459             Name (BMBQ, Buffer (0x03)
6460             {
6461                  0x00, 0x01, 0x00                                 /* ... */
6462             })
6463             CreateByteField (BMBQ, Zero, BBBQ)
6464             CreateByteField (BMBQ, 0x02, DDBQ)
6465             Method (BOST, 1, NotSerialized)
6466             {
6467                 BMBQ = ^^I2C1.BQ01 /* \_SB_.I2C1.BQ01 */
6468                 If ((Arg0 == One))
6469                 {
6470                     DDBQ &= 0xCF
6471                     DDBQ |= 0x20
6472                 }
6473                 Else
6474                 {
6475                     DDBQ &= 0xCF
6476                     DDBQ |= 0x10
6477                 }
6478
6479                 ^^I2C1.BQ01 = BMBQ /* \_SB_.GPO2.BMBQ */
6480             }
6481
6482             Name (BUFC, Buffer (0x03)
6483             {
6484                  0x00, 0x01, 0x00                                 /* ... */
6485             })
6486             CreateByteField (BUFC, Zero, BYAT)
6487             CreateByteField (BUFC, 0x02, DATA)
6488             Name (AVBL, Zero)
6489             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
6490             {
6491                 If ((Arg0 == 0x08))
6492                 {
6493                     AVBL = Arg1
6494                 }
6495             }
6496
6497             OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C)
6498             Field (GPOP, ByteAcc, NoLock, Preserve)
6499             {
6500                 Connection (
6501                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6502                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6503                         )
6504                         {   // Pin list
6505                             0x0014
6506                         }
6507                 ), 
6508                 WFD3,   1, 
6509                 Connection (
6510                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
6511                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6512                         )
6513                         {   // Pin list
6514                             0x0001
6515                         }
6516                 ), 
6517                 MOTG,   1, 
6518                 Connection (
6519                     GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
6520                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
6521                         )
6522                         {   // Pin list
6523                             0x0012
6524                         }
6525                 ), 
6526                 USID,   1
6527             }
6528         }
6529
6530         Device (PEPD)
6531         {
6532             Name (_HID, "INT3396" /* Standard Power Management Controller */)  // _HID: Hardware ID
6533             Name (_CID, EisaId ("PNP0D80") /* Windows-compatible System Power Management Controller */)  // _CID: Compatible ID
6534             Name (_UID, One)  // _UID: Unique ID
6535             Name (PEPP, Zero)
6536             Name (DEVS, Package (0x01)
6537             {
6538                 Zero
6539             })
6540             Name (DEVX, Package (0x0E)
6541             {
6542                 Package (0x02)
6543                 {
6544                     "\\_SB.PCI0.XHC1", 
6545                     One
6546                 }, 
6547
6548                 Package (0x02)
6549                 {
6550                     "\\_SB.PCI0.GFX0", 
6551                     One
6552                 }, 
6553
6554                 Package (0x02)
6555                 {
6556                     "\\_SB.PCI0.GFX0.ISP0", 
6557                     One
6558                 }, 
6559
6560                 Package (0x02)
6561                 {
6562                     "\\_SB.PCI0.SEC0", 
6563                     One
6564                 }, 
6565
6566                 Package (0x02)
6567                 {
6568                     "\\_SB.I2C1", 
6569                     One
6570                 }, 
6571
6572                 Package (0x02)
6573                 {
6574                     "\\_SB.I2C2", 
6575                     One
6576                 }, 
6577
6578                 Package (0x02)
6579                 {
6580                     "\\_SB.I2C3", 
6581                     One
6582                 }, 
6583
6584                 Package (0x02)
6585                 {
6586                     "\\_SB.I2C4", 
6587                     One
6588                 }, 
6589
6590                 Package (0x02)
6591                 {
6592                     "\\_SB.I2C5", 
6593                     One
6594                 }, 
6595
6596                 Package (0x02)
6597                 {
6598                     "\\_SB.SDHA", 
6599                     One
6600                 }, 
6601
6602                 Package (0x02)
6603                 {
6604                     "\\_SB.SDHB", 
6605                     One
6606                 }, 
6607
6608                 Package (0x02)
6609                 {
6610                     "\\_SB.SDHC", 
6611                     One
6612                 }, 
6613
6614                 Package (0x02)
6615                 {
6616                     "\\_SB.URT1", 
6617                     One
6618                 }, 
6619
6620                 Package (0x02)
6621                 {
6622                     "\\_SB.URT2", 
6623                     One
6624                 }
6625             })
6626             Name (DEX1, Package (0x0D)
6627             {
6628                 Package (0x02)
6629                 {
6630                     "\\_SB.PCI0.XHC1", 
6631                     One
6632                 }, 
6633
6634                 Package (0x02)
6635                 {
6636                     "\\_SB.PCI0.GFX0", 
6637                     One
6638                 }, 
6639
6640                 Package (0x02)
6641                 {
6642                     "\\_SB.PCI0.GFX0.ISP0", 
6643                     One
6644                 }, 
6645
6646                 Package (0x02)
6647                 {
6648                     "\\_SB.PCI0.SEC0", 
6649                     One
6650                 }, 
6651
6652                 Package (0x02)
6653                 {
6654                     "\\_SB.I2C1", 
6655                     One
6656                 }, 
6657
6658                 Package (0x02)
6659                 {
6660                     "\\_SB.I2C2", 
6661                     One
6662                 }, 
6663
6664                 Package (0x02)
6665                 {
6666                     "\\_SB.I2C3", 
6667                     One
6668                 }, 
6669
6670                 Package (0x02)
6671                 {
6672                     "\\_SB.I2C4", 
6673                     One
6674                 }, 
6675
6676                 Package (0x02)
6677                 {
6678                     "\\_SB.SDHA", 
6679                     One
6680                 }, 
6681
6682                 Package (0x02)
6683                 {
6684                     "\\_SB.SDHB", 
6685                     One
6686                 }, 
6687
6688                 Package (0x02)
6689                 {
6690                     "\\_SB.SDHC", 
6691                     One
6692                 }, 
6693
6694                 Package (0x02)
6695                 {
6696                     "\\_SB.URT1", 
6697                     One
6698                 }, 
6699
6700                 Package (0x02)
6701                 {
6702                     "\\_SB.URT2", 
6703                     One
6704                 }
6705             })
6706             Name (DEX2, Package (0x0D)
6707             {
6708                 Package (0x02)
6709                 {
6710                     "\\_SB.PCI0.XHC1", 
6711                     One
6712                 }, 
6713
6714                 Package (0x02)
6715                 {
6716                     "\\_SB.PCI0.GFX0", 
6717                     One
6718                 }, 
6719
6720                 Package (0x02)
6721                 {
6722                     "\\_SB.PCI0.GFX0.ISP0", 
6723                     One
6724                 }, 
6725
6726                 Package (0x02)
6727                 {
6728                     "\\_SB.PCI0.SEC0", 
6729                     One
6730                 }, 
6731
6732                 Package (0x02)
6733                 {
6734                     "\\_SB.I2C1", 
6735                     One
6736                 }, 
6737
6738                 Package (0x02)
6739                 {
6740                     "\\_SB.I2C2", 
6741                     One
6742                 }, 
6743
6744                 Package (0x02)
6745                 {
6746                     "\\_SB.I2C3", 
6747                     One
6748                 }, 
6749
6750                 Package (0x02)
6751                 {
6752                     "\\_SB.I2C4", 
6753                     One
6754                 }, 
6755
6756                 Package (0x02)
6757                 {
6758                     "\\_SB.SDHA", 
6759                     One
6760                 }, 
6761
6762                 Package (0x02)
6763                 {
6764                     "\\_SB.SDHB", 
6765                     One
6766                 }, 
6767
6768                 Package (0x02)
6769                 {
6770                     "\\_SB.SDHD", 
6771                     One
6772                 }, 
6773
6774                 Package (0x02)
6775                 {
6776                     "\\_SB.URT1", 
6777                     One
6778                 }, 
6779
6780                 Package (0x02)
6781                 {
6782                     "\\_SB.URT2", 
6783                     One
6784                 }
6785             })
6786             Name (CDMP, Package (0x02) {})
6787             Name (DEVY, Package (0x13)
6788             {
6789                 Package (0x03)
6790                 {
6791                     "\\_PR.CPU0", 
6792                     One, 
6793                     Package (0x02)
6794                     {
6795                         Zero, 
6796                         Package (0x02)
6797                         {
6798                             0xFF, 
6799                             Zero
6800                         }
6801                     }
6802                 }, 
6803
6804                 Package (0x03)
6805                 {
6806                     "\\_PR.CPU1", 
6807                     One, 
6808                     Package (0x02)
6809                     {
6810                         Zero, 
6811                         Package (0x02)
6812                         {
6813                             0xFF, 
6814                             Zero
6815                         }
6816                     }
6817                 }, 
6818
6819                 Package (0x03)
6820                 {
6821                     "\\_PR.CPU2", 
6822                     One, 
6823                     Package (0x02)
6824                     {
6825                         Zero, 
6826                         Package (0x02)
6827                         {
6828                             0xFF, 
6829                             Zero
6830                         }
6831                     }
6832                 }, 
6833
6834                 Package (0x03)
6835                 {
6836                     "\\_PR.CPU3", 
6837                     One, 
6838                     Package (0x02)
6839                     {
6840                         Zero, 
6841                         Package (0x02)
6842                         {
6843                             0xFF, 
6844                             Zero
6845                         }
6846                     }
6847                 }, 
6848
6849                 Package (0x03)
6850                 {
6851                     "\\_SB.PCI0.GFX0", 
6852                     One, 
6853                     Package (0x02)
6854                     {
6855                         Zero, 
6856                         Package (0x02)
6857                         {
6858                             0xFF, 
6859                             0x03
6860                         }
6861                     }
6862                 }, 
6863
6864                 Package (0x03)
6865                 {
6866                     "\\_SB.PCI0.GFX0.ISP0", 
6867                     One, 
6868                     Package (0x02)
6869                     {
6870                         Zero, 
6871                         Package (0x02)
6872                         {
6873                             0xFF, 
6874                             0x03
6875                         }
6876                     }
6877                 }, 
6878
6879                 Package (0x03)
6880                 {
6881                     "\\_SB.I2C1", 
6882                     One, 
6883                     Package (0x05)
6884                     {
6885                         Zero, 
6886                         Package (0x02)
6887                         {
6888                             Zero, 
6889                             Zero
6890                         }, 
6891
6892                         Package (0x02)
6893                         {
6894                             One, 
6895                             0x03
6896                         }, 
6897
6898                         Package (0x02)
6899                         {
6900                             0x02, 
6901                             0x03
6902                         }, 
6903
6904                         Package (0x02)
6905                         {
6906                             0x03, 
6907                             0x03
6908                         }
6909                     }
6910                 }, 
6911
6912                 Package (0x03)
6913                 {
6914                     "\\_SB.I2C2", 
6915                     One, 
6916                     Package (0x05)
6917                     {
6918                         Zero, 
6919                         Package (0x02)
6920                         {
6921                             Zero, 
6922                             Zero
6923                         }, 
6924
6925                         Package (0x02)
6926                         {
6927                             One, 
6928                             0x03
6929                         }, 
6930
6931                         Package (0x02)
6932                         {
6933                             0x02, 
6934                             0x03
6935                         }, 
6936
6937                         Package (0x02)
6938                         {
6939                             0x03, 
6940                             0x03
6941                         }
6942                     }
6943                 }, 
6944
6945                 Package (0x03)
6946                 {
6947                     "\\_SB.I2C3", 
6948                     One, 
6949                     Package (0x05)
6950                     {
6951                         Zero, 
6952                         Package (0x02)
6953                         {
6954                             Zero, 
6955                             Zero
6956                         }, 
6957
6958                         Package (0x02)
6959                         {
6960                             One, 
6961                             0x03
6962                         }, 
6963
6964                         Package (0x02)
6965                         {
6966                             0x02, 
6967                             0x03
6968                         }, 
6969
6970                         Package (0x02)
6971                         {
6972                             0x03, 
6973                             0x03
6974                         }
6975                     }
6976                 }, 
6977
6978                 Package (0x03)
6979                 {
6980                     "\\_SB.I2C4", 
6981                     One, 
6982                     Package (0x05)
6983                     {
6984                         Zero, 
6985                         Package (0x02)
6986                         {
6987                             Zero, 
6988                             Zero
6989                         }, 
6990
6991                         Package (0x02)
6992                         {
6993                             One, 
6994                             0x03
6995                         }, 
6996
6997                         Package (0x02)
6998                         {
6999                             0x02, 
7000                             0x03
7001                         }, 
7002
7003                         Package (0x02)
7004                         {
7005                             0x03, 
7006                             0x03
7007                         }
7008                     }
7009                 }, 
7010
7011                 Package (0x03)
7012                 {
7013                     "\\_SB.I2C5", 
7014                     One, 
7015                     Package (0x05)
7016                     {
7017                         Zero, 
7018                         Package (0x02)
7019                         {
7020                             Zero, 
7021                             Zero
7022                         }, 
7023
7024                         Package (0x02)
7025                         {
7026                             One, 
7027                             0x03
7028                         }, 
7029
7030                         Package (0x02)
7031                         {
7032                             0x02, 
7033                             0x03
7034                         }, 
7035
7036                         Package (0x02)
7037                         {
7038                             0x03, 
7039                             0x03
7040                         }
7041                     }
7042                 }, 
7043
7044                 Package (0x03)
7045                 {
7046                     "\\_SB.PCI0.XHC1", 
7047                     One, 
7048                     Package (0x05)
7049                     {
7050                         Zero, 
7051                         Package (0x02)
7052                         {
7053                             Zero, 
7054                             0x03
7055                         }, 
7056
7057                         Package (0x02)
7058                         {
7059                             One, 
7060                             0x03
7061                         }, 
7062
7063                         Package (0x02)
7064                         {
7065                             0x02, 
7066                             0x03
7067                         }, 
7068
7069                         Package (0x02)
7070                         {
7071                             0x03, 
7072                             0x03
7073                         }
7074                     }
7075                 }, 
7076
7077                 Package (0x03)
7078                 {
7079                     "\\_SB.PCI0.SEC0", 
7080                     One, 
7081                     Package (0x05)
7082                     {
7083                         Zero, 
7084                         Package (0x02)
7085                         {
7086                             Zero, 
7087                             Zero
7088                         }, 
7089
7090                         Package (0x02)
7091                         {
7092                             One, 
7093                             0x03
7094                         }, 
7095
7096                         Package (0x02)
7097                         {
7098                             0x02, 
7099                             0x03
7100                         }, 
7101
7102                         Package (0x02)
7103                         {
7104                             0x03, 
7105                             0x03
7106                         }
7107                     }
7108                 }, 
7109
7110                 Package (0x03)
7111                 {
7112                     "\\_SB.LPEA", 
7113                     One, 
7114                     Package (0x05)
7115                     {
7116                         Zero, 
7117                         Package (0x02)
7118                         {
7119                             Zero, 
7120                             Zero
7121                         }, 
7122
7123                         Package (0x02)
7124                         {
7125                             One, 
7126                             Zero
7127                         }, 
7128
7129                         Package (0x02)
7130                         {
7131                             0x02, 
7132                             0x03
7133                         }, 
7134
7135                         Package (0x02)
7136                         {
7137                             0x03, 
7138                             0x03
7139                         }
7140                     }
7141                 }, 
7142
7143                 Package (0x03)
7144                 {
7145                     "\\_SB.SDHA", 
7146                     One, 
7147                     Package (0x05)
7148                     {
7149                         Zero, 
7150                         Package (0x02)
7151                         {
7152                             Zero, 
7153                             Zero
7154                         }, 
7155
7156                         Package (0x02)
7157                         {
7158                             One, 
7159                             0x03
7160                         }, 
7161
7162                         Package (0x02)
7163                         {
7164                             0x02, 
7165                             0x03
7166                         }, 
7167
7168                         Package (0x02)
7169                         {
7170                             0x03, 
7171                             0x03
7172                         }
7173                     }
7174                 }, 
7175
7176                 Package (0x03)
7177                 {
7178                     "\\_SB.SDHB", 
7179                     One, 
7180                     Package (0x05)
7181                     {
7182                         Zero, 
7183                         Package (0x02)
7184                         {
7185                             Zero, 
7186                             Zero
7187                         }, 
7188
7189                         Package (0x02)
7190                         {
7191                             One, 
7192                             0x03
7193                         }, 
7194
7195                         Package (0x02)
7196                         {
7197                             0x02, 
7198                             0x03
7199                         }, 
7200
7201                         Package (0x02)
7202                         {
7203                             0x03, 
7204                             0x03
7205                         }
7206                     }
7207                 }, 
7208
7209                 Package (0x03)
7210                 {
7211                     "\\_SB.SDHC", 
7212                     One, 
7213                     Package (0x05)
7214                     {
7215                         Zero, 
7216                         Package (0x02)
7217                         {
7218                             Zero, 
7219                             Zero
7220                         }, 
7221
7222                         Package (0x02)
7223                         {
7224                             One, 
7225                             0x03
7226                         }, 
7227
7228                         Package (0x02)
7229                         {
7230                             0x02, 
7231                             0x03
7232                         }, 
7233
7234                         Package (0x02)
7235                         {
7236                             0x03, 
7237                             0x03
7238                         }
7239                     }
7240                 }, 
7241
7242                 Package (0x03)
7243                 {
7244                     "\\_SB.URT1", 
7245                     One, 
7246                     Package (0x05)
7247                     {
7248                         Zero, 
7249                         Package (0x02)
7250                         {
7251                             Zero, 
7252                             Zero
7253                         }, 
7254
7255                         Package (0x02)
7256                         {
7257                             One, 
7258                             0x03
7259                         }, 
7260
7261                         Package (0x02)
7262                         {
7263                             0x02, 
7264                             0x03
7265                         }, 
7266
7267                         Package (0x02)
7268                         {
7269                             0x03, 
7270                             0x03
7271                         }
7272                     }
7273                 }, 
7274
7275                 Package (0x03)
7276                 {
7277                     "\\_SB.URT2", 
7278                     One, 
7279                     Package (0x05)
7280                     {
7281                         Zero, 
7282                         Package (0x02)
7283                         {
7284                             Zero, 
7285                             Zero
7286                         }, 
7287
7288                         Package (0x02)
7289                         {
7290                             One, 
7291                             0x03
7292                         }, 
7293
7294                         Package (0x02)
7295                         {
7296                             0x02, 
7297                             0x03
7298                         }, 
7299
7300                         Package (0x02)
7301                         {
7302                             0x03, 
7303                             0x03
7304                         }
7305                     }
7306                 }
7307             })
7308             Name (DEY1, Package (0x12)
7309             {
7310                 Package (0x03)
7311                 {
7312                     "\\_PR.CPU0", 
7313                     One, 
7314                     Package (0x02)
7315                     {
7316                         Zero, 
7317                         Package (0x02)
7318                         {
7319                             0xFF, 
7320                             Zero
7321                         }
7322                     }
7323                 }, 
7324
7325                 Package (0x03)
7326                 {
7327                     "\\_PR.CPU1", 
7328                     One, 
7329                     Package (0x02)
7330                     {
7331                         Zero, 
7332                         Package (0x02)
7333                         {
7334                             0xFF, 
7335                             Zero
7336                         }
7337                     }
7338                 }, 
7339
7340                 Package (0x03)
7341                 {
7342                     "\\_PR.CPU2", 
7343                     One, 
7344                     Package (0x02)
7345                     {
7346                         Zero, 
7347                         Package (0x02)
7348                         {
7349                             0xFF, 
7350                             Zero
7351                         }
7352                     }
7353                 }, 
7354
7355                 Package (0x03)
7356                 {
7357                     "\\_PR.CPU3", 
7358                     One, 
7359                     Package (0x02)
7360                     {
7361                         Zero, 
7362                         Package (0x02)
7363                         {
7364                             0xFF, 
7365                             Zero
7366                         }
7367                     }
7368                 }, 
7369
7370                 Package (0x03)
7371                 {
7372                     "\\_SB.PCI0.GFX0", 
7373                     One, 
7374                     Package (0x02)
7375                     {
7376                         Zero, 
7377                         Package (0x02)
7378                         {
7379                             0xFF, 
7380                             0x03
7381                         }
7382                     }
7383                 }, 
7384
7385                 Package (0x03)
7386                 {
7387                     "\\_SB.PCI0.GFX0.ISP0", 
7388                     One, 
7389                     Package (0x02)
7390                     {
7391                         Zero, 
7392                         Package (0x02)
7393                         {
7394                             0xFF, 
7395                             0x03
7396                         }
7397                     }
7398                 }, 
7399
7400                 Package (0x03)
7401                 {
7402                     "\\_SB.I2C1", 
7403                     One, 
7404                     Package (0x05)
7405                     {
7406                         Zero, 
7407                         Package (0x02)
7408                         {
7409                             Zero, 
7410                             Zero
7411                         }, 
7412
7413                         Package (0x02)
7414                         {
7415                             One, 
7416                             0x03
7417                         }, 
7418
7419                         Package (0x02)
7420                         {
7421                             0x02, 
7422                             0x03
7423                         }, 
7424
7425                         Package (0x02)
7426                         {
7427                             0x03, 
7428                             0x03
7429                         }
7430                     }
7431                 }, 
7432
7433                 Package (0x03)
7434                 {
7435                     "\\_SB.I2C2", 
7436                     One, 
7437                     Package (0x05)
7438                     {
7439                         Zero, 
7440                         Package (0x02)
7441                         {
7442                             Zero, 
7443                             Zero
7444                         }, 
7445
7446                         Package (0x02)
7447                         {
7448                             One, 
7449                             0x03
7450                         }, 
7451
7452                         Package (0x02)
7453                         {
7454                             0x02, 
7455                             0x03
7456                         }, 
7457
7458                         Package (0x02)
7459                         {
7460                             0x03, 
7461                             0x03
7462                         }
7463                     }
7464                 }, 
7465
7466                 Package (0x03)
7467                 {
7468                     "\\_SB.I2C3", 
7469                     One, 
7470                     Package (0x05)
7471                     {
7472                         Zero, 
7473                         Package (0x02)
7474                         {
7475                             Zero, 
7476                             Zero
7477                         }, 
7478
7479                         Package (0x02)
7480                         {
7481                             One, 
7482                             0x03
7483                         }, 
7484
7485                         Package (0x02)
7486                         {
7487                             0x02, 
7488                             0x03
7489                         }, 
7490
7491                         Package (0x02)
7492                         {
7493                             0x03, 
7494                             0x03
7495                         }
7496                     }
7497                 }, 
7498
7499                 Package (0x03)
7500                 {
7501                     "\\_SB.I2C4", 
7502                     One, 
7503                     Package (0x05)
7504                     {
7505                         Zero, 
7506                         Package (0x02)
7507                         {
7508                             Zero, 
7509                             Zero
7510                         }, 
7511
7512                         Package (0x02)
7513                         {
7514                             One, 
7515                             0x03
7516                         }, 
7517
7518                         Package (0x02)
7519                         {
7520                             0x02, 
7521                             0x03
7522                         }, 
7523
7524                         Package (0x02)
7525                         {
7526                             0x03, 
7527                             0x03
7528                         }
7529                     }
7530                 }, 
7531
7532                 Package (0x03)
7533                 {
7534                     "\\_SB.PCI0.XHC1", 
7535                     One, 
7536                     Package (0x05)
7537                     {
7538                         Zero, 
7539                         Package (0x02)
7540                         {
7541                             Zero, 
7542                             0x03
7543                         }, 
7544
7545                         Package (0x02)
7546                         {
7547                             One, 
7548                             0x03
7549                         }, 
7550
7551                         Package (0x02)
7552                         {
7553                             0x02, 
7554                             0x03
7555                         }, 
7556
7557                         Package (0x02)
7558                         {
7559                             0x03, 
7560                             0x03
7561                         }
7562                     }
7563                 }, 
7564
7565                 Package (0x03)
7566                 {
7567                     "\\_SB.PCI0.SEC0", 
7568                     One, 
7569                     Package (0x05)
7570                     {
7571                         Zero, 
7572                         Package (0x02)
7573                         {
7574                             Zero, 
7575                             Zero
7576                         }, 
7577
7578                         Package (0x02)
7579                         {
7580                             One, 
7581                             0x03
7582                         }, 
7583
7584                         Package (0x02)
7585                         {
7586                             0x02, 
7587                             0x03
7588                         }, 
7589
7590                         Package (0x02)
7591                         {
7592                             0x03, 
7593                             0x03
7594                         }
7595                     }
7596                 }, 
7597
7598                 Package (0x03)
7599                 {
7600                     "\\_SB.LPEA", 
7601                     One, 
7602                     Package (0x05)
7603                     {
7604                         Zero, 
7605                         Package (0x02)
7606                         {
7607                             Zero, 
7608                             Zero
7609                         }, 
7610
7611                         Package (0x02)
7612                         {
7613                             One, 
7614                             Zero
7615                         }, 
7616
7617                         Package (0x02)
7618                         {
7619                             0x02, 
7620                             0x03
7621                         }, 
7622
7623                         Package (0x02)
7624                         {
7625                             0x03, 
7626                             0x03
7627                         }
7628                     }
7629                 }, 
7630
7631                 Package (0x03)
7632                 {
7633                     "\\_SB.SDHA", 
7634                     One, 
7635                     Package (0x05)
7636                     {
7637                         Zero, 
7638                         Package (0x02)
7639                         {
7640                             Zero, 
7641                             Zero
7642                         }, 
7643
7644                         Package (0x02)
7645                         {
7646                             One, 
7647                             0x03
7648                         }, 
7649
7650                         Package (0x02)
7651                         {
7652                             0x02, 
7653                             0x03
7654                         }, 
7655
7656                         Package (0x02)
7657                         {
7658                             0x03, 
7659                             0x03
7660                         }
7661                     }
7662                 }, 
7663
7664                 Package (0x03)
7665                 {
7666                     "\\_SB.SDHB", 
7667                     One, 
7668                     Package (0x05)
7669                     {
7670                         Zero, 
7671                         Package (0x02)
7672                         {
7673                             Zero, 
7674                             Zero
7675                         }, 
7676
7677                         Package (0x02)
7678                         {
7679                             One, 
7680                             0x03
7681                         }, 
7682
7683                         Package (0x02)
7684                         {
7685                             0x02, 
7686                             0x03
7687                         }, 
7688
7689                         Package (0x02)
7690                         {
7691                             0x03, 
7692                             0x03
7693                         }
7694                     }
7695                 }, 
7696
7697                 Package (0x03)
7698                 {
7699                     "\\_SB.SDHC", 
7700                     One, 
7701                     Package (0x05)
7702                     {
7703                         Zero, 
7704                         Package (0x02)
7705                         {
7706                             Zero, 
7707                             Zero
7708                         }, 
7709
7710                         Package (0x02)
7711                         {
7712                             One, 
7713                             0x03
7714                         }, 
7715
7716                         Package (0x02)
7717                         {
7718                             0x02, 
7719                             0x03
7720                         }, 
7721
7722                         Package (0x02)
7723                         {
7724                             0x03, 
7725                             0x03
7726                         }
7727                     }
7728                 }, 
7729
7730                 Package (0x03)
7731                 {
7732                     "\\_SB.URT1", 
7733                     One, 
7734                     Package (0x05)
7735                     {
7736                         Zero, 
7737                         Package (0x02)
7738                         {
7739                             Zero, 
7740                             Zero
7741                         }, 
7742
7743                         Package (0x02)
7744                         {
7745                             One, 
7746                             0x03
7747                         }, 
7748
7749                         Package (0x02)
7750                         {
7751                             0x02, 
7752                             0x03
7753                         }, 
7754
7755                         Package (0x02)
7756                         {
7757                             0x03, 
7758                             0x03
7759                         }
7760                     }
7761                 }, 
7762
7763                 Package (0x03)
7764                 {
7765                     "\\_SB.URT2", 
7766                     One, 
7767                     Package (0x05)
7768                     {
7769                         Zero, 
7770                         Package (0x02)
7771                         {
7772                             Zero, 
7773                             Zero
7774                         }, 
7775
7776                         Package (0x02)
7777                         {
7778                             One, 
7779                             0x03
7780                         }, 
7781
7782                         Package (0x02)
7783                         {
7784                             0x02, 
7785                             0x03
7786                         }, 
7787
7788                         Package (0x02)
7789                         {
7790                             0x03, 
7791                             0x03
7792                         }
7793                     }
7794                 }
7795             })
7796             Name (DEY2, Package (0x12)
7797             {
7798                 Package (0x03)
7799                 {
7800                     "\\_PR.CPU0", 
7801                     One, 
7802                     Package (0x02)
7803                     {
7804                         Zero, 
7805                         Package (0x02)
7806                         {
7807                             0xFF, 
7808                             Zero
7809                         }
7810                     }
7811                 }, 
7812
7813                 Package (0x03)
7814                 {
7815                     "\\_PR.CPU1", 
7816                     One, 
7817                     Package (0x02)
7818                     {
7819                         Zero, 
7820                         Package (0x02)
7821                         {
7822                             0xFF, 
7823                             Zero
7824                         }
7825                     }
7826                 }, 
7827
7828                 Package (0x03)
7829                 {
7830                     "\\_PR.CPU2", 
7831                     One, 
7832                     Package (0x02)
7833                     {
7834                         Zero, 
7835                         Package (0x02)
7836                         {
7837                             0xFF, 
7838                             Zero
7839                         }
7840                     }
7841                 }, 
7842
7843                 Package (0x03)
7844                 {
7845                     "\\_PR.CPU3", 
7846                     One, 
7847                     Package (0x02)
7848                     {
7849                         Zero, 
7850                         Package (0x02)
7851                         {
7852                             0xFF, 
7853                             Zero
7854                         }
7855                     }
7856                 }, 
7857
7858                 Package (0x03)
7859                 {
7860                     "\\_SB.PCI0.GFX0", 
7861                     One, 
7862                     Package (0x02)
7863                     {
7864                         Zero, 
7865                         Package (0x02)
7866                         {
7867                             0xFF, 
7868                             0x03
7869                         }
7870                     }
7871                 }, 
7872
7873                 Package (0x03)
7874                 {
7875                     "\\_SB.PCI0.GFX0.ISP0", 
7876                     One, 
7877                     Package (0x02)
7878                     {
7879                         Zero, 
7880                         Package (0x02)
7881                         {
7882                             0xFF, 
7883                             0x03
7884                         }
7885                     }
7886                 }, 
7887
7888                 Package (0x03)
7889                 {
7890                     "\\_SB.I2C1", 
7891                     One, 
7892                     Package (0x05)
7893                     {
7894                         Zero, 
7895                         Package (0x02)
7896                         {
7897                             Zero, 
7898                             Zero
7899                         }, 
7900
7901                         Package (0x02)
7902                         {
7903                             One, 
7904                             0x03
7905                         }, 
7906
7907                         Package (0x02)
7908                         {
7909                             0x02, 
7910                             0x03
7911                         }, 
7912
7913                         Package (0x02)
7914                         {
7915                             0x03, 
7916                             0x03
7917                         }
7918                     }
7919                 }, 
7920
7921                 Package (0x03)
7922                 {
7923                     "\\_SB.I2C2", 
7924                     One, 
7925                     Package (0x05)
7926                     {
7927                         Zero, 
7928                         Package (0x02)
7929                         {
7930                             Zero, 
7931                             Zero
7932                         }, 
7933
7934                         Package (0x02)
7935                         {
7936                             One, 
7937                             0x03
7938                         }, 
7939
7940                         Package (0x02)
7941                         {
7942                             0x02, 
7943                             0x03
7944                         }, 
7945
7946                         Package (0x02)
7947                         {
7948                             0x03, 
7949                             0x03
7950                         }
7951                     }
7952                 }, 
7953
7954                 Package (0x03)
7955                 {
7956                     "\\_SB.I2C3", 
7957                     One, 
7958                     Package (0x05)
7959                     {
7960                         Zero, 
7961                         Package (0x02)
7962                         {
7963                             Zero, 
7964                             Zero
7965                         }, 
7966
7967                         Package (0x02)
7968                         {
7969                             One, 
7970                             0x03
7971                         }, 
7972
7973                         Package (0x02)
7974                         {
7975                             0x02, 
7976                             0x03
7977                         }, 
7978
7979                         Package (0x02)
7980                         {
7981                             0x03, 
7982                             0x03
7983                         }
7984                     }
7985                 }, 
7986
7987                 Package (0x03)
7988                 {
7989                     "\\_SB.I2C4", 
7990                     One, 
7991                     Package (0x05)
7992                     {
7993                         Zero, 
7994                         Package (0x02)
7995                         {
7996                             Zero, 
7997                             Zero
7998                         }, 
7999
8000                         Package (0x02)
8001                         {
8002                             One, 
8003                             0x03
8004                         }, 
8005
8006                         Package (0x02)
8007                         {
8008                             0x02, 
8009                             0x03
8010                         }, 
8011
8012                         Package (0x02)
8013                         {
8014                             0x03, 
8015                             0x03
8016                         }
8017                     }
8018                 }, 
8019
8020                 Package (0x03)
8021                 {
8022                     "\\_SB.PCI0.XHC1", 
8023                     One, 
8024                     Package (0x05)
8025                     {
8026                         Zero, 
8027                         Package (0x02)
8028                         {
8029                             Zero, 
8030                             0x03
8031                         }, 
8032
8033                         Package (0x02)
8034                         {
8035                             One, 
8036                             0x03
8037                         }, 
8038
8039                         Package (0x02)
8040                         {
8041                             0x02, 
8042                             0x03
8043                         }, 
8044
8045                         Package (0x02)
8046                         {
8047                             0x03, 
8048                             0x03
8049                         }
8050                     }
8051                 }, 
8052
8053                 Package (0x03)
8054                 {
8055                     "\\_SB.PCI0.SEC0", 
8056                     One, 
8057                     Package (0x05)
8058                     {
8059                         Zero, 
8060                         Package (0x02)
8061                         {
8062                             Zero, 
8063                             Zero
8064                         }, 
8065
8066                         Package (0x02)
8067                         {
8068                             One, 
8069                             0x03
8070                         }, 
8071
8072                         Package (0x02)
8073                         {
8074                             0x02, 
8075                             0x03
8076                         }, 
8077
8078                         Package (0x02)
8079                         {
8080                             0x03, 
8081                             0x03
8082                         }
8083                     }
8084                 }, 
8085
8086                 Package (0x03)
8087                 {
8088                     "\\_SB.LPEA", 
8089                     One, 
8090                     Package (0x05)
8091                     {
8092                         Zero, 
8093                         Package (0x02)
8094                         {
8095                             Zero, 
8096                             Zero
8097                         }, 
8098
8099                         Package (0x02)
8100                         {
8101                             One, 
8102                             Zero
8103                         }, 
8104
8105                         Package (0x02)
8106                         {
8107                             0x02, 
8108                             0x03
8109                         }, 
8110
8111                         Package (0x02)
8112                         {
8113                             0x03, 
8114                             0x03
8115                         }
8116                     }
8117                 }, 
8118
8119                 Package (0x03)
8120                 {
8121                     "\\_SB.SDHA", 
8122                     One, 
8123                     Package (0x05)
8124                     {
8125                         Zero, 
8126                         Package (0x02)
8127                         {
8128                             Zero, 
8129                             Zero
8130                         }, 
8131
8132                         Package (0x02)
8133                         {
8134                             One, 
8135                             0x03
8136                         }, 
8137
8138                         Package (0x02)
8139                         {
8140                             0x02, 
8141                             0x03
8142                         }, 
8143
8144                         Package (0x02)
8145                         {
8146                             0x03, 
8147                             0x03
8148                         }
8149                     }
8150                 }, 
8151
8152                 Package (0x03)
8153                 {
8154                     "\\_SB.SDHB", 
8155                     One, 
8156                     Package (0x05)
8157                     {
8158                         Zero, 
8159                         Package (0x02)
8160                         {
8161                             Zero, 
8162                             Zero
8163                         }, 
8164
8165                         Package (0x02)
8166                         {
8167                             One, 
8168                             0x03
8169                         }, 
8170
8171                         Package (0x02)
8172                         {
8173                             0x02, 
8174                             0x03
8175                         }, 
8176
8177                         Package (0x02)
8178                         {
8179                             0x03, 
8180                             0x03
8181                         }
8182                     }
8183                 }, 
8184
8185                 Package (0x03)
8186                 {
8187                     "\\_SB.SDHD", 
8188                     One, 
8189                     Package (0x05)
8190                     {
8191                         Zero, 
8192                         Package (0x02)
8193                         {
8194                             Zero, 
8195                             Zero
8196                         }, 
8197
8198                         Package (0x02)
8199                         {
8200                             One, 
8201                             0x03
8202                         }, 
8203
8204                         Package (0x02)
8205                         {
8206                             0x02, 
8207                             0x03
8208                         }, 
8209
8210                         Package (0x02)
8211                         {
8212                             0x03, 
8213                             0x03
8214                         }
8215                     }
8216                 }, 
8217
8218                 Package (0x03)
8219                 {
8220                     "\\_SB.URT1", 
8221                     One, 
8222                     Package (0x05)
8223                     {
8224                         Zero, 
8225                         Package (0x02)
8226                         {
8227                             Zero, 
8228                             Zero
8229                         }, 
8230
8231                         Package (0x02)
8232                         {
8233                             One, 
8234                             0x03
8235                         }, 
8236
8237                         Package (0x02)
8238                         {
8239                             0x02, 
8240                             0x03
8241                         }, 
8242
8243                         Package (0x02)
8244                         {
8245                             0x03, 
8246                             0x03
8247                         }
8248                     }
8249                 }, 
8250
8251                 Package (0x03)
8252                 {
8253                     "\\_SB.URT2", 
8254                     One, 
8255                     Package (0x05)
8256                     {
8257                         Zero, 
8258                         Package (0x02)
8259                         {
8260                             Zero, 
8261                             Zero
8262                         }, 
8263
8264                         Package (0x02)
8265                         {
8266                             One, 
8267                             0x03
8268                         }, 
8269
8270                         Package (0x02)
8271                         {
8272                             0x02, 
8273                             0x03
8274                         }, 
8275
8276                         Package (0x02)
8277                         {
8278                             0x03, 
8279                             0x03
8280                         }
8281                     }
8282                 }
8283             })
8284             Name (BCCD, Package (0x01)
8285             {
8286                 Package (0x02)
8287                 {
8288                     "\\_SB.SDHA", 
8289                     Package (0x01)
8290                     {
8291                         Package (0x03)
8292                         {
8293                             Package (0x05)
8294                             {
8295                                 Zero, 
8296                                 0x20, 
8297                                 Zero, 
8298                                 0x03, 
8299                                 Ones
8300                             }, 
8301
8302                             Package (0x03)
8303                             {
8304                                 0xFFFFFFFC, 
8305                                 Zero, 
8306                                 0x04
8307                             }, 
8308
8309                             Zero
8310                         }
8311                     }
8312                 }
8313             })
8314             Method (_STA, 0, NotSerialized)  // _STA: Status
8315             {
8316                 Return (0x0F)
8317             }
8318
8319             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
8320             {
8321                 If ((Arg0 == ToUUID ("b8febfe0-baf8-454b-aecd-49fb91137b21")))
8322                 {
8323                     If ((Arg2 == Zero))
8324                     {
8325                         Return (Buffer (One)
8326                         {
8327                              0x0F                                             /* . */
8328                         })
8329                     }
8330
8331                     If ((Arg2 == One))
8332                     {
8333                         PEPP = One
8334                         Return (0x0F)
8335                     }
8336
8337                     If ((Arg2 == 0x02))
8338                     {
8339                         If ((Arg1 == Zero))
8340                         {
8341                             Return (DEVS) /* \_SB_.PEPD.DEVS */
8342                         }
8343
8344                         If ((Arg1 == One))
8345                         {
8346                             If ((PMID == 0x02))
8347                             {
8348                                 Return (DEVX) /* \_SB_.PEPD.DEVX */
8349                             }
8350                             Else
8351                             {
8352                                 If ((PMID == 0x05))
8353                                 {
8354                                     Return (DEX2) /* \_SB_.PEPD.DEX2 */
8355                                 }
8356
8357                                 Return (DEX1) /* \_SB_.PEPD.DEX1 */
8358                             }
8359                         }
8360                     }
8361
8362                     If ((Arg2 == 0x03))
8363                     {
8364                         Index (CDMP, Zero) = "\\_SB.SDHA"
8365                         Index (CDMP, One) = EM1A /* \EM1A */
8366                         Return (CDMP) /* \_SB_.PEPD.CDMP */
8367                     }
8368                 }
8369
8370                 If ((Arg0 == ToUUID ("c4eb40a0-6cd2-11e2-bcfd-0800200c9a66")))
8371                 {
8372                     If ((Arg2 == Zero))
8373                     {
8374                         Return (Buffer (One)
8375                         {
8376                              0x07                                             /* . */
8377                         })
8378                     }
8379
8380                     If ((Arg2 == One))
8381                     {
8382                         If ((PMID == 0x02))
8383                         {
8384                             Return (DEVY) /* \_SB_.PEPD.DEVY */
8385                         }
8386                         Else
8387                         {
8388                             If ((PMID == 0x05))
8389                             {
8390                                 Return (DEY2) /* \_SB_.PEPD.DEY2 */
8391                             }
8392
8393                             Return (DEY1) /* \_SB_.PEPD.DEY1 */
8394                         }
8395                     }
8396
8397                     If ((Arg2 == 0x02))
8398                     {
8399                         Local0 = EM1A /* \EM1A */
8400                         Local0 += 0x84
8401                         Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (BCCD, Zero
8402                             )), One)), Zero)), Zero)), 0x04) = Local0
8403                         Return (BCCD) /* \_SB_.PEPD.BCCD */
8404                     }
8405                 }
8406
8407                 Return (One)
8408             }
8409         }
8410
8411         Device (SDHA)
8412         {
8413             Name (_ADR, Zero)  // _ADR: Address
8414             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8415             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8416             Name (_DDN, "Intel(R) eMMC Controller - 80860F14")  // _DDN: DOS Device Name
8417             Name (_UID, One)  // _UID: Unique ID
8418             Name (_DEP, Package (0x01)  // _DEP: Dependencies
8419             {
8420                 PEPD
8421             })
8422             Name (RBF1, ResourceTemplate ()
8423             {
8424                 Memory32Fixed (ReadWrite,
8425                     0x00000000,         // Address Base
8426                     0x00001000,         // Address Length
8427                     _Y0A)
8428                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8429                 {
8430                     0x0000002D,
8431                 }
8432             })
8433             Name (RBF2, ResourceTemplate ()
8434             {
8435                 Memory32Fixed (ReadWrite,
8436                     0x00000000,         // Address Base
8437                     0x00001000,         // Address Length
8438                     _Y0B)
8439                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8440                 {
8441                     0x0000002C,
8442                 }
8443             })
8444             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8445             {
8446                 CreateDWordField (RBF1, \_SB.SDHA._Y0A._BAS, B0B1)  // _BAS: Base Address
8447                 CreateDWordField (RBF1, \_SB.SDHA._Y0A._LEN, B0L1)  // _LEN: Length
8448                 B0B1 = EM0A /* \EM0A */
8449                 B0L1 = EM0L /* \EM0L */
8450                 CreateDWordField (RBF2, \_SB.SDHA._Y0B._BAS, B0B2)  // _BAS: Base Address
8451                 CreateDWordField (RBF2, \_SB.SDHA._Y0B._LEN, B0L2)  // _LEN: Length
8452                 B0B2 = EM0A /* \EM0A */
8453                 B0L2 = EM0L /* \EM0L */
8454                 If ((EMVR == One))
8455                 {
8456                     Return (RBF2) /* \_SB_.SDHA.RBF2 */
8457                 }
8458
8459                 Return (RBF1) /* \_SB_.SDHA.RBF1 */
8460             }
8461
8462             Method (_STA, 0, NotSerialized)  // _STA: Status
8463             {
8464                 Return (0x0F)
8465             }
8466
8467             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8468             {
8469                 PSAT |= 0x03
8470                 Local0 = PSAT /* \_SB_.SDHA.PSAT */
8471                 If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One))))
8472                 {
8473                     Sleep (0x02)
8474                 }
8475             }
8476
8477             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8478             {
8479                 PSAT &= 0xFFFFFFFC
8480                 Local0 = PSAT /* \_SB_.SDHA.PSAT */
8481                 If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One))))
8482                 {
8483                     Sleep (0x02)
8484                 }
8485             }
8486
8487             OperationRegion (KEYS, SystemMemory, EM1A, 0x0100)
8488             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8489             {
8490                 Offset (0x84), 
8491                 PSAT,   32
8492             }
8493
8494             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
8495             {
8496             }
8497
8498             Device (EMMD)
8499             {
8500                 Name (_ADR, 0x08)  // _ADR: Address
8501                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8502                 {
8503                     Return (Zero)
8504                 }
8505             }
8506         }
8507
8508         Device (SDHB)
8509         {
8510             Name (_ADR, Zero)  // _ADR: Address
8511             Name (_HID, "INT33BB" /* Intel Baytrail SD Host Controller */)  // _HID: Hardware ID
8512             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8513             Name (_DDN, "Intel(R) SDIO Controller - 80860F15")  // _DDN: DOS Device Name
8514             Name (_UID, 0x02)  // _UID: Unique ID
8515             Name (_HRV, 0x02)  // _HRV: Hardware Revision
8516             Name (_DEP, Package (0x02)  // _DEP: Dependencies
8517             {
8518                 PEPD, 
8519                 GPO2
8520             })
8521             Name (PSTS, Zero)
8522             Name (RBUF, ResourceTemplate ()
8523             {
8524                 Memory32Fixed (ReadWrite,
8525                     0x00000000,         // Address Base
8526                     0x00001000,         // Address Length
8527                     _Y0C)
8528                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8529                 {
8530                     0x0000002E,
8531                 }
8532             })
8533             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8534             {
8535                 CreateDWordField (RBUF, \_SB.SDHB._Y0C._BAS, B0BA)  // _BAS: Base Address
8536                 CreateDWordField (RBUF, \_SB.SDHB._Y0C._LEN, B0LN)  // _LEN: Length
8537                 B0BA = SI0A /* \SI0A */
8538                 B0LN = SI0L /* \SI0L */
8539                 Return (RBUF) /* \_SB_.SDHB.RBUF */
8540             }
8541
8542             Method (_STA, 0, NotSerialized)  // _STA: Status
8543             {
8544                 If ((STEP <= 0x04))
8545                 {
8546                     _HRV = SDMD /* \SDMD */
8547                 }
8548
8549                 If (((SI0A == Zero) || (SD2D == One)))
8550                 {
8551                     Return (Zero)
8552                 }
8553
8554                 Return (0x0F)
8555             }
8556
8557             Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
8558             {
8559             }
8560
8561             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8562             {
8563                 PSAT |= 0x03
8564                 Local0 = PSAT /* \_SB_.SDHB.PSAT */
8565             }
8566
8567             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8568             {
8569                 PSAT &= 0xFFFFFFFC
8570                 Local0 = PSAT /* \_SB_.SDHB.PSAT */
8571                 If ((PSTS == Zero))
8572                 {
8573                     If ((^^GPO2.AVBL == One))
8574                     {
8575                         ^^GPO2.WFD3 = One
8576                         PSTS = One
8577                     }
8578                 }
8579             }
8580
8581             OperationRegion (KEYS, SystemMemory, SI1A, 0x0100)
8582             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8583             {
8584                 Offset (0x84), 
8585                 PSAT,   32
8586             }
8587
8588             Device (WLAN)
8589             {
8590                 Name (_ADR, One)  // _ADR: Address
8591                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
8592                 {
8593                     GPO2
8594                 })
8595                 Method (_STA, 0, NotSerialized)  // _STA: Status
8596                 {
8597                     If ((OSSL & 0x80))
8598                     {
8599                         Return (Zero)
8600                     }
8601
8602                     Return (0x0F)
8603                 }
8604
8605                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8606                 {
8607                     Return (Zero)
8608                 }
8609
8610                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8611                 {
8612                     Zero, 
8613                     Zero
8614                 })
8615                 Name (_S4W, 0x02)  // _S4W: S4 Device Wake State
8616                 Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
8617                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8618                 {
8619                     Name (RBUF, ResourceTemplate ()
8620                     {
8621                         Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, )
8622                         {
8623                             0x00000045,
8624                         }
8625                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8626                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8627                             )
8628                             {   // Pin list
8629                                 0x0014
8630                             }
8631                     })
8632                     Return (RBUF) /* \_SB_.SDHB.WLAN._CRS.RBUF */
8633                 }
8634
8635                 Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
8636                 {
8637                 }
8638
8639                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8640                 {
8641                 }
8642
8643                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8644                 {
8645                 }
8646             }
8647
8648             Device (WLA2)
8649             {
8650                 Name (_ADR, 0x02)  // _ADR: Address
8651                 Method (_STA, 0, NotSerialized)  // _STA: Status
8652                 {
8653                     If ((OSSL & 0x80))
8654                     {
8655                         Return (Zero)
8656                     }
8657
8658                     Return (0x0F)
8659                 }
8660
8661                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8662                 {
8663                     Return (Zero)
8664                 }
8665
8666                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8667                 {
8668                     Name (NAM, Buffer (0x0F)
8669                     {
8670                         "\\_SB.SDHB.WLAN"
8671                     })
8672                     Name (SPB, Buffer (0x0C)
8673                     {
8674                         /* 0000 */  0x8E, 0x18, 0x00, 0x01, 0x00, 0xC0, 0x02, 0x00,  /* ........ */
8675                         /* 0008 */  0x00, 0x01, 0x00, 0x00                           /* .... */
8676                     })
8677                     Name (END, ResourceTemplate ()
8678                     {
8679                     })
8680                     Concatenate (SPB, NAM, Local0)
8681                     Concatenate (Local0, END, Local1)
8682                     Return (Local1)
8683                 }
8684             }
8685
8686             Device (RTLW)
8687             {
8688                 Name (_ADR, One)  // _ADR: Address
8689                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
8690                 {
8691                     GPO2
8692                 })
8693                 Name (_HID, "RTL8723" /* Realtek Wireless Controller */)  // _HID: Hardware ID
8694                 Name (_CID, "RTL8723" /* Realtek Wireless Controller */)  // _CID: Compatible ID
8695                 Method (_STA, 0, NotSerialized)  // _STA: Status
8696                 {
8697                     If ((OSSL & 0x80))
8698                     {
8699                         Return (0x0F)
8700                     }
8701
8702                     Return (Zero)
8703                 }
8704
8705                 Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
8706                 {
8707                     Return (Zero)
8708                 }
8709
8710                 Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
8711                 {
8712                     Zero, 
8713                     Zero
8714                 })
8715                 Name (_S4W, 0x02)  // _S4W: S4 Device Wake State
8716                 Name (_S0W, 0x02)  // _S0W: S0 Device Wake State
8717                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8718                 {
8719                     Name (RBUF, ResourceTemplate ()
8720                     {
8721                         GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
8722                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8723                             )
8724                             {   // Pin list
8725                                 0x000F
8726                             }
8727                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8728                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
8729                             )
8730                             {   // Pin list
8731                                 0x0014
8732                             }
8733                     })
8734                     Return (RBUF) /* \_SB_.SDHB.RTLW._CRS.RBUF */
8735                 }
8736
8737                 Method (_PS2, 0, NotSerialized)  // _PS2: Power State 2
8738                 {
8739                 }
8740
8741                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8742                 {
8743                     If ((^^^GPO2.AVBL == One))
8744                     {
8745                         ^^^GPO2.WFD3 = Zero
8746                         PSTS = Zero
8747                     }
8748                 }
8749
8750                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8751                 {
8752                     If ((PSTS == Zero))
8753                     {
8754                         If ((^^^GPO2.AVBL == One))
8755                         {
8756                             ^^^GPO2.WFD3 = One
8757                             PSTS = One
8758                         }
8759                     }
8760                 }
8761             }
8762         }
8763
8764         Device (SDHC)
8765         {
8766             Name (_ADR, Zero)  // _ADR: Address
8767             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8768             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8769             Name (_DDN, "Intel(R) SD Card Controller - 80860F16")  // _DDN: DOS Device Name
8770             Name (_UID, 0x03)  // _UID: Unique ID
8771             Name (_DEP, Package (0x02)  // _DEP: Dependencies
8772             {
8773                 PEPD, 
8774                 GPO0
8775             })
8776             Name (TDEP, Package (0x04)
8777             {
8778                 PEPD, 
8779                 GPO0, 
8780                 I2C5, 
8781                 ^I2C5.PMI2
8782             })
8783             Name (RBUF, ResourceTemplate ()
8784             {
8785                 Memory32Fixed (ReadWrite,
8786                     0x00000000,         // Address Base
8787                     0x00001000,         // Address Length
8788                     _Y0D)
8789                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8790                 {
8791                     0x0000002F,
8792                 }
8793                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8794                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8795                     )
8796                     {   // Pin list
8797                         0x0026
8798                     }
8799                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8800                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8801                     )
8802                     {   // Pin list
8803                         0x0026
8804                     }
8805             })
8806             Name (ABUF, ResourceTemplate ()
8807             {
8808                 Memory32Fixed (ReadWrite,
8809                     0x00000000,         // Address Base
8810                     0x00001000,         // Address Length
8811                     _Y0E)
8812                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8813                 {
8814                     0x0000002F,
8815                 }
8816                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8817                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8818                     )
8819                     {   // Pin list
8820                         0x0026
8821                     }
8822                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8823                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8824                     )
8825                     {   // Pin list
8826                         0x0026
8827                     }
8828                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8829                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8830                     )
8831                     {   // Pin list
8832                         0x0028
8833                     }
8834                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8835                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8836                     )
8837                     {   // Pin list
8838                         0x0029
8839                     }
8840             })
8841             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8842             {
8843                 CreateDWordField (RBUF, \_SB.SDHC._Y0D._BAS, B0BA)  // _BAS: Base Address
8844                 CreateDWordField (RBUF, \_SB.SDHC._Y0D._LEN, B0LN)  // _LEN: Length
8845                 B0BA = SD0A /* \SD0A */
8846                 B0LN = SD0L /* \SD0L */
8847                 CreateDWordField (ABUF, \_SB.SDHC._Y0E._BAS, B0BX)  // _BAS: Base Address
8848                 CreateDWordField (ABUF, \_SB.SDHC._Y0E._LEN, B0LX)  // _LEN: Length
8849                 B0BX = SD0A /* \SD0A */
8850                 B0LX = SD0L /* \SD0L */
8851                 If ((OSSL & 0x80))
8852                 {
8853                     Return (ABUF) /* \_SB_.SDHC.ABUF */
8854                 }
8855
8856                 Return (RBUF) /* \_SB_.SDHC.RBUF */
8857             }
8858
8859             Method (_STA, 0, NotSerialized)  // _STA: Status
8860             {
8861                 If (((SD0A == Zero) || (SD3D == One)))
8862                 {
8863                     Return (Zero)
8864                 }
8865
8866                 If ((PMID == 0x05))
8867                 {
8868                     ADBG ("XPWR_DCOVE")
8869                     Return (Zero)
8870                 }
8871
8872                 Return (0x0F)
8873             }
8874
8875             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
8876             {
8877                 ADBG ("SD card-----ps3")
8878                 PSAT |= 0x03
8879                 Local0 = PSAT /* \_SB_.SDHC.PSAT */
8880                 If (CondRefOf (\_SB.I2C5.PMI2, Local2))
8881                 {
8882                     If ((^^I2C5.PMI2.AVBL == One))
8883                     {
8884                         ^^I2C5.PMI2.LDO7 = Zero
8885                         If ((^^I2C5.PMI2.AVBG == One))
8886                         {
8887                             ADBG ("SD card-----333ps3")
8888                             ^^I2C5.PMI2.GSDX = One
8889                             Sleep (0x1E)
8890                         }
8891                     }
8892                 }
8893             }
8894
8895             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
8896             {
8897                 ADBG ("SD card-----ps0")
8898                 If (CondRefOf (\_SB.I2C5.PMI2, Local2))
8899                 {
8900                     If ((^^I2C5.PMI2.AVBL == One))
8901                     {
8902                         ^^I2C5.PMI2.LDO7 = One
8903                         If ((^^I2C5.PMI2.AVBG == One))
8904                         {
8905                             ADBG ("SD card-----000ps0")
8906                             ^^I2C5.PMI2.GSDX = One
8907                             Sleep (0x1E)
8908                         }
8909                     }
8910                 }
8911
8912                 PSAT &= 0xFFFFFFFC
8913                 Local0 = PSAT /* \_SB_.SDHC.PSAT */
8914             }
8915
8916             OperationRegion (KEYS, SystemMemory, SD1A, 0x0100)
8917             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
8918             {
8919                 Offset (0x84), 
8920                 PSAT,   32
8921             }
8922         }
8923
8924         Device (SDHD)
8925         {
8926             Name (_ADR, Zero)  // _ADR: Address
8927             Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */)  // _HID: Hardware ID
8928             Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */)  // _CID: Compatible ID
8929             Name (_DDN, "Intel(R) SD Card Controller - 80860F16")  // _DDN: DOS Device Name
8930             Name (_UID, 0x03)  // _UID: Unique ID
8931             Name (_DEP, Package (0x04)  // _DEP: Dependencies
8932             {
8933                 PEPD, 
8934                 GPO0, 
8935                 I2C5, 
8936                 ^I2C5.PMI1
8937             })
8938             Name (RBUF, ResourceTemplate ()
8939             {
8940                 Memory32Fixed (ReadWrite,
8941                     0x00000000,         // Address Base
8942                     0x00001000,         // Address Length
8943                     _Y0F)
8944                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8945                 {
8946                     0x0000002F,
8947                 }
8948                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8949                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8950                     )
8951                     {   // Pin list
8952                         0x0026
8953                     }
8954                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8955                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8956                     )
8957                     {   // Pin list
8958                         0x0026
8959                     }
8960             })
8961             Name (ABUF, ResourceTemplate ()
8962             {
8963                 Memory32Fixed (ReadWrite,
8964                     0x00000000,         // Address Base
8965                     0x00001000,         // Address Length
8966                     _Y10)
8967                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
8968                 {
8969                     0x0000002F,
8970                 }
8971                 GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710,
8972                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8973                     )
8974                     {   // Pin list
8975                         0x0026
8976                     }
8977                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
8978                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8979                     )
8980                     {   // Pin list
8981                         0x0026
8982                     }
8983                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8984                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8985                     )
8986                     {   // Pin list
8987                         0x0028
8988                     }
8989                 GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
8990                     "\\_SB.GPO0", 0x00, ResourceConsumer, ,
8991                     )
8992                     {   // Pin list
8993                         0x0029
8994                     }
8995             })
8996             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
8997             {
8998                 CreateDWordField (RBUF, \_SB.SDHD._Y0F._BAS, B0BA)  // _BAS: Base Address
8999                 CreateDWordField (RBUF, \_SB.SDHD._Y0F._LEN, B0LN)  // _LEN: Length
9000                 B0BA = SD0A /* \SD0A */
9001                 B0LN = SD0L /* \SD0L */
9002                 CreateDWordField (ABUF, \_SB.SDHD._Y10._BAS, B0BX)  // _BAS: Base Address
9003                 CreateDWordField (ABUF, \_SB.SDHD._Y10._LEN, B0LX)  // _LEN: Length
9004                 B0BX = SD0A /* \SD0A */
9005                 B0LX = SD0L /* \SD0L */
9006                 If ((OSSL & 0x80))
9007                 {
9008                     Return (ABUF) /* \_SB_.SDHD.ABUF */
9009                 }
9010
9011                 Return (RBUF) /* \_SB_.SDHD.RBUF */
9012             }
9013
9014             Method (_STA, 0, NotSerialized)  // _STA: Status
9015             {
9016                 If (((SD0A == Zero) || (SD3D == One)))
9017                 {
9018                     Return (Zero)
9019                 }
9020
9021                 If ((PMID == 0x05))
9022                 {
9023                     ADBG ("XPWR_DCOVE")
9024                     Return (0x0F)
9025                 }
9026
9027                 Return (Zero)
9028             }
9029
9030             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9031             {
9032                 ADBG ("SD card-----ps3 Xpower")
9033                 PSAT |= 0x03
9034                 Local0 = PSAT /* \_SB_.SDHD.PSAT */
9035                 If (CondRefOf (\_SB.I2C5.PMI1, Local1))
9036                 {
9037                     ADBG ("SD card-----1ps3 Xpower")
9038                     If ((^^I2C5.PMI1.AVBL == One))
9039                     {
9040                         ADBG ("SD card-----2ps3 Xpower")
9041                         ^^I2C5.PMI1.GPI1 = Zero
9042                         If ((^^I2C5.PMI1.AVBG == One))
9043                         {
9044                             ADBG ("SD card-----3ps3 Xpower")
9045                             ^^I2C5.PMI1.GSDX = One
9046                             Sleep (0x1E)
9047                         }
9048                     }
9049                 }
9050             }
9051
9052             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9053             {
9054                 ADBG ("SD card-----ps0")
9055                 If (CondRefOf (\_SB.I2C5.PMI1, Local1))
9056                 {
9057                     ADBG ("SD card-----1ps0 Xpower")
9058                     If ((^^I2C5.PMI1.AVBL == One))
9059                     {
9060                         ADBG ("SD card-----2ps0 Xpower")
9061                         ^^I2C5.PMI1.GPI1 = One
9062                         If ((^^I2C5.PMI1.AVBG == One))
9063                         {
9064                             ADBG ("SD card-----3ps0 Xpower")
9065                             ^^I2C5.PMI1.GSDX = One
9066                             Sleep (0x1E)
9067                         }
9068                     }
9069                 }
9070
9071                 PSAT &= 0xFFFFFFFC
9072                 Local0 = PSAT /* \_SB_.SDHD.PSAT */
9073             }
9074
9075             OperationRegion (KEYS, SystemMemory, SD1A, 0x0100)
9076             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9077             {
9078                 Offset (0x84), 
9079                 PSAT,   32
9080             }
9081         }
9082
9083         Device (GDM1)
9084         {
9085             Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */)  // _HID: Hardware ID
9086             Name (_DDN, "Intel(R) DMA Controller #1 - INTL9C60")  // _DDN: DOS Device Name
9087             Name (_UID, One)  // _UID: Unique ID
9088             Name (RBUF, ResourceTemplate ()
9089             {
9090                 Memory32Fixed (ReadWrite,
9091                     0x00000000,         // Address Base
9092                     0x00004000,         // Address Length
9093                     _Y11)
9094                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9095                 {
9096                     0x0000002A,
9097                 }
9098             })
9099             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9100             {
9101                 CreateDWordField (RBUF, \_SB.GDM1._Y11._BAS, B0BA)  // _BAS: Base Address
9102                 CreateDWordField (RBUF, \_SB.GDM1._Y11._LEN, B0LN)  // _LEN: Length
9103                 B0BA = D10A /* \D10A */
9104                 B0LN = D10L /* \D10L */
9105                 Return (RBUF) /* \_SB_.GDM1.RBUF */
9106             }
9107
9108             Method (_STA, 0, NotSerialized)  // _STA: Status
9109             {
9110                 If (((D10A == Zero) || (L10D == One)))
9111                 {
9112                     Return (Zero)
9113                 }
9114
9115                 Return (0x0F)
9116             }
9117         }
9118
9119         Device (GDM2)
9120         {
9121             Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */)  // _HID: Hardware ID
9122             Name (_DDN, "Intel(R) DMA Controller #2 - INTL9C60")  // _DDN: DOS Device Name
9123             Name (_UID, 0x02)  // _UID: Unique ID
9124             Name (RBUF, ResourceTemplate ()
9125             {
9126                 Memory32Fixed (ReadWrite,
9127                     0x00000000,         // Address Base
9128                     0x00004000,         // Address Length
9129                     _Y12)
9130                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9131                 {
9132                     0x0000002B,
9133                 }
9134             })
9135             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9136             {
9137                 CreateDWordField (RBUF, \_SB.GDM2._Y12._BAS, B0BA)  // _BAS: Base Address
9138                 CreateDWordField (RBUF, \_SB.GDM2._Y12._LEN, B0LN)  // _LEN: Length
9139                 B0BA = D20A /* \D20A */
9140                 B0LN = D20L /* \D20L */
9141                 Return (RBUF) /* \_SB_.GDM2.RBUF */
9142             }
9143
9144             Method (_STA, 0, NotSerialized)  // _STA: Status
9145             {
9146                 If (((D20A == Zero) || (L20D == One)))
9147                 {
9148                     Return (Zero)
9149                 }
9150
9151                 Return (0x0F)
9152             }
9153         }
9154
9155         Device (PWM1)
9156         {
9157             Name (_ADR, Zero)  // _ADR: Address
9158             Name (_HID, "80860F09" /* Intel PWM Controller */)  // _HID: Hardware ID
9159             Name (_CID, "80860F09" /* Intel PWM Controller */)  // _CID: Compatible ID
9160             Name (_DDN, "Intel(R) PWM Controller #1 - 80860F08")  // _DDN: DOS Device Name
9161             Name (_UID, One)  // _UID: Unique ID
9162             Name (RBUF, ResourceTemplate ()
9163             {
9164                 Memory32Fixed (ReadWrite,
9165                     0x00000000,         // Address Base
9166                     0x00001000,         // Address Length
9167                     _Y13)
9168             })
9169             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9170             {
9171                 CreateDWordField (RBUF, \_SB.PWM1._Y13._BAS, B0BA)  // _BAS: Base Address
9172                 CreateDWordField (RBUF, \_SB.PWM1._Y13._LEN, B0LN)  // _LEN: Length
9173                 B0BA = P10A /* \P10A */
9174                 B0LN = P10L /* \P10L */
9175                 Return (RBUF) /* \_SB_.PWM1.RBUF */
9176             }
9177
9178             Method (_STA, 0, NotSerialized)  // _STA: Status
9179             {
9180                 If (((P10A == Zero) || (L11D == One)))
9181                 {
9182                     Return (Zero)
9183                 }
9184
9185                 If ((OSSL & 0x80))
9186                 {
9187                     Return (0x0F)
9188                 }
9189
9190                 Return (Zero)
9191             }
9192
9193             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9194             {
9195                 PSAT |= 0x03
9196                 Local0 = PSAT /* \_SB_.PWM1.PSAT */
9197             }
9198
9199             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9200             {
9201                 PSAT &= 0xFFFFFFFC
9202                 Local0 = PSAT /* \_SB_.PWM1.PSAT */
9203             }
9204
9205             OperationRegion (KEYS, SystemMemory, P11A, 0x0100)
9206             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9207             {
9208                 Offset (0x84), 
9209                 PSAT,   32
9210             }
9211         }
9212
9213         Device (PWM2)
9214         {
9215             Name (_ADR, Zero)  // _ADR: Address
9216             Name (_HID, "80860F09" /* Intel PWM Controller */)  // _HID: Hardware ID
9217             Name (_CID, "80860F09" /* Intel PWM Controller */)  // _CID: Compatible ID
9218             Name (_DDN, "Intel(R) PWM Controller #2 - 80860F09")  // _DDN: DOS Device Name
9219             Name (_UID, 0x02)  // _UID: Unique ID
9220             Name (RBUF, ResourceTemplate ()
9221             {
9222                 Memory32Fixed (ReadWrite,
9223                     0x00000000,         // Address Base
9224                     0x00001000,         // Address Length
9225                     _Y14)
9226             })
9227             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9228             {
9229                 CreateDWordField (RBUF, \_SB.PWM2._Y14._BAS, B0BA)  // _BAS: Base Address
9230                 CreateDWordField (RBUF, \_SB.PWM2._Y14._LEN, B0LN)  // _LEN: Length
9231                 B0BA = P20A /* \P20A */
9232                 B0LN = P20L /* \P20L */
9233                 Return (RBUF) /* \_SB_.PWM2.RBUF */
9234             }
9235
9236             Method (_STA, 0, NotSerialized)  // _STA: Status
9237             {
9238                 If (((P20A == Zero) || (L12D == One)))
9239                 {
9240                     Return (Zero)
9241                 }
9242
9243                 If ((OSSL & 0x80))
9244                 {
9245                     Return (0x0F)
9246                 }
9247
9248                 Return (Zero)
9249             }
9250
9251             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9252             {
9253                 PSAT |= 0x03
9254                 Local0 = PSAT /* \_SB_.PWM2.PSAT */
9255             }
9256
9257             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9258             {
9259                 PSAT &= 0xFFFFFFFC
9260                 Local0 = PSAT /* \_SB_.PWM2.PSAT */
9261             }
9262
9263             OperationRegion (KEYS, SystemMemory, P21A, 0x0100)
9264             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9265             {
9266                 Offset (0x84), 
9267                 PSAT,   32
9268             }
9269         }
9270
9271         Device (URT1)
9272         {
9273             Name (_ADR, Zero)  // _ADR: Address
9274             Name (_HID, "80860F0A" /* Intel Atom UART Controller */)  // _HID: Hardware ID
9275             Name (_CID, "80860F0A" /* Intel Atom UART Controller */)  // _CID: Compatible ID
9276             Name (_DDN, "Intel(R) HS-UART Controller #1 - 80860F0A")  // _DDN: DOS Device Name
9277             Name (_UID, One)  // _UID: Unique ID
9278             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9279             {
9280                 PEPD
9281             })
9282             Name (RBUF, ResourceTemplate ()
9283             {
9284                 Memory32Fixed (ReadWrite,
9285                     0x00000000,         // Address Base
9286                     0x00001000,         // Address Length
9287                     _Y15)
9288                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9289                 {
9290                     0x00000027,
9291                 }
9292                 FixedDMA (0x0002, 0x0002, Width32bit, )
9293                 FixedDMA (0x0003, 0x0003, Width32bit, )
9294             })
9295             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9296             {
9297                 Return (SOCS) /* \SOCS */
9298             }
9299
9300             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9301             {
9302                 CreateDWordField (RBUF, \_SB.URT1._Y15._BAS, B0BA)  // _BAS: Base Address
9303                 CreateDWordField (RBUF, \_SB.URT1._Y15._LEN, B0LN)  // _LEN: Length
9304                 B0BA = U10A /* \U10A */
9305                 B0LN = U10L /* \U10L */
9306                 Return (RBUF) /* \_SB_.URT1.RBUF */
9307             }
9308
9309             Method (_STA, 0, NotSerialized)  // _STA: Status
9310             {
9311                 If (((U10A == Zero) || (L13D == One)))
9312                 {
9313                     Return (Zero)
9314                 }
9315
9316                 Return (0x0F)
9317             }
9318
9319             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9320             {
9321                 PSAT |= 0x03
9322                 Local0 = PSAT /* \_SB_.URT1.PSAT */
9323             }
9324
9325             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9326             {
9327                 PSAT &= 0xFFFFFFFC
9328                 Local0 = PSAT /* \_SB_.URT1.PSAT */
9329             }
9330
9331             OperationRegion (KEYS, SystemMemory, U11A, 0x0100)
9332             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9333             {
9334                 Offset (0x84), 
9335                 PSAT,   32
9336             }
9337
9338             Device (BTH0)
9339             {
9340                 Name (_HID, "BCM2E3A")  // _HID: Hardware ID
9341                 Method (_STA, 0, NotSerialized)  // _STA: Status
9342                 {
9343                     Return (Zero)
9344                 }
9345
9346                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9347                 {
9348                     Name (UBUF, ResourceTemplate ()
9349                     {
9350                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9351                             0xFC, LittleEndian, ParityTypeNone, FlowControlNone,
9352                             0x0020, 0x0020, "\\_SB.URT1",
9353                             0x00, ResourceConsumer, ,
9354                             )
9355                         Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, )
9356                         {
9357                             0x00000046,
9358                         }
9359                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9360                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9361                             )
9362                             {   // Pin list
9363                                 0x0018
9364                             }
9365                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9366                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9367                             )
9368                             {   // Pin list
9369                                 0x0019
9370                             }
9371                     })
9372                     Return (UBUF) /* \_SB_.URT1.BTH0._CRS.UBUF */
9373                 }
9374             }
9375
9376             Device (BTH1)
9377             {
9378                 Name (_HID, "OBDA8723")  // _HID: Hardware ID
9379                 Method (_STA, 0, NotSerialized)  // _STA: Status
9380                 {
9381                     Return (0x0F)
9382                 }
9383
9384                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9385                 {
9386                     Name (UBUF, ResourceTemplate ()
9387                     {
9388                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9389                             0xC0, LittleEndian, ParityTypeEven, FlowControlHardware,
9390                             0x0020, 0x0020, "\\_SB.URT1",
9391                             0x00, ResourceConsumer, ,
9392                             )
9393                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9394                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9395                             )
9396                             {   // Pin list
9397                                 0x0018
9398                             }
9399                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9400                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9401                             )
9402                             {   // Pin list
9403                                 0x0019
9404                             }
9405                         GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
9406                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9407                             )
9408                             {   // Pin list
9409                                 0x0011
9410                             }
9411                     })
9412                     Name (WBUF, ResourceTemplate ()
9413                     {
9414                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9415                             0xC0, LittleEndian, ParityTypeEven, FlowControlHardware,
9416                             0x0020, 0x0020, "\\_SB.URT1",
9417                             0x00, ResourceConsumer, ,
9418                             )
9419                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9420                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9421                             )
9422                             {   // Pin list
9423                                 0x0019
9424                             }
9425                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9426                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
9427                             )
9428                             {   // Pin list
9429                                 0x0018
9430                             }
9431                         GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000,
9432                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9433                             )
9434                             {   // Pin list
9435                                 0x0011
9436                             }
9437                     })
9438                     If ((OSSL & 0x80))
9439                     {
9440                         Return (UBUF) /* \_SB_.URT1.BTH1._CRS.UBUF */
9441                     }
9442
9443                     Return (WBUF) /* \_SB_.URT1.BTH1._CRS.WBUF */
9444                 }
9445             }
9446         }
9447
9448         Device (URT2)
9449         {
9450             Name (_ADR, Zero)  // _ADR: Address
9451             Name (_HID, "80860F0A" /* Intel Atom UART Controller */)  // _HID: Hardware ID
9452             Name (_CID, "80860F0A" /* Intel Atom UART Controller */)  // _CID: Compatible ID
9453             Name (_DDN, "Intel(R) HS-UART Controller #2 - 80860F0C")  // _DDN: DOS Device Name
9454             Name (_UID, 0x02)  // _UID: Unique ID
9455             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9456             {
9457                 PEPD
9458             })
9459             Name (RBUF, ResourceTemplate ()
9460             {
9461                 Memory32Fixed (ReadWrite,
9462                     0x00000000,         // Address Base
9463                     0x00001000,         // Address Length
9464                     _Y16)
9465                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9466                 {
9467                     0x00000028,
9468                 }
9469                 FixedDMA (0x0004, 0x0004, Width32bit, )
9470                 FixedDMA (0x0005, 0x0005, Width32bit, )
9471             })
9472             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9473             {
9474                 Return (SOCS) /* \SOCS */
9475             }
9476
9477             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9478             {
9479                 CreateDWordField (RBUF, \_SB.URT2._Y16._BAS, B0BA)  // _BAS: Base Address
9480                 CreateDWordField (RBUF, \_SB.URT2._Y16._LEN, B0LN)  // _LEN: Length
9481                 B0BA = U20A /* \U20A */
9482                 B0LN = U20L /* \U20L */
9483                 Return (RBUF) /* \_SB_.URT2.RBUF */
9484             }
9485
9486             Method (_STA, 0, NotSerialized)  // _STA: Status
9487             {
9488                 If (((U20A == Zero) || (L14D == One)))
9489                 {
9490                     Return (Zero)
9491                 }
9492
9493                 Return (0x0F)
9494             }
9495
9496             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9497             {
9498                 PSAT |= 0x03
9499                 Local0 = PSAT /* \_SB_.URT2.PSAT */
9500             }
9501
9502             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9503             {
9504                 PSAT &= 0xFFFFFFFC
9505                 Local0 = PSAT /* \_SB_.URT2.PSAT */
9506             }
9507
9508             OperationRegion (KEYS, SystemMemory, U21A, 0x0100)
9509             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9510             {
9511                 Offset (0x84), 
9512                 PSAT,   32
9513             }
9514
9515             Device (GPS0)
9516             {
9517                 Name (_HID, "BCM4752")  // _HID: Hardware ID
9518                 Name (_HRV, Zero)  // _HRV: Hardware Revision
9519                 Method (_STA, 0, NotSerialized)  // _STA: Status
9520                 {
9521                     Return (Zero)
9522                 }
9523
9524                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9525                 {
9526                     Name (UBUF, ResourceTemplate ()
9527                     {
9528                         UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
9529                             0xFC, LittleEndian, ParityTypeNone, FlowControlHardware,
9530                             0x0020, 0x0020, "\\_SB.URT2",
9531                             0x00, ResourceConsumer, ,
9532                             )
9533                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
9534                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9535                             )
9536                             {   // Pin list
9537                                 0x0016
9538                             }
9539                     })
9540                     Return (UBUF) /* \_SB_.URT2.GPS0._CRS.UBUF */
9541                 }
9542             }
9543         }
9544
9545         Device (SPI1)
9546         {
9547             Name (_ADR, Zero)  // _ADR: Address
9548             Name (_HID, "80860F0E" /* Intel SPI Controller */)  // _HID: Hardware ID
9549             Name (_CID, "80860F0E" /* Intel SPI Controller */)  // _CID: Compatible ID
9550             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9551             {
9552                 PEPD
9553             })
9554             Name (_DDN, "Intel(R) SPI Controller - 80860F0E")  // _DDN: DOS Device Name
9555             Name (RBUF, ResourceTemplate ()
9556             {
9557                 Memory32Fixed (ReadWrite,
9558                     0x00000000,         // Address Base
9559                     0x00001000,         // Address Length
9560                     _Y17)
9561                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9562                 {
9563                     0x00000029,
9564                 }
9565                 FixedDMA (0x0000, 0x0000, Width32bit, )
9566                 FixedDMA (0x0001, 0x0001, Width32bit, )
9567             })
9568             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9569             {
9570                 Return (SOCS) /* \SOCS */
9571             }
9572
9573             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9574             {
9575                 CreateDWordField (RBUF, \_SB.SPI1._Y17._BAS, B0BA)  // _BAS: Base Address
9576                 CreateDWordField (RBUF, \_SB.SPI1._Y17._LEN, B0LN)  // _LEN: Length
9577                 B0BA = SP0A /* \SP0A */
9578                 B0LN = SP0L /* \SP0L */
9579                 Return (RBUF) /* \_SB_.SPI1.RBUF */
9580             }
9581
9582             Method (_STA, 0, NotSerialized)  // _STA: Status
9583             {
9584                 If (((SP0A == Zero) || (L15D == One)))
9585                 {
9586                     Return (Zero)
9587                 }
9588
9589                 Return (0x0F)
9590             }
9591
9592             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9593             {
9594                 PSAT |= 0x03
9595                 Local0 = PSAT /* \_SB_.SPI1.PSAT */
9596             }
9597
9598             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9599             {
9600                 PSAT &= 0xFFFFFFFC
9601                 Local0 = PSAT /* \_SB_.SPI1.PSAT */
9602             }
9603
9604             OperationRegion (KEYS, SystemMemory, SP1A, 0x0100)
9605             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9606             {
9607                 Offset (0x84), 
9608                 PSAT,   32
9609             }
9610
9611             Device (FPNT)
9612             {
9613                 Name (_HID, "AUTH2750" /* AuthenTec AES2750 */)  // _HID: Hardware ID
9614                 Name (_DDN, "AuthenTec AES2750")  // _DDN: DOS Device Name
9615                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9616                 {
9617                     Name (UBUF, ResourceTemplate ()
9618                     {
9619                         SpiSerialBus (0x0001, PolarityLow, FourWireMode, 0x08,
9620                             ControllerInitiated, 0x007A1200, ClockPolarityLow,
9621                             ClockPhaseSecond, "\\_SB.SPI1",
9622                             0x00, ResourceConsumer, ,
9623                             )
9624                         Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
9625                         {
9626                             0x00000048,
9627                         }
9628                     })
9629                     Return (UBUF) /* \_SB_.SPI1.FPNT._CRS.UBUF */
9630                 }
9631
9632                 Method (_STA, 0, NotSerialized)  // _STA: Status
9633                 {
9634                     Return (Zero)
9635                 }
9636             }
9637         }
9638
9639         Device (NFC2)
9640         {
9641             Name (_ADR, Zero)  // _ADR: Address
9642             Name (_HID, "NXP5442" /* NXP 5442 Near Field Communications Controller */)  // _HID: Hardware ID
9643             Name (_CID, "NXP5442" /* NXP 5442 Near Field Communications Controller */)  // _CID: Compatible ID
9644             Name (_DDN, "NXP NFC")  // _DDN: DOS Device Name
9645             Name (_UID, One)  // _UID: Unique ID
9646             Method (_STA, 0, NotSerialized)  // _STA: Status
9647             {
9648                 If ((NFCS == 0x02))
9649                 {
9650                     Return (0x0F)
9651                 }
9652
9653                 Return (Zero)
9654             }
9655         }
9656
9657         Device (I2C1)
9658         {
9659             Name (_ADR, Zero)  // _ADR: Address
9660             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
9661             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
9662             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9663             {
9664                 PEPD
9665             })
9666             Name (_DDN, "Intel(R) I2C Controller #1 - 80860F41")  // _DDN: DOS Device Name
9667             Name (_UID, One)  // _UID: Unique ID
9668             Name (RBUF, ResourceTemplate ()
9669             {
9670                 Memory32Fixed (ReadWrite,
9671                     0x00000000,         // Address Base
9672                     0x00001000,         // Address Length
9673                     _Y18)
9674                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9675                 {
9676                     0x00000020,
9677                 }
9678                 FixedDMA (0x0010, 0x0000, Width32bit, )
9679                 FixedDMA (0x0011, 0x0001, Width32bit, )
9680             })
9681             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9682             {
9683                 Return (SOCS) /* \SOCS */
9684             }
9685
9686             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9687             {
9688                 CreateDWordField (RBUF, \_SB.I2C1._Y18._BAS, B0BA)  // _BAS: Base Address
9689                 CreateDWordField (RBUF, \_SB.I2C1._Y18._LEN, B0LN)  // _LEN: Length
9690                 B0BA = I10A /* \I10A */
9691                 B0LN = I10L /* \I10L */
9692                 Return (RBUF) /* \_SB_.I2C1.RBUF */
9693             }
9694
9695             Method (_STA, 0, NotSerialized)  // _STA: Status
9696             {
9697                 If (((I10A == Zero) || (L21D == One)))
9698                 {
9699                     Return (Zero)
9700                 }
9701
9702                 Return (0x0F)
9703             }
9704
9705             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9706             {
9707                 PSAT |= 0x03
9708                 Local0 = PSAT /* \_SB_.I2C1.PSAT */
9709             }
9710
9711             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9712             {
9713                 PSAT &= 0xFFFFFFFC
9714                 Local0 = PSAT /* \_SB_.I2C1.PSAT */
9715             }
9716
9717             OperationRegion (KEYS, SystemMemory, I11A, 0x0100)
9718             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9719             {
9720                 Offset (0x84), 
9721                 PSAT,   32
9722             }
9723         }
9724
9725         Device (I2C2)
9726         {
9727             Name (_ADR, Zero)  // _ADR: Address
9728             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
9729             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
9730             Name (_DEP, Package (0x01)  // _DEP: Dependencies
9731             {
9732                 PEPD
9733             })
9734             Name (_DDN, "Intel(R) I2C Controller #2 - 80860F42")  // _DDN: DOS Device Name
9735             Name (_UID, 0x02)  // _UID: Unique ID
9736             Name (RBUF, ResourceTemplate ()
9737             {
9738                 Memory32Fixed (ReadWrite,
9739                     0x00000000,         // Address Base
9740                     0x00001000,         // Address Length
9741                     _Y19)
9742                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
9743                 {
9744                     0x00000021,
9745                 }
9746                 FixedDMA (0x0012, 0x0002, Width32bit, )
9747                 FixedDMA (0x0013, 0x0003, Width32bit, )
9748             })
9749             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
9750             {
9751                 Return (SOCS) /* \SOCS */
9752             }
9753
9754             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9755             {
9756                 CreateDWordField (RBUF, \_SB.I2C2._Y19._BAS, B0BA)  // _BAS: Base Address
9757                 CreateDWordField (RBUF, \_SB.I2C2._Y19._LEN, B0LN)  // _LEN: Length
9758                 B0BA = I20A /* \I20A */
9759                 B0LN = I20L /* \I20L */
9760                 Return (RBUF) /* \_SB_.I2C2.RBUF */
9761             }
9762
9763             Method (_STA, 0, NotSerialized)  // _STA: Status
9764             {
9765                 If (((I20A == Zero) || (L22D == One)))
9766                 {
9767                     Return (Zero)
9768                 }
9769
9770                 Return (0x0F)
9771             }
9772
9773             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9774             {
9775                 PSAT |= 0x03
9776                 Local0 = PSAT /* \_SB_.I2C2.PSAT */
9777             }
9778
9779             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9780             {
9781                 PSAT &= 0xFFFFFFFC
9782                 Local0 = PSAT /* \_SB_.I2C2.PSAT */
9783             }
9784
9785             OperationRegion (KEYS, SystemMemory, I21A, 0x0100)
9786             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
9787             {
9788                 Offset (0x84), 
9789                 PSAT,   32
9790             }
9791
9792             PowerResource (CLK0, 0x00, 0x0000)
9793             {
9794                 Method (_STA, 0, NotSerialized)  // _STA: Status
9795                 {
9796                     Return (CKC0) /* \CKC0 */
9797                 }
9798
9799                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
9800                 {
9801                     CKC0 = One
9802                     CKF0 = One
9803                     Sleep (0x20)
9804                 }
9805
9806                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
9807                 {
9808                     CKC0 = 0x02
9809                 }
9810             }
9811
9812             PowerResource (CLK1, 0x00, 0x0000)
9813             {
9814                 Method (_STA, 0, NotSerialized)  // _STA: Status
9815                 {
9816                     Return (CKC1) /* \CKC1 */
9817                 }
9818
9819                 Method (_ON, 0, NotSerialized)  // _ON_: Power On
9820                 {
9821                     CKC1 = One
9822                     CKF1 = One
9823                     Sleep (0x20)
9824                 }
9825
9826                 Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
9827                 {
9828                     CKC1 = 0x02
9829                 }
9830             }
9831
9832             Device (RTEK)
9833             {
9834                 Name (_ADR, Zero)  // _ADR: Address
9835                 Name (_HID, "10EC5640" /* Realtek I2S Audio Codec */)  // _HID: Hardware ID
9836                 Name (_CID, "10EC5640" /* Realtek I2S Audio Codec */)  // _CID: Compatible ID
9837                 Name (_DDN, "RTEK Codec Controller ")  // _DDN: DOS Device Name
9838                 Name (_UID, One)  // _UID: Unique ID
9839                 Name (CHAN, Package (0x02)
9840                 {
9841                     One, 
9842                     0x017D7840
9843                 })
9844                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9845                 {
9846                     Name (SBUF, ResourceTemplate ()
9847                     {
9848                         I2cSerialBus (0x001C, ControllerInitiated, 0x00061A80,
9849                             AddressingMode7Bit, "\\_SB.I2C2",
9850                             0x00, ResourceConsumer, ,
9851                             )
9852                         GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
9853                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
9854                             )
9855                             {   // Pin list
9856                                 0x0004
9857                             }
9858                     })
9859                     Return (SBUF) /* \_SB_.I2C2.RTEK._CRS.SBUF */
9860                 }
9861
9862                 Method (_STA, 0, NotSerialized)  // _STA: Status
9863                 {
9864                     Return (0x0F)
9865                 }
9866
9867                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
9868                 {
9869                     CKC3 = Zero
9870                 }
9871
9872                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
9873                 {
9874                     CKC3 = One
9875                 }
9876
9877                 Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
9878                 {
9879                 }
9880
9881                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
9882                 {
9883                     Name (T_1, Zero)  // _T_x: Emitted by ASL Compiler
9884                     Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
9885                     If ((Arg0 == ToUUID ("a9240c44-f032-454d-80e5-7aeed80e9551")))
9886                     {
9887                         While (One)
9888                         {
9889                             T_0 = Arg2
9890                             If ((T_0 == 0x03))
9891                             {
9892                                 While (One)
9893                                 {
9894                                     T_1 = Arg3
9895                                     If ((T_1 == Zero))
9896                                     {
9897                                         Return (0x11)
9898                                     }
9899                                     Else
9900                                     {
9901                                         If ((T_1 == 0x04))
9902                                         {
9903                                             Return (Buffer (0x34)
9904                                             {
9905                                                 /* 0000 */  0x06, 0x00, 0x00, 0xCE, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9906                                                 /* 0008 */  0x03, 0x40, 0xBB, 0x00, 0x40, 0x00, 0x01, 0x00,  /* .@..@... */
9907                                                 /* 0010 */  0x01, 0x00, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00,  /* ....F... */
9908                                                 /* 0018 */  0x02, 0x00, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00,  /* ....E... */
9909                                                 /* 0020 */  0x01, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9910                                                 /* 0028 */  0x00, 0x01, 0x0D, 0x00, 0x1D, 0x00, 0x01, 0x00,  /* ........ */
9911                                                 /* 0030 */  0x86, 0x86, 0x01, 0x00                           /* .... */
9912                                             })
9913                                         }
9914                                         Else
9915                                         {
9916                                             Return (0x80000002)
9917                                         }
9918                                     }
9919
9920                                     Break
9921                                 }
9922                             }
9923
9924                             Break
9925                         }
9926                     }
9927
9928                     Return (0x80000002)
9929                 }
9930             }
9931
9932             Device (TTLV)
9933             {
9934                 Name (_ADR, Zero)  // _ADR: Address
9935                 Name (_HID, "10TI3100")  // _HID: Hardware ID
9936                 Name (_CID, "10TI3100")  // _CID: Compatible ID
9937                 Name (_DDN, "TI TLV320AIC3100 Codec Controller ")  // _DDN: DOS Device Name
9938                 Name (_UID, One)  // _UID: Unique ID
9939                 Name (OBJ1, Package (0x0A)
9940                 {
9941                     One, 
9942                     0x017D7840, 
9943                     One, 
9944                     0x97, 
9945                     One, 
9946                     0x86, 
9947                     One, 
9948                     One, 
9949                     0x14, 
9950                     0xB3
9951                 })
9952                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
9953                 {
9954                     Name (SBUF, ResourceTemplate ()
9955                     {
9956                         I2cSerialBus (0x0018, ControllerInitiated, 0x00061A80,
9957                             AddressingMode7Bit, "\\_SB.I2C2",
9958                             0x00, ResourceConsumer, ,
9959                             )
9960                     })
9961                     Return (SBUF) /* \_SB_.I2C2.TTLV._CRS.SBUF */
9962                 }
9963
9964                 Method (_STA, 0, NotSerialized)  // _STA: Status
9965                 {
9966                     Return (Zero)
9967                 }
9968
9969                 Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
9970                 {
9971                 }
9972             }
9973
9974             Device (CAM1)
9975             {
9976                 Name (_ADR, Zero)  // _ADR: Address
9977                 Name (_HID, "INT33BE" /* Camera Sensor OV5693 */)  // _HID: Hardware ID
9978                 Name (_CID, "INT33BE" /* Camera Sensor OV5693 */)  // _CID: Compatible ID
9979                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
9980                 Name (_DDN, "OV5693")  // _DDN: DOS Device Name
9981                 Name (_UID, One)  // _UID: Unique ID
9982                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
9983                 {
9984                     I2C5, 
9985                     ^^I2C5.PMIC
9986                 })
9987                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
9988                 {
9989                     P28X, 
9990                     P18X, 
9991                     CLK0
9992                 })
9993                 Name (PLDB, Package (0x01)
9994                 {
9995                     Buffer (0x14)
9996                     {
9997                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
9998                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
9999                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10000                     }
10001                 })
10002                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10003                 {
10004                     Return (PLDB) /* \_SB_.I2C2.CAM1.PLDB */
10005                 }
10006
10007                 Method (_STA, 0, NotSerialized)  // _STA: Status
10008                 {
10009                     If ((((RCAS == 0x02) && (PMID == One)) && (OSSL & 0x80
10010                         )))
10011                     {
10012                         Return (0x0F)
10013                     }
10014
10015                     Return (Zero)
10016                 }
10017
10018                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10019                 {
10020                     Name (SBUF, ResourceTemplate ()
10021                     {
10022                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10023                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10024                             )
10025                             {   // Pin list
10026                                 0x0011
10027                             }
10028                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10029                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10030                             )
10031                             {   // Pin list
10032                                 0x0015
10033                             }
10034                         I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
10035                             AddressingMode7Bit, "\\_SB.I2C2",
10036                             0x00, ResourceConsumer, ,
10037                             )
10038                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
10039                             AddressingMode7Bit, "\\_SB.I2C2",
10040                             0x00, ResourceConsumer, ,
10041                             )
10042                     })
10043                     Return (SBUF) /* \_SB_.I2C2.CAM1._CRS.SBUF */
10044                 }
10045
10046                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10047                 {
10048                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10049                     {
10050                         Return ("INT33BE")
10051                     }
10052
10053                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10054                     {
10055                         Return ("OV5693")
10056                     }
10057
10058                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10059                     {
10060                         Return ("12P2BA536")
10061                     }
10062
10063                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10064                     {
10065                         Return ("INTEL_RVP")
10066                     }
10067
10068                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10069                     {
10070                         Return (0x0102)
10071                     }
10072
10073                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10074                     {
10075                         Return (One)
10076                     }
10077
10078                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10079                     {
10080                         Return (Zero)
10081                     }
10082
10083                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10084                     {
10085                         Return (One)
10086                     }
10087
10088                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10089                     {
10090                         Return (Zero)
10091                     }
10092
10093                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10094                     {
10095                         Return (Zero)
10096                     }
10097
10098                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10099                     {
10100                         Return ("AD5823")
10101                     }
10102
10103                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10104                     {
10105                         If ((Arg2 == One))
10106                         {
10107                             Return (0x02)
10108                         }
10109
10110                         If ((Arg2 == 0x02))
10111                         {
10112                             Return (0x04001000)
10113                         }
10114
10115                         If ((Arg2 == 0x03))
10116                         {
10117                             Return (0x04000C01)
10118                         }
10119                     }
10120
10121                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10122                     {
10123                         If ((Arg2 == One))
10124                         {
10125                             Return (0x02)
10126                         }
10127
10128                         If ((Arg2 == 0x02))
10129                         {
10130                             Return (0x01001800)
10131                         }
10132
10133                         If ((Arg2 == 0x03))
10134                         {
10135                             Return (0x01011501)
10136                         }
10137                     }
10138
10139                     Return (Zero)
10140                 }
10141             }
10142
10143             Device (CAM3)
10144             {
10145                 Name (_ADR, Zero)  // _ADR: Address
10146                 Name (_HID, "INTCF1B")  // _HID: Hardware ID
10147                 Name (_CID, "INTCF1B")  // _CID: Compatible ID
10148                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10149                 Name (_DDN, "Sony IMX134")  // _DDN: DOS Device Name
10150                 Name (_UID, One)  // _UID: Unique ID
10151                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10152                 {
10153                     I2C5, 
10154                     ^^I2C5.PMIC
10155                 })
10156                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10157                 {
10158                     P28X, 
10159                     P18X, 
10160                     CLK0
10161                 })
10162                 Name (PLDB, Package (0x01)
10163                 {
10164                     Buffer (0x14)
10165                     {
10166                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10167                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10168                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10169                     }
10170                 })
10171                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10172                 {
10173                     Return (PLDB) /* \_SB_.I2C2.CAM3.PLDB */
10174                 }
10175
10176                 Method (_STA, 0, NotSerialized)  // _STA: Status
10177                 {
10178                     If ((((RCAS == One) && (PMID == One)) && (OSSL & 0x80
10179                         )))
10180                     {
10181                         Return (0x0F)
10182                     }
10183
10184                     Return (Zero)
10185                 }
10186
10187                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10188                 {
10189                     Name (SBUF, ResourceTemplate ()
10190                     {
10191                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10192                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10193                             )
10194                             {   // Pin list
10195                                 0x0011
10196                             }
10197                         I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80,
10198                             AddressingMode7Bit, "\\_SB.I2C2",
10199                             0x00, ResourceConsumer, ,
10200                             )
10201                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
10202                             AddressingMode7Bit, "\\_SB.I2C2",
10203                             0x00, ResourceConsumer, ,
10204                             )
10205                         I2cSerialBus (0x0054, ControllerInitiated, 0x00061A80,
10206                             AddressingMode7Bit, "\\_SB.I2C2",
10207                             0x00, ResourceConsumer, ,
10208                             )
10209                     })
10210                     Return (SBUF) /* \_SB_.I2C2.CAM3._CRS.SBUF */
10211                 }
10212
10213                 Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
10214                 {
10215                     CKC0 = 0x02
10216                 }
10217
10218                 Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
10219                 {
10220                     CKC0 = One
10221                     CKF0 = One
10222                     Sleep (0x05)
10223                 }
10224
10225                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10226                 {
10227                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10228                     {
10229                         Return ("INTCF1A")
10230                     }
10231
10232                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10233                     {
10234                         Return ("IMX175")
10235                     }
10236
10237                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10238                     {
10239                         Return ("13P2BA807")
10240                     }
10241
10242                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10243                     {
10244                         If ((BDID == 0x04))
10245                         {
10246                             If ((FBID == 0x02))
10247                             {
10248                                 Return ("INTEL_FFRD")
10249                             }
10250
10251                             If ((FBID == 0x03))
10252                             {
10253                                 Return ("INTEL_FFRD")
10254                             }
10255                         }
10256
10257                         Return ("INTEL_RVP")
10258                     }
10259
10260                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10261                     {
10262                         Return (0x0104)
10263                     }
10264
10265                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10266                     {
10267                         Return (One)
10268                     }
10269
10270                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10271                     {
10272                         Return (Zero)
10273                     }
10274
10275                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10276                     {
10277                         Return (0x02)
10278                     }
10279
10280                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10281                     {
10282                         Return (Zero)
10283                     }
10284
10285                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10286                     {
10287                         Return (Zero)
10288                     }
10289
10290                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10291                     {
10292                         Return (Zero)
10293                     }
10294
10295                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10296                     {
10297                         If ((Arg2 == One))
10298                         {
10299                             Return (0x03)
10300                         }
10301
10302                         If ((Arg2 == 0x02))
10303                         {
10304                             Return (0x04001000)
10305                         }
10306
10307                         If ((Arg2 == 0x03))
10308                         {
10309                             Return (0x04000C01)
10310                         }
10311
10312                         If ((Arg2 == 0x04))
10313                         {
10314                             Return (0x04005402)
10315                         }
10316                     }
10317
10318                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10319                     {
10320                         If ((Arg2 == One))
10321                         {
10322                             Return (One)
10323                         }
10324
10325                         If ((Arg2 == 0x02))
10326                         {
10327                             Return (0x01001800)
10328                         }
10329                     }
10330
10331                     Return (Zero)
10332                 }
10333             }
10334
10335             Device (CAM2)
10336             {
10337                 Name (_ADR, Zero)  // _ADR: Address
10338                 Name (_HID, "INT5648")  // _HID: Hardware ID
10339                 Name (_CID, "INT5648")  // _CID: Compatible ID
10340                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10341                 Name (_DDN, "OV5648")  // _DDN: DOS Device Name
10342                 Name (_UID, One)  // _UID: Unique ID
10343                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10344                 {
10345                     I2C5, 
10346                     ^^I2C5.PMI1
10347                 })
10348                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10349                 {
10350                     P28X, 
10351                     P18X, 
10352                     CLK0
10353                 })
10354                 Name (PLDB, Package (0x01)
10355                 {
10356                     Buffer (0x14)
10357                     {
10358                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10359                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10360                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10361                     }
10362                 })
10363                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10364                 {
10365                     Return (PLDB) /* \_SB_.I2C2.CAM2.PLDB */
10366                 }
10367
10368                 Method (_STA, 0, NotSerialized)  // _STA: Status
10369                 {
10370                     Return (0x0F)
10371                 }
10372
10373                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10374                 {
10375                     Name (SBUF, ResourceTemplate ()
10376                     {
10377                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10378                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10379                             )
10380                             {   // Pin list
10381                                 0x0011
10382                             }
10383                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10384                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10385                             )
10386                             {   // Pin list
10387                                 0x0015
10388                             }
10389                         I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
10390                             AddressingMode7Bit, "\\_SB.I2C2",
10391                             0x00, ResourceConsumer, ,
10392                             )
10393                         I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80,
10394                             AddressingMode7Bit, "\\_SB.I2C2",
10395                             0x00, ResourceConsumer, ,
10396                             )
10397                     })
10398                     Return (SBUF) /* \_SB_.I2C2.CAM2._CRS.SBUF */
10399                 }
10400
10401                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10402                 {
10403                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10404                     {
10405                         Return ("INT5648")
10406                     }
10407
10408                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10409                     {
10410                         Return ("OV5648")
10411                     }
10412
10413                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10414                     {
10415                         Return ("MTD5648")
10416                     }
10417
10418                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10419                     {
10420                         If ((BDID == 0x04))
10421                         {
10422                             If ((FBID == 0x02))
10423                             {
10424                                 Return ("INTEL_FFRD")
10425                             }
10426
10427                             If ((FBID == 0x03))
10428                             {
10429                                 Return ("INTEL_FFRD")
10430                             }
10431                         }
10432
10433                         Return ("INTEL_RVP")
10434                     }
10435
10436                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10437                     {
10438                         Return (0x0102)
10439                     }
10440
10441                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10442                     {
10443                         Return (One)
10444                     }
10445
10446                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10447                     {
10448                         Return (Zero)
10449                     }
10450
10451                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10452                     {
10453                         Return (One)
10454                     }
10455
10456                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10457                     {
10458                         Return (Zero)
10459                     }
10460
10461                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10462                     {
10463                         Return (Zero)
10464                     }
10465
10466                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10467                     {
10468                         Return ("DW9714")
10469                     }
10470
10471                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10472                     {
10473                         If ((Arg2 == One))
10474                         {
10475                             Return (0x02)
10476                         }
10477
10478                         If ((Arg2 == 0x02))
10479                         {
10480                             Return (0x04003600)
10481                         }
10482
10483                         If ((Arg2 == 0x03))
10484                         {
10485                             Return (0x04000C01)
10486                         }
10487                     }
10488
10489                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10490                     {
10491                         If ((Arg2 == One))
10492                         {
10493                             Return (0x02)
10494                         }
10495
10496                         If ((Arg2 == 0x02))
10497                         {
10498                             Return (0x01001801)
10499                         }
10500
10501                         If ((Arg2 == 0x03))
10502                         {
10503                             Return (0x1500)
10504                         }
10505                     }
10506
10507                     Return (Zero)
10508                 }
10509             }
10510
10511             Device (CAM4)
10512             {
10513                 Name (_ADR, Zero)  // _ADR: Address
10514                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10515                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10516                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10517                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10518                 Name (_UID, One)  // _UID: Unique ID
10519                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10520                 {
10521                     I2C5, 
10522                     ^^I2C5.PMI1
10523                 })
10524                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10525                 {
10526                     P28P, 
10527                     P18P, 
10528                     CLK0
10529                 })
10530                 Name (PLDB, Package (0x01)
10531                 {
10532                     Buffer (0x14)
10533                     {
10534                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10535                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10536                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10537                     }
10538                 })
10539                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10540                 {
10541                     Return (PLDB) /* \_SB_.I2C2.CAM4.PLDB */
10542                 }
10543
10544                 Method (_STA, 0, NotSerialized)  // _STA: Status
10545                 {
10546                     If ((((RCAS == 0x03) && (PMID == 0x05)) && (OSSL & 0x80
10547                         )))
10548                     {
10549                         Return (Zero)
10550                     }
10551
10552                     Return (Zero)
10553                 }
10554
10555                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10556                 {
10557                     Name (SBUF, ResourceTemplate ()
10558                     {
10559                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10560                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10561                             )
10562                             {   // Pin list
10563                                 0x0011
10564                             }
10565                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10566                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10567                             )
10568                             {   // Pin list
10569                                 0x0015
10570                             }
10571                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10572                             AddressingMode7Bit, "\\_SB.I2C2",
10573                             0x00, ResourceConsumer, ,
10574                             )
10575                     })
10576                     Return (SBUF) /* \_SB_.I2C2.CAM4._CRS.SBUF */
10577                 }
10578
10579                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10580                 {
10581                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10582                     {
10583                         Return ("INT33F8")
10584                     }
10585
10586                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10587                     {
10588                         Return ("GC2235")
10589                     }
10590
10591                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10592                     {
10593                         Return ("13P2BA807")
10594                     }
10595
10596                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10597                     {
10598                         If ((BDID == 0x04))
10599                         {
10600                             If ((FBID == 0x02))
10601                             {
10602                                 Return ("INTEL_FFRD")
10603                             }
10604
10605                             If ((FBID == 0x03))
10606                             {
10607                                 Return ("INTEL_FFRD")
10608                             }
10609                         }
10610
10611                         Return ("INTEL_RVP")
10612                     }
10613
10614                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10615                     {
10616                         Return (0x0101)
10617                     }
10618
10619                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10620                     {
10621                         Return (One)
10622                     }
10623
10624                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10625                     {
10626                         Return (Zero)
10627                     }
10628
10629                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10630                     {
10631                         Return (Zero)
10632                     }
10633
10634                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10635                     {
10636                         Return (Zero)
10637                     }
10638
10639                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10640                     {
10641                         Return (One)
10642                     }
10643
10644                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10645                     {
10646                         Return (Zero)
10647                     }
10648
10649                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10650                     {
10651                         If ((Arg2 == One))
10652                         {
10653                             Return (One)
10654                         }
10655
10656                         If ((Arg2 == 0x02))
10657                         {
10658                             Return (0x02003C00)
10659                         }
10660                     }
10661
10662                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10663                     {
10664                         If ((Arg2 == One))
10665                         {
10666                             Return (0x02)
10667                         }
10668
10669                         If ((Arg2 == 0x02))
10670                         {
10671                             Return (0x01001100)
10672                         }
10673
10674                         If ((Arg2 == 0x03))
10675                         {
10676                             Return (0x1501)
10677                         }
10678                     }
10679
10680                     Return (Zero)
10681                 }
10682             }
10683
10684             Device (CAM5)
10685             {
10686                 Name (_ADR, Zero)  // _ADR: Address
10687                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10688                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10689                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10690                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10691                 Name (_UID, One)  // _UID: Unique ID
10692                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10693                 {
10694                     I2C5, 
10695                     ^^I2C5.PMI1
10696                 })
10697                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10698                 {
10699                     P28P, 
10700                     P18P, 
10701                     CLK1
10702                 })
10703                 Name (PLDB, Package (0x01)
10704                 {
10705                     Buffer (0x14)
10706                     {
10707                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10708                         /* 0008 */  0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* a....... */
10709                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10710                     }
10711                 })
10712                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10713                 {
10714                     Return (PLDB) /* \_SB_.I2C2.CAM5.PLDB */
10715                 }
10716
10717                 Method (_STA, 0, NotSerialized)  // _STA: Status
10718                 {
10719                     If ((((FCAS == 0x02) && (PMID == 0x05)) && (OSSL & 0x80
10720                         )))
10721                     {
10722                         Return (0x0F)
10723                     }
10724
10725                     Return (0x0F)
10726                 }
10727
10728                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10729                 {
10730                     Name (SBUF, ResourceTemplate ()
10731                     {
10732                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10733                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10734                             )
10735                             {   // Pin list
10736                                 0x0012
10737                             }
10738                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10739                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10740                             )
10741                             {   // Pin list
10742                                 0x0016
10743                             }
10744                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10745                             AddressingMode7Bit, "\\_SB.I2C2",
10746                             0x00, ResourceConsumer, ,
10747                             )
10748                     })
10749                     Return (SBUF) /* \_SB_.I2C2.CAM5._CRS.SBUF */
10750                 }
10751
10752                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10753                 {
10754                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10755                     {
10756                         Return ("INT33F8")
10757                     }
10758
10759                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10760                     {
10761                         Return ("GC2235")
10762                     }
10763
10764                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10765                     {
10766                         Return ("GNDF130874")
10767                     }
10768
10769                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10770                     {
10771                         If ((BDID == 0x04))
10772                         {
10773                             If ((FBID == 0x02))
10774                             {
10775                                 Return ("INTEL_FFRD")
10776                             }
10777
10778                             If ((FBID == 0x03))
10779                             {
10780                                 Return ("INTEL_FFRD")
10781                             }
10782                         }
10783
10784                         Return ("INTEL_RVP")
10785                     }
10786
10787                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10788                     {
10789                         Return (0x0101)
10790                     }
10791
10792                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10793                     {
10794                         Return (Zero)
10795                     }
10796
10797                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10798                     {
10799                         Return (Zero)
10800                     }
10801
10802                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10803                     {
10804                         Return (0x02)
10805                     }
10806
10807                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10808                     {
10809                         Return (Zero)
10810                     }
10811
10812                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10813                     {
10814                         Return (One)
10815                     }
10816
10817                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10818                     {
10819                         Return (Zero)
10820                     }
10821
10822                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10823                     {
10824                         If ((Arg2 == One))
10825                         {
10826                             Return (One)
10827                         }
10828
10829                         If ((Arg2 == 0x02))
10830                         {
10831                             Return (0x04003C00)
10832                         }
10833                     }
10834
10835                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
10836                     {
10837                         If ((Arg2 == One))
10838                         {
10839                             Return (0x02)
10840                         }
10841
10842                         If ((Arg2 == 0x02))
10843                         {
10844                             Return (0x01001200)
10845                         }
10846
10847                         If ((Arg2 == 0x03))
10848                         {
10849                             Return (0x00011601)
10850                         }
10851                     }
10852
10853                     Return (Zero)
10854                 }
10855             }
10856
10857             Device (CAM6)
10858             {
10859                 Name (_ADR, Zero)  // _ADR: Address
10860                 Name (_HID, "INT33F8")  // _HID: Hardware ID
10861                 Name (_CID, "INT33F8")  // _CID: Compatible ID
10862                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
10863                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
10864                 Name (_UID, One)  // _UID: Unique ID
10865                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
10866                 {
10867                     I2C5, 
10868                     ^^I2C5.PMI2
10869                 })
10870                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
10871                 {
10872                     P28T, 
10873                     P18T, 
10874                     CLK0
10875                 })
10876                 Name (PLDB, Package (0x01)
10877                 {
10878                     Buffer (0x14)
10879                     {
10880                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
10881                         /* 0008 */  0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* i....... */
10882                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
10883                     }
10884                 })
10885                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
10886                 {
10887                     Return (PLDB) /* \_SB_.I2C2.CAM6.PLDB */
10888                 }
10889
10890                 Method (_STA, 0, NotSerialized)  // _STA: Status
10891                 {
10892                     If ((((RCAS == 0x03) && (PMID == 0x06)) && (OSSL & 0x80
10893                         )))
10894                     {
10895                         Return (Zero)
10896                     }
10897
10898                     Return (Zero)
10899                 }
10900
10901                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
10902                 {
10903                     Name (SBUF, ResourceTemplate ()
10904                     {
10905                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10906                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10907                             )
10908                             {   // Pin list
10909                                 0x0011
10910                             }
10911                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
10912                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
10913                             )
10914                             {   // Pin list
10915                                 0x0015
10916                             }
10917                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
10918                             AddressingMode7Bit, "\\_SB.I2C2",
10919                             0x00, ResourceConsumer, ,
10920                             )
10921                     })
10922                     Return (SBUF) /* \_SB_.I2C2.CAM6._CRS.SBUF */
10923                 }
10924
10925                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
10926                 {
10927                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
10928                     {
10929                         Return ("INT33F8")
10930                     }
10931
10932                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
10933                     {
10934                         Return ("GC2235")
10935                     }
10936
10937                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
10938                     {
10939                         Return ("13P2BA807")
10940                     }
10941
10942                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
10943                     {
10944                         If ((BDID == 0x04))
10945                         {
10946                             If ((FBID == 0x02))
10947                             {
10948                                 Return ("INTEL_FFRD")
10949                             }
10950
10951                             If ((FBID == 0x03))
10952                             {
10953                                 Return ("INTEL_FFRD")
10954                             }
10955                         }
10956
10957                         Return ("INTEL_RVP")
10958                     }
10959
10960                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
10961                     {
10962                         Return (0x0101)
10963                     }
10964
10965                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
10966                     {
10967                         Return (One)
10968                     }
10969
10970                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
10971                     {
10972                         Return (Zero)
10973                     }
10974
10975                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
10976                     {
10977                         Return (Zero)
10978                     }
10979
10980                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
10981                     {
10982                         Return (Zero)
10983                     }
10984
10985                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
10986                     {
10987                         Return (One)
10988                     }
10989
10990                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
10991                     {
10992                         Return (Zero)
10993                     }
10994
10995                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
10996                     {
10997                         If ((Arg2 == One))
10998                         {
10999                             Return (One)
11000                         }
11001
11002                         If ((Arg2 == 0x02))
11003                         {
11004                             Return (0x02003C00)
11005                         }
11006                     }
11007
11008                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
11009                     {
11010                         If ((Arg2 == One))
11011                         {
11012                             Return (0x02)
11013                         }
11014
11015                         If ((Arg2 == 0x02))
11016                         {
11017                             Return (0x01001100)
11018                         }
11019
11020                         If ((Arg2 == 0x03))
11021                         {
11022                             Return (0x01001501)
11023                         }
11024                     }
11025
11026                     Return (Zero)
11027                 }
11028             }
11029
11030             Device (CAM7)
11031             {
11032                 Name (_ADR, Zero)  // _ADR: Address
11033                 Name (_HID, "INT33F8")  // _HID: Hardware ID
11034                 Name (_CID, "INT33F8")  // _CID: Compatible ID
11035                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
11036                 Name (_DDN, "GC2235")  // _DDN: DOS Device Name
11037                 Name (_UID, 0x02)  // _UID: Unique ID
11038                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
11039                 {
11040                     I2C5, 
11041                     ^^I2C5.PMI2
11042                 })
11043                 Name (_PR0, Package (0x03)  // _PR0: Power Resources for D0
11044                 {
11045                     P28T, 
11046                     P1XT, 
11047                     CLK1
11048                 })
11049                 Name (PLDB, Package (0x01)
11050                 {
11051                     Buffer (0x14)
11052                     {
11053                         /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  /* ........ */
11054                         /* 0008 */  0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,  /* a....... */
11055                         /* 0010 */  0xFF, 0xFF, 0xFF, 0xFF                           /* .... */
11056                     }
11057                 })
11058                 Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
11059                 {
11060                     Return (PLDB) /* \_SB_.I2C2.CAM7.PLDB */
11061                 }
11062
11063                 Method (_STA, 0, NotSerialized)  // _STA: Status
11064                 {
11065                     If ((((FCAS == 0x02) && (PMID == 0x06)) && (OSSL & 0x80
11066                         )))
11067                     {
11068                         Return (Zero)
11069                     }
11070
11071                     Return (Zero)
11072                 }
11073
11074                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11075                 {
11076                     Name (SBUF, ResourceTemplate ()
11077                     {
11078                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11079                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11080                             )
11081                             {   // Pin list
11082                                 0x0012
11083                             }
11084                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11085                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11086                             )
11087                             {   // Pin list
11088                                 0x0016
11089                             }
11090                         I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80,
11091                             AddressingMode7Bit, "\\_SB.I2C2",
11092                             0x00, ResourceConsumer, ,
11093                             )
11094                     })
11095                     Return (SBUF) /* \_SB_.I2C2.CAM7._CRS.SBUF */
11096                 }
11097
11098                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
11099                 {
11100                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
11101                     {
11102                         Return ("INT33F8")
11103                     }
11104
11105                     If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c")))
11106                     {
11107                         Return ("GC2235")
11108                     }
11109
11110                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
11111                     {
11112                         Return ("GNDF130874")
11113                     }
11114
11115                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
11116                     {
11117                         If ((BDID == 0x04))
11118                         {
11119                             If ((FBID == 0x02))
11120                             {
11121                                 Return ("INTEL_FFRD")
11122                             }
11123
11124                             If ((FBID == 0x03))
11125                             {
11126                                 Return ("INTEL_FFRD")
11127                             }
11128                         }
11129
11130                         Return ("INTEL_RVP")
11131                     }
11132
11133                     If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea")))
11134                     {
11135                         Return (0x0101)
11136                     }
11137
11138                     If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab")))
11139                     {
11140                         Return (Zero)
11141                     }
11142
11143                     If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf")))
11144                     {
11145                         Return (Zero)
11146                     }
11147
11148                     If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d")))
11149                     {
11150                         Return (0x02)
11151                     }
11152
11153                     If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015")))
11154                     {
11155                         Return (Zero)
11156                     }
11157
11158                     If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6")))
11159                     {
11160                         Return (One)
11161                     }
11162
11163                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
11164                     {
11165                         Return (Zero)
11166                     }
11167
11168                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
11169                     {
11170                         If ((Arg2 == One))
11171                         {
11172                             Return (One)
11173                         }
11174
11175                         If ((Arg2 == 0x02))
11176                         {
11177                             Return (0x04003C00)
11178                         }
11179                     }
11180
11181                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
11182                     {
11183                         If ((Arg2 == One))
11184                         {
11185                             Return (0x02)
11186                         }
11187
11188                         If ((Arg2 == 0x02))
11189                         {
11190                             Return (0x01001200)
11191                         }
11192
11193                         If ((Arg2 == 0x03))
11194                         {
11195                             Return (0x00011601)
11196                         }
11197                     }
11198
11199                     Return (Zero)
11200                 }
11201             }
11202
11203             Device (STRA)
11204             {
11205                 Name (_ADR, Zero)  // _ADR: Address
11206                 Name (_HID, "INTCF1C")  // _HID: Hardware ID
11207                 Name (_CID, "INTCF1C")  // _CID: Compatible ID
11208                 Name (_SUB, "INTL0000")  // _SUB: Subsystem ID
11209                 Name (_DDN, "Flash LM3554")  // _DDN: DOS Device Name
11210                 Name (_UID, One)  // _UID: Unique ID
11211                 Method (_STA, 0, NotSerialized)  // _STA: Status
11212                 {
11213                     Return (0x0F)
11214                 }
11215
11216                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11217                 {
11218                     Name (SBUF, ResourceTemplate ()
11219                     {
11220                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11221                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11222                             )
11223                             {   // Pin list
11224                                 0x0013
11225                             }
11226                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11227                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11228                             )
11229                             {   // Pin list
11230                                 0x0014
11231                             }
11232                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11233                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11234                             )
11235                             {   // Pin list
11236                                 0x0010
11237                             }
11238                         I2cSerialBus (0x0053, ControllerInitiated, 0x00061A80,
11239                             AddressingMode7Bit, "\\_SB.I2C2",
11240                             0x00, ResourceConsumer, ,
11241                             )
11242                     })
11243                     Return (SBUF) /* \_SB_.I2C2.STRA._CRS.SBUF */
11244                 }
11245
11246                 Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
11247                 {
11248                     If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015")))
11249                     {
11250                         Return ("INTCF1C")
11251                     }
11252
11253                     If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee")))
11254                     {
11255                         Return ("LM3554")
11256                     }
11257
11258                     If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8")))
11259                     {
11260                         If ((BDID == 0x04))
11261                         {
11262                             If ((FBID == 0x02))
11263                             {
11264                                 Return ("INTEL_FFRD")
11265                             }
11266
11267                             If ((FBID == 0x03))
11268                             {
11269                                 Return ("INTEL_FFRD")
11270                             }
11271                         }
11272
11273                         Return ("INTEL_RVP")
11274                     }
11275
11276                     If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f")))
11277                     {
11278                         Return (Zero)
11279                     }
11280
11281                     If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881")))
11282                     {
11283                         If ((Arg2 == One))
11284                         {
11285                             Return (One)
11286                         }
11287
11288                         If ((Arg2 == 0x02))
11289                         {
11290                             Return (0x04005300)
11291                         }
11292                     }
11293
11294                     If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f")))
11295                     {
11296                         If ((Arg2 == One))
11297                         {
11298                             Return (0x04)
11299                         }
11300
11301                         If ((Arg2 == 0x02))
11302                         {
11303                             Return (0x01001302)
11304                         }
11305
11306                         If ((Arg2 == 0x03))
11307                         {
11308                             Return (0x01001403)
11309                         }
11310
11311                         If ((Arg2 == 0x04))
11312                         {
11313                             Return (0x01001001)
11314                         }
11315
11316                         If ((Arg2 == 0x05))
11317                         {
11318                             Return (0x01001104)
11319                         }
11320                     }
11321
11322                     Return (Zero)
11323                 }
11324             }
11325
11326             Device (TCS0)
11327             {
11328                 Name (_ADR, Zero)  // _ADR: Address
11329                 Name (_HID, "GODX0911")  // _HID: Hardware ID
11330                 Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
11331                 Name (_S0W, Zero)  // _S0W: S0 Device Wake State
11332                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
11333                 {
11334                     GPO1, 
11335                     I2C5
11336                 })
11337                 Method (_PS3, 0, Serialized)  // _PS3: Power State 3
11338                 {
11339                     If ((^^^I2C5.PMIC.AVBG == One)) {}
11340                 }
11341
11342                 Method (_PS0, 0, Serialized)  // _PS0: Power State 0
11343                 {
11344                     If ((^^^GPO1.AVBL == One))
11345                     {
11346                         ^^^GPO1.TCD3 = Zero
11347                     }
11348
11349                     Sleep (0x05)
11350                     If ((^^^I2C5.PMIC.AVBG == One)) {}
11351                     Sleep (0x1E)
11352                     If ((^^^GPO1.AVBL == One))
11353                     {
11354                         ^^^GPO1.TCD3 = One
11355                     }
11356
11357                     Sleep (0x78)
11358                 }
11359
11360                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11361                 {
11362                     Name (RBUF, ResourceTemplate ()
11363                     {
11364                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
11365                             AddressingMode7Bit, "\\_SB.I2C2",
11366                             0x00, ResourceConsumer, ,
11367                             )
11368                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11369                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11370                             )
11371                             {   // Pin list
11372                                 0x0044
11373                             }
11374                     })
11375                     Name (ABUF, ResourceTemplate ()
11376                     {
11377                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
11378                             AddressingMode7Bit, "\\_SB.I2C2",
11379                             0x00, ResourceConsumer, ,
11380                             )
11381                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11382                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11383                             )
11384                             {   // Pin list
11385                                 0x0044
11386                             }
11387                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11388                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11389                             )
11390                             {   // Pin list
11391                                 0x001A
11392                             }
11393                     })
11394                     If ((OSSL && 0x80))
11395                     {
11396                         Return (ABUF) /* \_SB_.I2C2.TCS0._CRS.ABUF */
11397                     }
11398                     Else
11399                     {
11400                         Return (RBUF) /* \_SB_.I2C2.TCS0._CRS.RBUF */
11401                     }
11402                 }
11403
11404                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
11405                 {
11406                     Name (T_1, Zero)  // _T_x: Emitted by ASL Compiler
11407                     Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
11408                     Debug = "Method _DSM begin"
11409                     If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
11410                     {
11411                         While (One)
11412                         {
11413                             T_0 = ToInteger (Arg2)
11414                             If ((T_0 == Zero))
11415                             {
11416                                 While (One)
11417                                 {
11418                                     T_1 = ToInteger (Arg1)
11419                                     If ((T_1 == One))
11420                                     {
11421                                         Debug = "Method _DSM Function Query"
11422                                         Return (Buffer (One)
11423                                         {
11424                                              0x03                                             /* . */
11425                                         })
11426                                     }
11427                                     Else
11428                                     {
11429                                         Return (Buffer (One)
11430                                         {
11431                                              0x00                                             /* . */
11432                                         })
11433                                     }
11434
11435                                     Break
11436                                 }
11437                             }
11438                             Else
11439                             {
11440                                 If ((T_0 == One))
11441                                 {
11442                                     Debug = "Method _DSM Function HID"
11443                                     Return (Zero)
11444                                 }
11445                                 Else
11446                                 {
11447                                     Return (Zero)
11448                                 }
11449                             }
11450
11451                             Break
11452                         }
11453                     }
11454                     Else
11455                     {
11456                         Return (Buffer (One)
11457                         {
11458                              0x00                                             /* . */
11459                         })
11460                     }
11461                 }
11462
11463                 Method (_STA, 0, NotSerialized)  // _STA: Status
11464                 {
11465                     If ((OSSL == 0x83))
11466                     {
11467                         Return (0x0F)
11468                     }
11469
11470                     Return (Zero)
11471                 }
11472             }
11473         }
11474
11475         Device (I2C3)
11476         {
11477             Name (_ADR, Zero)  // _ADR: Address
11478             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
11479             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
11480             Name (_DDN, "Intel(R) I2C Controller #3 - 80860F43")  // _DDN: DOS Device Name
11481             Name (_UID, 0x03)  // _UID: Unique ID
11482             Name (_DEP, Package (0x01)  // _DEP: Dependencies
11483             {
11484                 PEPD
11485             })
11486             Name (RBUF, ResourceTemplate ()
11487             {
11488                 Memory32Fixed (ReadWrite,
11489                     0x00000000,         // Address Base
11490                     0x00001000,         // Address Length
11491                     _Y1A)
11492                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
11493                 {
11494                     0x00000022,
11495                 }
11496                 FixedDMA (0x0014, 0x0004, Width32bit, )
11497                 FixedDMA (0x0015, 0x0005, Width32bit, )
11498             })
11499             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
11500             {
11501                 Return (SOCS) /* \SOCS */
11502             }
11503
11504             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11505             {
11506                 CreateDWordField (RBUF, \_SB.I2C3._Y1A._BAS, B0BA)  // _BAS: Base Address
11507                 CreateDWordField (RBUF, \_SB.I2C3._Y1A._LEN, B0LN)  // _LEN: Length
11508                 B0BA = I30A /* \I30A */
11509                 B0LN = I30L /* \I30L */
11510                 Return (RBUF) /* \_SB_.I2C3.RBUF */
11511             }
11512
11513             Method (_STA, 0, NotSerialized)  // _STA: Status
11514             {
11515                 If (((I30A == Zero) || (L23D == One)))
11516                 {
11517                     Return (Zero)
11518                 }
11519
11520                 Return (0x0F)
11521             }
11522
11523             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
11524             {
11525                 PSAT |= 0x03
11526                 Local0 = PSAT /* \_SB_.I2C3.PSAT */
11527             }
11528
11529             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
11530             {
11531                 PSAT &= 0xFFFFFFFC
11532                 Local0 = PSAT /* \_SB_.I2C3.PSAT */
11533             }
11534
11535             OperationRegion (KEYS, SystemMemory, I31A, 0x0100)
11536             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
11537             {
11538                 Offset (0x84), 
11539                 PSAT,   32
11540             }
11541
11542             Device (STAC)
11543             {
11544                 Name (_ADR, Zero)  // _ADR: Address
11545                 Name (_HID, "STAC0303")  // _HID: Hardware ID
11546                 Name (_CID, "INTACCL")  // _CID: Compatible ID
11547                 Name (_UID, One)  // _UID: Unique ID
11548                 Method (_STA, 0, NotSerialized)  // _STA: Status
11549                 {
11550                     If ((OSSL & 0x80))
11551                     {
11552                         If ((ACCS == 0x02))
11553                         {
11554                             Return (0x0F)
11555                         }
11556
11557                         Return (Zero)
11558                     }
11559                     Else
11560                     {
11561                         Return (Zero)
11562                     }
11563                 }
11564
11565                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11566                 {
11567                     Name (RBUF, ResourceTemplate ()
11568                     {
11569                         I2cSerialBus (0x0019, ControllerInitiated, 0x00061A80,
11570                             AddressingMode7Bit, "\\_SB.I2C3",
11571                             0x00, ResourceConsumer, ,
11572                             )
11573                     })
11574                     Return (RBUF) /* \_SB_.I2C3.STAC._CRS.RBUF */
11575                 }
11576             }
11577
11578             Device (STMA)
11579             {
11580                 Name (_ADR, Zero)  // _ADR: Address
11581                 Name (_HID, "STMA0303")  // _HID: Hardware ID
11582                 Name (_CID, "INTMAGN")  // _CID: Compatible ID
11583                 Name (_UID, One)  // _UID: Unique ID
11584                 Method (_STA, 0, NotSerialized)  // _STA: Status
11585                 {
11586                     If ((OSSL & 0x80))
11587                     {
11588                         If ((ACCS == 0x02))
11589                         {
11590                             Return (0x0F)
11591                         }
11592
11593                         Return (Zero)
11594                     }
11595                     Else
11596                     {
11597                         Return (Zero)
11598                     }
11599                 }
11600
11601                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11602                 {
11603                     Name (RBUF, ResourceTemplate ()
11604                     {
11605                         I2cSerialBus (0x001E, ControllerInitiated, 0x00061A80,
11606                             AddressingMode7Bit, "\\_SB.I2C3",
11607                             0x00, ResourceConsumer, ,
11608                             )
11609                         GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000,
11610                             "\\_SB.GPO0", 0x00, ResourceConsumer, ,
11611                             )
11612                             {   // Pin list
11613                                 0x005F
11614                             }
11615                         GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000,
11616                             "\\_SB.GPO0", 0x00, ResourceConsumer, ,
11617                             )
11618                             {   // Pin list
11619                                 0x003A
11620                             }
11621                     })
11622                     Return (RBUF) /* \_SB_.I2C3.STMA._CRS.RBUF */
11623                 }
11624             }
11625
11626             Device (STGY)
11627             {
11628                 Name (_ADR, Zero)  // _ADR: Address
11629                 Name (_HID, "STGY0320")  // _HID: Hardware ID
11630                 Name (_CID, "INTGYRO")  // _CID: Compatible ID
11631                 Name (_UID, One)  // _UID: Unique ID
11632                 Method (_STA, 0, NotSerialized)  // _STA: Status
11633                 {
11634                     If ((OSSL & 0x80))
11635                     {
11636                         If ((GYRS == 0x02))
11637                         {
11638                             Return (0x0F)
11639                         }
11640
11641                         Return (Zero)
11642                     }
11643                     Else
11644                     {
11645                         Return (Zero)
11646                     }
11647                 }
11648
11649                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11650                 {
11651                     Name (RBUF, ResourceTemplate ()
11652                     {
11653                         I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80,
11654                             AddressingMode7Bit, "\\_SB.I2C3",
11655                             0x00, ResourceConsumer, ,
11656                             )
11657                         GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000,
11658                             "\\_SB.GPO0", 0x00, ResourceConsumer, ,
11659                             )
11660                             {   // Pin list
11661                                 0x005E
11662                             }
11663                     })
11664                     Return (RBUF) /* \_SB_.I2C3.STGY._CRS.RBUF */
11665                 }
11666             }
11667
11668             Device (FUSI)
11669             {
11670                 Name (_ADR, Zero)  // _ADR: Address
11671                 Name (_HID, "FUSI0001")  // _HID: Hardware ID
11672                 Name (_CID, "INTFUSI")  // _CID: Compatible ID
11673                 Name (_UID, One)  // _UID: Unique ID
11674                 Method (_STA, 0, NotSerialized)  // _STA: Status
11675                 {
11676                     Return (Zero)
11677                 }
11678
11679                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11680                 {
11681                     Name (RBUF, ResourceTemplate ()
11682                     {
11683                         GpioInt (Edge, ActiveHigh, Exclusive, PullDown, 0x0000,
11684                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11685                             )
11686                             {   // Pin list
11687                                 0x0017
11688                             }
11689                         GpioInt (Edge, ActiveLow, Exclusive, PullDown, 0x0000,
11690                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11691                             )
11692                             {   // Pin list
11693                                 0x0006
11694                             }
11695                     })
11696                     Return (RBUF) /* \_SB_.I2C3.FUSI._CRS.RBUF */
11697                 }
11698             }
11699
11700             Device (ALSW)
11701             {
11702                 Name (_ADR, Zero)  // _ADR: Address
11703                 Name (_HID, "JSA01212")  // _HID: Hardware ID
11704                 Name (_CID, "INTLALS")  // _CID: Compatible ID
11705                 Name (_UID, One)  // _UID: Unique ID
11706                 Method (_STA, 0, NotSerialized)  // _STA: Status
11707                 {
11708                     If ((OSSL & 0x80))
11709                     {
11710                         Return (0x0F)
11711                     }
11712
11713                     Return (Zero)
11714                 }
11715
11716                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11717                 {
11718                     Name (RBUF, ResourceTemplate ()
11719                     {
11720                         I2cSerialBus (0x0044, ControllerInitiated, 0x00061A80,
11721                             AddressingMode7Bit, "\\_SB.I2C3",
11722                             0x00, ResourceConsumer, ,
11723                             )
11724                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11725                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11726                             )
11727                             {   // Pin list
11728                                 0x0006
11729                             }
11730                     })
11731                     Return (RBUF) /* \_SB_.I2C3.ALSW._CRS.RBUF */
11732                 }
11733             }
11734
11735             Device (SPBA)
11736             {
11737                 Name (_ADR, Zero)  // _ADR: Address
11738                 Name (_HID, "KXCJ9000")  // _HID: Hardware ID
11739                 Name (_CID, "INTACCL")  // _CID: Compatible ID
11740                 Name (_UID, One)  // _UID: Unique ID
11741                 Method (_STA, 0, NotSerialized)  // _STA: Status
11742                 {
11743                     If ((OSSL & 0x80))
11744                     {
11745                         If ((ACCS == One))
11746                         {
11747                             Return (0x0F)
11748                         }
11749
11750                         Return (Zero)
11751                     }
11752                     Else
11753                     {
11754                         Return (Zero)
11755                     }
11756                 }
11757
11758                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11759                 {
11760                     Name (RBUF, ResourceTemplate ()
11761                     {
11762                         I2cSerialBus (0x000F, ControllerInitiated, 0x00061A80,
11763                             AddressingMode7Bit, "\\_SB.I2C3",
11764                             0x00, ResourceConsumer, ,
11765                             )
11766                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11767                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11768                             )
11769                             {   // Pin list
11770                                 0x0017
11771                             }
11772                     })
11773                     Return (RBUF) /* \_SB_.I2C3.SPBA._CRS.RBUF */
11774                 }
11775             }
11776
11777             Device (SPBM)
11778             {
11779                 Name (_ADR, Zero)  // _ADR: Address
11780                 Name (_HID, "CPAK8963")  // _HID: Hardware ID
11781                 Name (_CID, "INTMAGN")  // _CID: Compatible ID
11782                 Name (_UID, One)  // _UID: Unique ID
11783                 Method (_STA, 0, NotSerialized)  // _STA: Status
11784                 {
11785                     If ((OSSL & 0x80))
11786                     {
11787                         If ((ACCS == One))
11788                         {
11789                             Return (0x0F)
11790                         }
11791
11792                         Return (Zero)
11793                     }
11794                     Else
11795                     {
11796                         Return (Zero)
11797                     }
11798                 }
11799
11800                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11801                 {
11802                     Name (RBUF, ResourceTemplate ()
11803                     {
11804                         I2cSerialBus (0x0013, ControllerInitiated, 0x00061A80,
11805                             AddressingMode7Bit, "\\_SB.I2C3",
11806                             0x00, ResourceConsumer, ,
11807                             )
11808                     })
11809                     Return (RBUF) /* \_SB_.I2C3.SPBM._CRS.RBUF */
11810                 }
11811             }
11812
11813             Device (SPBG)
11814             {
11815                 Name (_ADR, Zero)  // _ADR: Address
11816                 Name (_HID, "BSBG0160")  // _HID: Hardware ID
11817                 Name (_CID, "INTGYRO")  // _CID: Compatible ID
11818                 Name (_UID, One)  // _UID: Unique ID
11819                 Method (_STA, 0, NotSerialized)  // _STA: Status
11820                 {
11821                     If ((OSSL & 0x80))
11822                     {
11823                         If ((GYRS == One))
11824                         {
11825                             Return (0x0F)
11826                         }
11827
11828                         Return (Zero)
11829                     }
11830                     Else
11831                     {
11832                         Return (Zero)
11833                     }
11834                 }
11835
11836                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11837                 {
11838                     Name (RBUF, ResourceTemplate ()
11839                     {
11840                         I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80,
11841                             AddressingMode7Bit, "\\_SB.I2C3",
11842                             0x00, ResourceConsumer, ,
11843                             )
11844                     })
11845                     Return (RBUF) /* \_SB_.I2C3.SPBG._CRS.RBUF */
11846                 }
11847             }
11848
11849             Device (SAR1)
11850             {
11851                 Name (_ADR, Zero)  // _ADR: Address
11852                 Name (_HID, "SASX9500")  // _HID: Hardware ID
11853                 Name (_CID, "INTSRCL")  // _CID: Compatible ID
11854                 Name (_UID, One)  // _UID: Unique ID
11855                 Method (_STA, 0, NotSerialized)  // _STA: Status
11856                 {
11857                     If ((OSSL & 0x80))
11858                     {
11859                         Return (0x0F)
11860                     }
11861
11862                     Return (Zero)
11863                 }
11864
11865                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11866                 {
11867                     Name (RBUF, ResourceTemplate ()
11868                     {
11869                         GpioInt (Edge, ActiveBoth, Exclusive, PullDown, 0x0000,
11870                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11871                             )
11872                             {   // Pin list
11873                                 0x0013
11874                             }
11875                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11876                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11877                             )
11878                             {   // Pin list
11879                                 0x0014
11880                             }
11881                     })
11882                     Return (RBUF) /* \_SB_.I2C3.SAR1._CRS.RBUF */
11883                 }
11884             }
11885         }
11886
11887         Device (MDM)
11888         {
11889             Name (_HID, EisaId ("MCD0001"))  // _HID: Hardware ID
11890             Name (_CID, "MCD0001")  // _CID: Compatible ID
11891             Name (CPU, "ValleyView2")
11892             Name (MDMN, "XMM_6260")
11893             Method (_STA, 0, NotSerialized)  // _STA: Status
11894             {
11895                 If ((OSSL & 0x80))
11896                 {
11897                     Return (0x0F)
11898                 }
11899
11900                 Return (Zero)
11901             }
11902
11903             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11904             {
11905                 Name (UBUF, ResourceTemplate ()
11906                 {
11907                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11908                         "\\_SB.GPO1", 0x00, ResourceConsumer, ,
11909                         )
11910                         {   // Pin list
11911                             0x0017
11912                         }
11913                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11914                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11915                         )
11916                         {   // Pin list
11917                             0x001E
11918                         }
11919                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
11920                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11921                         )
11922                         {   // Pin list
11923                             0x001C
11924                         }
11925                     GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
11926                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
11927                         )
11928                         {   // Pin list
11929                             0x001D
11930                         }
11931                 })
11932                 Return (UBUF) /* \_SB_.MDM_._CRS.UBUF */
11933             }
11934         }
11935
11936         Device (I2C4)
11937         {
11938             Name (_ADR, Zero)  // _ADR: Address
11939             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
11940             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
11941             Name (_DDN, "Intel(R) I2C Controller #4 - 80860F44")  // _DDN: DOS Device Name
11942             Name (_UID, 0x04)  // _UID: Unique ID
11943             Name (_DEP, Package (0x01)  // _DEP: Dependencies
11944             {
11945                 PEPD
11946             })
11947             Name (RBUF, ResourceTemplate ()
11948             {
11949                 Memory32Fixed (ReadWrite,
11950                     0x00000000,         // Address Base
11951                     0x00001000,         // Address Length
11952                     _Y1B)
11953                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
11954                 {
11955                     0x00000023,
11956                 }
11957                 FixedDMA (0x0016, 0x0006, Width32bit, )
11958                 FixedDMA (0x0017, 0x0007, Width32bit, )
11959             })
11960             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
11961             {
11962                 Return (SOCS) /* \SOCS */
11963             }
11964
11965             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
11966             {
11967                 CreateDWordField (RBUF, \_SB.I2C4._Y1B._BAS, B0BA)  // _BAS: Base Address
11968                 CreateDWordField (RBUF, \_SB.I2C4._Y1B._LEN, B0LN)  // _LEN: Length
11969                 B0BA = I40A /* \I40A */
11970                 B0LN = I40L /* \I40L */
11971                 Return (RBUF) /* \_SB_.I2C4.RBUF */
11972             }
11973
11974             Method (_STA, 0, NotSerialized)  // _STA: Status
11975             {
11976                 If (((I40A == Zero) || (L24D == One)))
11977                 {
11978                     Return (Zero)
11979                 }
11980
11981                 Return (0x0F)
11982             }
11983
11984             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
11985             {
11986                 PSAT |= 0x03
11987                 Local0 = PSAT /* \_SB_.I2C4.PSAT */
11988             }
11989
11990             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
11991             {
11992                 PSAT &= 0xFFFFFFFC
11993                 Local0 = PSAT /* \_SB_.I2C4.PSAT */
11994             }
11995
11996             OperationRegion (KEYS, SystemMemory, I41A, 0x0100)
11997             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
11998             {
11999                 Offset (0x84), 
12000                 PSAT,   32
12001             }
12002
12003             Device (TCS0)
12004             {
12005                 Name (_ADR, Zero)  // _ADR: Address
12006                 Name (_HID, "GODX0911")  // _HID: Hardware ID
12007                 Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */)  // _CID: Compatible ID
12008                 Name (_S0W, Zero)  // _S0W: S0 Device Wake State
12009                 Name (_DEP, Package (0x02)  // _DEP: Dependencies
12010                 {
12011                     GPO1, 
12012                     I2C5
12013                 })
12014                 Method (_PS3, 0, Serialized)  // _PS3: Power State 3
12015                 {
12016                     If ((^^^I2C5.PMIC.AVBG == One)) {}
12017                 }
12018
12019                 Method (_PS0, 0, Serialized)  // _PS0: Power State 0
12020                 {
12021                     If ((^^^GPO1.AVBL == One))
12022                     {
12023                         ^^^GPO1.TCD3 = Zero
12024                     }
12025
12026                     Sleep (0x05)
12027                     If ((^^^I2C5.PMIC.AVBG == One)) {}
12028                     Sleep (0x1E)
12029                     If ((^^^GPO1.AVBL == One))
12030                     {
12031                         ^^^GPO1.TCD3 = One
12032                     }
12033
12034                     Sleep (0x78)
12035                 }
12036
12037                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
12038                 {
12039                     Name (RBUF, ResourceTemplate ()
12040                     {
12041                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
12042                             AddressingMode7Bit, "\\_SB.I2C4",
12043                             0x00, ResourceConsumer, ,
12044                             )
12045                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
12046                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
12047                             )
12048                             {   // Pin list
12049                                 0x0044
12050                             }
12051                     })
12052                     Name (ABUF, ResourceTemplate ()
12053                     {
12054                         I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0,
12055                             AddressingMode7Bit, "\\_SB.I2C4",
12056                             0x00, ResourceConsumer, ,
12057                             )
12058                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
12059                             "\\_SB.GPO2", 0x00, ResourceConsumer, ,
12060                             )
12061                             {   // Pin list
12062                                 0x0044
12063                             }
12064                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12065                             "\\_SB.GPO1", 0x00, ResourceConsumer, ,
12066                             )
12067                             {   // Pin list
12068                                 0x001A
12069                             }
12070                     })
12071                     If ((OSSL && 0x80))
12072                     {
12073                         Return (ABUF) /* \_SB_.I2C4.TCS0._CRS.ABUF */
12074                     }
12075                     Else
12076                     {
12077                         Return (RBUF) /* \_SB_.I2C4.TCS0._CRS.RBUF */
12078                     }
12079                 }
12080
12081                 Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
12082                 {
12083                     Name (T_1, Zero)  // _T_x: Emitted by ASL Compiler
12084                     Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
12085                     Debug = "Method _DSM begin"
12086                     If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
12087                     {
12088                         While (One)
12089                         {
12090                             T_0 = ToInteger (Arg2)
12091                             If ((T_0 == Zero))
12092                             {
12093                                 While (One)
12094                                 {
12095                                     T_1 = ToInteger (Arg1)
12096                                     If ((T_1 == One))
12097                                     {
12098                                         Debug = "Method _DSM Function Query"
12099                                         Return (Buffer (One)
12100                                         {
12101                                              0x03                                             /* . */
12102                                         })
12103                                     }
12104                                     Else
12105                                     {
12106                                         Return (Buffer (One)
12107                                         {
12108                                              0x00                                             /* . */
12109                                         })
12110                                     }
12111
12112                                     Break
12113                                 }
12114                             }
12115                             Else
12116                             {
12117                                 If ((T_0 == One))
12118                                 {
12119                                     Debug = "Method _DSM Function HID"
12120                                     Return (Zero)
12121                                 }
12122                                 Else
12123                                 {
12124                                     Return (Zero)
12125                                 }
12126                             }
12127
12128                             Break
12129                         }
12130                     }
12131                     Else
12132                     {
12133                         Return (Buffer (One)
12134                         {
12135                              0x00                                             /* . */
12136                         })
12137                     }
12138                 }
12139
12140                 Method (_STA, 0, NotSerialized)  // _STA: Status
12141                 {
12142                     If ((OSSL == 0x83))
12143                     {
12144                         Return (Zero)
12145                     }
12146
12147                     Return (0x0F)
12148                 }
12149             }
12150         }
12151
12152         Device (I2C5)
12153         {
12154             Name (_ADR, Zero)  // _ADR: Address
12155             Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _HID: Hardware ID
12156             Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */)  // _CID: Compatible ID
12157             Name (_DDN, "Intel(R) I2C Controller #5 - 80860F45")  // _DDN: DOS Device Name
12158             Name (_UID, 0x05)  // _UID: Unique ID
12159             Method (_SEM, 0, NotSerialized)
12160             {
12161                 If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06)))
12162                 {
12163                     ADBG ("$COVE")
12164                     Return (One)
12165                 }
12166                 Else
12167                 {
12168                     ADBG ("CCOVE")
12169                     Return (Zero)
12170                 }
12171             }
12172
12173             Name (_DEP, Package (0x01)  // _DEP: Dependencies
12174             {
12175                 PEPD
12176             })
12177             Name (RBUF, ResourceTemplate ()
12178             {
12179                 Memory32Fixed (ReadWrite,
12180                     0x00000000,         // Address Base
12181                     0x00001000,         // Address Length
12182                     _Y1C)
12183                 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
12184                 {
12185                     0x00000024,
12186                 }
12187                 FixedDMA (0x0018, 0x0000, Width32bit, )
12188                 FixedDMA (0x0019, 0x0001, Width32bit, )
12189             })
12190             Method (_HRV, 0, NotSerialized)  // _HRV: Hardware Revision
12191             {
12192                 Return (SOCS) /* \SOCS */
12193             }
12194
12195             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
12196             {
12197                 CreateDWordField (RBUF, \_SB.I2C5._Y1C._BAS, B0BA)  // _BAS: Base Address
12198                 CreateDWordField (RBUF, \_SB.I2C5._Y1C._LEN, B0LN)  // _LEN: Length
12199                 B0BA = I50A /* \I50A */
12200                 B0LN = I50L /* \I50L */
12201                 Return (RBUF) /* \_SB_.I2C5.RBUF */
12202             }
12203
12204             Method (_STA, 0, NotSerialized)  // _STA: Status
12205             {
12206                 If (((I50A == Zero) || (L25D == One)))
12207                 {
12208                     Return (Zero)
12209                 }
12210
12211                 Return (0x0F)
12212             }
12213
12214             Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
12215             {
12216                 If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06)))
12217                 {
12218                     Return (Zero)
12219                 }
12220
12221                 PSAT |= 0x03
12222                 Local0 = PSAT /* \_SB_.I2C5.PSAT */
12223
12224                 Return (Zero)
12225             }
12226
12227             Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
12228             {
12229                 PSAT &= 0xFFFFFFFC
12230                 Local0 = PSAT /* \_SB_.I2C5.PSAT */
12231             }
12232
12233             OperationRegion (KEYS, SystemMemory, I51A, 0x0100)
12234             Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
12235             {
12236                 Offset (0x84), 
12237                 PSAT,   32
12238             }
12239
12240             Name (XPMC, ResourceTemplate ()
12241             {
12242                 I2cSerialBus (0x0034, ControllerInitiated, 0x00061A80,
12243                     AddressingMode7Bit, "\\_SB.I2C5",
12244                     0x00, ResourceConsumer, ,
12245                     )
12246             })
12247             OperationRegion (XSCG, GenericSerialBus, Zero, 0x0100)
12248             Field (XSCG, BufferAcc, NoLock, Preserve)
12249             {
12250                 Connection (XPMC), 
12251                 AccessAs (BufferAcc, AttribByte), 
12252                 XP00,   8
12253             }
12254
12255             Field (XSCG, BufferAcc, NoLock, Preserve)
12256             {
12257                 Connection (XPMC), 
12258                 Offset (0x2C), 
12259                 AccessAs (BufferAcc, AttribByte), 
12260                 XP2C,   8, 
12261                 XP2D,   8, 
12262                 XP2E,   8, 
12263                 XP2F,   8, 
12264                 XP30,   8, 
12265                 XP31,   8, 
12266                 XP32,   8
12267             }
12268
12269             Field (XSCG, BufferAcc, NoLock, Preserve)
12270             {
12271                 Connection (XPMC), 
12272                 Offset (0x2C), 
12273                 AccessAs (BufferAcc, AttribBytes (0x0A)), 
12274                 XPCG,   8
12275             }
12276         }
12277
12278         Scope (I2C5)
12279         {
12280             Device (PMI1)
12281             {
12282                 Name (_ADR, Zero)  // _ADR: Address
12283                 Name (_HID, "INT33F4" /* XPOWER PMIC Controller */)  // _HID: Hardware ID
12284                 Name (_CID, "INT33F4" /* XPOWER PMIC Controller */)  // _CID: Compatible ID
12285                 Name (_DDN, "XPOWER PMIC Controller")  // _DDN: DOS Device Name
12286                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
12287                 Name (_UID, One)  // _UID: Unique ID
12288                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
12289                 {
12290                     I2C5
12291                 })
12292                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
12293                 {
12294                     Name (SBUF, ResourceTemplate ()
12295                     {
12296                         I2cSerialBus (0x0034, ControllerInitiated, 0x000F4240,
12297                             AddressingMode7Bit, "\\_SB.I2C5",
12298                             0x00, ResourceConsumer, ,
12299                             )
12300                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12301                         {
12302                             0x00000043,
12303                         }
12304                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12305                         {
12306                             0x00000043,
12307                         }
12308                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12309                         {
12310                             0x00000043,
12311                         }
12312                     })
12313                     Return (SBUF) /* \_SB_.I2C5.PMI1._CRS.SBUF */
12314                 }
12315
12316                 Method (_STA, 0, NotSerialized)  // _STA: Status
12317                 {
12318                     If ((PMEN == Zero))
12319                     {
12320                         Return (Zero)
12321                     }
12322
12323                     If ((PMID == 0x05))
12324                     {
12325                         ADBG ("XPWR_DCOVE")
12326                         Return (0x0F)
12327                     }
12328
12329                     Return (Zero)
12330                 }
12331
12332                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
12333                 Field (PMOP, DWordAcc, NoLock, Preserve)
12334                 {
12335                     ALD1,   32, 
12336                     ALD2,   32, 
12337                     ALD3,   32, 
12338                     DLD1,   32, 
12339                     DLD2,   32, 
12340                     DLD3,   32, 
12341                     DLD4,   32, 
12342                     ELD1,   32, 
12343                     ELD2,   32, 
12344                     ELD3,   32, 
12345                     FLD1,   32, 
12346                     FLD2,   32, 
12347                     FLD3,   32, 
12348                     BUC1,   32, 
12349                     BUC2,   32, 
12350                     BUC3,   32, 
12351                     BUC4,   32, 
12352                     BUC5,   32, 
12353                     BUC6,   32, 
12354                     GPI1,   32
12355                 }
12356
12357                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
12358                 Field (DPTF, DWordAcc, NoLock, Preserve)
12359                 {
12360                     TMP0,   32, 
12361                     AX00,   32, 
12362                     AX01,   32, 
12363                     TMP1,   32, 
12364                     AX10,   32, 
12365                     AX11,   32, 
12366                     TMP2,   32, 
12367                     AX20,   32, 
12368                     AX21,   32, 
12369                     TMP3,   32, 
12370                     AX30,   32, 
12371                     AX31,   32, 
12372                     TMP4,   32, 
12373                     AX40,   32, 
12374                     AX41,   32, 
12375                     TMP5,   32, 
12376                     AX50,   32, 
12377                     AX51,   32, 
12378                     PEN0,   32, 
12379                     PEN1,   32, 
12380                     PEN2,   32, 
12381                     PEN3,   32, 
12382                     PEN4,   32, 
12383                     PEN5,   32
12384                 }
12385
12386                 Name (LPAT, Package (0x44)
12387                 {
12388                     0x091B, 
12389                     0x3952, 
12390                     0x094D, 
12391                     0x2B69, 
12392                     0x097F, 
12393                     0x2135, 
12394                     0x09B1, 
12395                     0x19A7, 
12396                     0x09E3, 
12397                     0x13FE, 
12398                     0x0A15, 
12399                     0x0FB8, 
12400                     0x0A47, 
12401                     0x0C74, 
12402                     0x0A79, 
12403                     0x09EE, 
12404                     0x0AAB, 
12405                     0x07F9, 
12406                     0x0ADD, 
12407                     0x0674, 
12408                     0x0B0F, 
12409                     0x0540, 
12410                     0x0B41, 
12411                     0x044D, 
12412                     0x0B73, 
12413                     0x038A, 
12414                     0x0BA5, 
12415                     0x02EE, 
12416                     0x0BD7, 
12417                     0x0270, 
12418                     0x0C09, 
12419                     0x0209, 
12420                     0x0C3B, 
12421                     0x01B6, 
12422                     0x0C6D, 
12423                     0x0171, 
12424                     0x0C9F, 
12425                     0x0138, 
12426                     0x0CD1, 
12427                     0x0109, 
12428                     0x0D03, 
12429                     0xE2, 
12430                     0x0D35, 
12431                     0xC2, 
12432                     0x0D67, 
12433                     0xA7, 
12434                     0x0D99, 
12435                     0x90, 
12436                     0x0DCB, 
12437                     0x7D, 
12438                     0x0DFD, 
12439                     0x6D, 
12440                     0x0E2F, 
12441                     0x5F, 
12442                     0x0E61, 
12443                     0x53, 
12444                     0x0E93, 
12445                     0x49, 
12446                     0x0EC5, 
12447                     0x40, 
12448                     0x0EF7, 
12449                     0x39, 
12450                     0x0F29, 
12451                     0x32, 
12452                     0x0F5B, 
12453                     0x2D, 
12454                     0x0F8D, 
12455                     0x28
12456                 })
12457                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
12458                 Field (GPOP, ByteAcc, NoLock, Preserve)
12459                 {
12460                     Connection (
12461                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12462                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12463                             )
12464                             {   // Pin list
12465                                 0x0020
12466                             }
12467                     ), 
12468                     GMP0,   1, 
12469                     Connection (
12470                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12471                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12472                             )
12473                             {   // Pin list
12474                                 0x0021
12475                             }
12476                     ), 
12477                     GX00,   1, 
12478                     Connection (
12479                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12480                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12481                             )
12482                             {   // Pin list
12483                                 0x0022
12484                             }
12485                     ), 
12486                     GX01,   1, 
12487                     Connection (
12488                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12489                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12490                             )
12491                             {   // Pin list
12492                                 0x0023
12493                             }
12494                     ), 
12495                     GMP1,   1, 
12496                     Connection (
12497                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12498                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12499                             )
12500                             {   // Pin list
12501                                 0x0024
12502                             }
12503                     ), 
12504                     GX10,   1, 
12505                     Connection (
12506                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12507                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12508                             )
12509                             {   // Pin list
12510                                 0x0025
12511                             }
12512                     ), 
12513                     GX11,   1, 
12514                     Connection (
12515                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12516                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12517                             )
12518                             {   // Pin list
12519                                 0x0026
12520                             }
12521                     ), 
12522                     GMP2,   1, 
12523                     Connection (
12524                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12525                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12526                             )
12527                             {   // Pin list
12528                                 0x0027
12529                             }
12530                     ), 
12531                     GX20,   1, 
12532                     Connection (
12533                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12534                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12535                             )
12536                             {   // Pin list
12537                                 0x0028
12538                             }
12539                     ), 
12540                     GX21,   1, 
12541                     Connection (
12542                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12543                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12544                             )
12545                             {   // Pin list
12546                                 0x0029
12547                             }
12548                     ), 
12549                     GMP3,   1, 
12550                     Connection (
12551                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12552                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12553                             )
12554                             {   // Pin list
12555                                 0x002A
12556                             }
12557                     ), 
12558                     GX30,   1, 
12559                     Connection (
12560                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12561                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12562                             )
12563                             {   // Pin list
12564                                 0x002B
12565                             }
12566                     ), 
12567                     GX31,   1, 
12568                     Connection (
12569                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12570                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12571                             )
12572                             {   // Pin list
12573                                 0x002C
12574                             }
12575                     ), 
12576                     GMP4,   1, 
12577                     Connection (
12578                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12579                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12580                             )
12581                             {   // Pin list
12582                                 0x002D
12583                             }
12584                     ), 
12585                     GX40,   1, 
12586                     Connection (
12587                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12588                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12589                             )
12590                             {   // Pin list
12591                                 0x002E
12592                             }
12593                     ), 
12594                     GX41,   1, 
12595                     Connection (
12596                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12597                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12598                             )
12599                             {   // Pin list
12600                                 0x002F
12601                             }
12602                     ), 
12603                     GMP5,   1, 
12604                     Connection (
12605                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12606                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12607                             )
12608                             {   // Pin list
12609                                 0x0030
12610                             }
12611                     ), 
12612                     GX50,   1, 
12613                     Connection (
12614                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12615                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12616                             )
12617                             {   // Pin list
12618                                 0x0031
12619                             }
12620                     ), 
12621                     GX51,   1, 
12622                     Connection (
12623                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12624                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12625                             )
12626                             {   // Pin list
12627                                 0x0032
12628                             }
12629                     ), 
12630                     GEN0,   1, 
12631                     Connection (
12632                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12633                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12634                             )
12635                             {   // Pin list
12636                                 0x0033
12637                             }
12638                     ), 
12639                     GEN1,   1, 
12640                     Connection (
12641                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12642                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12643                             )
12644                             {   // Pin list
12645                                 0x0034
12646                             }
12647                     ), 
12648                     GEN2,   1, 
12649                     Connection (
12650                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12651                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12652                             )
12653                             {   // Pin list
12654                                 0x0035
12655                             }
12656                     ), 
12657                     GEN3,   1, 
12658                     Connection (
12659                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12660                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12661                             )
12662                             {   // Pin list
12663                                 0x0036
12664                             }
12665                     ), 
12666                     GEN4,   1, 
12667                     Connection (
12668                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12669                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12670                             )
12671                             {   // Pin list
12672                                 0x0037
12673                             }
12674                     ), 
12675                     GEN5,   1, 
12676                     Connection (
12677                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12678                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12679                             )
12680                             {   // Pin list
12681                                 0x0040
12682                             }
12683                     ), 
12684                     G28X,   1, 
12685                     Connection (
12686                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12687                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12688                             )
12689                             {   // Pin list
12690                                 0x0048
12691                             }
12692                     ), 
12693                     G18X,   1, 
12694                     Connection (
12695                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12696                             "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
12697                             )
12698                             {   // Pin list
12699                                 0x0053
12700                             }
12701                     ), 
12702                     GSDX,   1
12703                 }
12704
12705                 Name (AVBL, Zero)
12706                 Name (AVBD, Zero)
12707                 Name (AVBG, Zero)
12708                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
12709                 {
12710                     If ((Arg0 == 0x08))
12711                     {
12712                         AVBG = Arg1
12713                     }
12714
12715                     If ((Arg0 == 0x8D))
12716                     {
12717                         AVBL = Arg1
12718                     }
12719
12720                     If ((Arg0 == 0x8C))
12721                     {
12722                         AVBD = Arg1
12723                     }
12724                 }
12725             }
12726
12727             Device (PMI2)
12728             {
12729                 Name (_ADR, Zero)  // _ADR: Address
12730                 Name (_HID, "INT33F5" /* TI PMIC Controller */)  // _HID: Hardware ID
12731                 Name (_CID, "INT33F5" /* TI PMIC Controller */)  // _CID: Compatible ID
12732                 Name (_DDN, "TI PMIC Controller")  // _DDN: DOS Device Name
12733                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
12734                 Name (_UID, One)  // _UID: Unique ID
12735                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
12736                 {
12737                     I2C5
12738                 })
12739                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
12740                 {
12741                     Name (SBUF, ResourceTemplate ()
12742                     {
12743                         I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240,
12744                             AddressingMode7Bit, "\\_SB.I2C5",
12745                             0x00, ResourceConsumer, ,
12746                             )
12747                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12748                         {
12749                             0x00000043,
12750                         }
12751                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12752                         {
12753                             0x00000043,
12754                         }
12755                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
12756                         {
12757                             0x00000043,
12758                         }
12759                     })
12760                     Return (SBUF) /* \_SB_.I2C5.PMI2._CRS.SBUF */
12761                 }
12762
12763                 Method (_STA, 0, NotSerialized)  // _STA: Status
12764                 {
12765                     If ((PMEN == Zero))
12766                     {
12767                         Return (Zero)
12768                     }
12769
12770                     If ((PMID == 0x06))
12771                     {
12772                         ADBG ("TI_DCOVE")
12773                         Return (0x0F)
12774                     }
12775
12776                     Return (Zero)
12777                 }
12778
12779                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
12780                 Field (PMOP, DWordAcc, NoLock, Preserve)
12781                 {
12782                     LDO1,   32, 
12783                     LDO2,   32, 
12784                     LDO3,   32, 
12785                     LDO5,   32, 
12786                     LDO6,   32, 
12787                     LDO7,   32, 
12788                     LDO8,   32, 
12789                     LDO9,   32, 
12790                     LD10,   32, 
12791                     LD11,   32, 
12792                     LD12,   32, 
12793                     LD13,   32, 
12794                     LD14,   32
12795                 }
12796
12797                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
12798                 Field (DPTF, DWordAcc, NoLock, Preserve)
12799                 {
12800                     TMP0,   32, 
12801                     AX00,   32, 
12802                     AX01,   32, 
12803                     TMP1,   32, 
12804                     AX10,   32, 
12805                     AX11,   32, 
12806                     TMP2,   32, 
12807                     AX20,   32, 
12808                     AX21,   32, 
12809                     TMP3,   32, 
12810                     AX30,   32, 
12811                     AX31,   32, 
12812                     TMP4,   32, 
12813                     AX40,   32, 
12814                     AX41,   32, 
12815                     TMP5,   32, 
12816                     AX50,   32, 
12817                     AX51,   32, 
12818                     PEN0,   32, 
12819                     PEN1,   32, 
12820                     PEN2,   32, 
12821                     PEN3,   32, 
12822                     PEN4,   32, 
12823                     PEN5,   32
12824                 }
12825
12826                 Name (LPAT, Package (0x44)
12827                 {
12828                     0x091B, 
12829                     0x03F1, 
12830                     0x094D, 
12831                     0x03EB, 
12832                     0x097F, 
12833                     0x03E4, 
12834                     0x09B1, 
12835                     0x03DA, 
12836                     0x09E3, 
12837                     0x03CE, 
12838                     0x0A15, 
12839                     0x03BE, 
12840                     0x0A47, 
12841                     0x03AA, 
12842                     0x0A79, 
12843                     0x0392, 
12844                     0x0AAB, 
12845                     0x0375, 
12846                     0x0ADD, 
12847                     0x0353, 
12848                     0x0B0F, 
12849                     0x032C, 
12850                     0x0B41, 
12851                     0x0300, 
12852                     0x0B73, 
12853                     0x02D0, 
12854                     0x0BA5, 
12855                     0x029D, 
12856                     0x0BD7, 
12857                     0x0268, 
12858                     0x0C09, 
12859                     0x0232, 
12860                     0x0C3B, 
12861                     0x01FD, 
12862                     0x0C6D, 
12863                     0x01C9, 
12864                     0x0C9F, 
12865                     0x0197, 
12866                     0x0CD1, 
12867                     0x0169, 
12868                     0x0D03, 
12869                     0x013E, 
12870                     0x0D35, 
12871                     0x0117, 
12872                     0x0D67, 
12873                     0xF5, 
12874                     0x0D99, 
12875                     0xD6, 
12876                     0x0DCB, 
12877                     0xBB, 
12878                     0x0DFD, 
12879                     0xA3, 
12880                     0x0E2F, 
12881                     0x8E, 
12882                     0x0E61, 
12883                     0x7C, 
12884                     0x0E93, 
12885                     0x6C, 
12886                     0x0EC5, 
12887                     0x5E, 
12888                     0x0EF7, 
12889                     0x53, 
12890                     0x0F29, 
12891                     0x48, 
12892                     0x0F5B, 
12893                     0x3F, 
12894                     0x0F8D, 
12895                     0x38
12896                 })
12897                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
12898                 Field (GPOP, ByteAcc, NoLock, Preserve)
12899                 {
12900                     Connection (
12901                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12902                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12903                             )
12904                             {   // Pin list
12905                                 0x0020
12906                             }
12907                     ), 
12908                     GMP0,   1, 
12909                     Connection (
12910                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12911                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12912                             )
12913                             {   // Pin list
12914                                 0x0021
12915                             }
12916                     ), 
12917                     GX00,   1, 
12918                     Connection (
12919                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12920                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12921                             )
12922                             {   // Pin list
12923                                 0x0022
12924                             }
12925                     ), 
12926                     GX01,   1, 
12927                     Connection (
12928                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12929                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12930                             )
12931                             {   // Pin list
12932                                 0x0023
12933                             }
12934                     ), 
12935                     GMP1,   1, 
12936                     Connection (
12937                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12938                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12939                             )
12940                             {   // Pin list
12941                                 0x0024
12942                             }
12943                     ), 
12944                     GX10,   1, 
12945                     Connection (
12946                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12947                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12948                             )
12949                             {   // Pin list
12950                                 0x0025
12951                             }
12952                     ), 
12953                     GX11,   1, 
12954                     Connection (
12955                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12956                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12957                             )
12958                             {   // Pin list
12959                                 0x0026
12960                             }
12961                     ), 
12962                     GMP2,   1, 
12963                     Connection (
12964                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12965                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12966                             )
12967                             {   // Pin list
12968                                 0x0027
12969                             }
12970                     ), 
12971                     GX20,   1, 
12972                     Connection (
12973                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12974                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12975                             )
12976                             {   // Pin list
12977                                 0x0028
12978                             }
12979                     ), 
12980                     GX21,   1, 
12981                     Connection (
12982                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12983                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12984                             )
12985                             {   // Pin list
12986                                 0x0029
12987                             }
12988                     ), 
12989                     GMP3,   1, 
12990                     Connection (
12991                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
12992                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
12993                             )
12994                             {   // Pin list
12995                                 0x002A
12996                             }
12997                     ), 
12998                     GX30,   1, 
12999                     Connection (
13000                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13001                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13002                             )
13003                             {   // Pin list
13004                                 0x002B
13005                             }
13006                     ), 
13007                     GX31,   1, 
13008                     Connection (
13009                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13010                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13011                             )
13012                             {   // Pin list
13013                                 0x002C
13014                             }
13015                     ), 
13016                     GMP4,   1, 
13017                     Connection (
13018                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13019                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13020                             )
13021                             {   // Pin list
13022                                 0x002D
13023                             }
13024                     ), 
13025                     GX40,   1, 
13026                     Connection (
13027                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13028                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13029                             )
13030                             {   // Pin list
13031                                 0x002E
13032                             }
13033                     ), 
13034                     GX41,   1, 
13035                     Connection (
13036                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13037                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13038                             )
13039                             {   // Pin list
13040                                 0x002F
13041                             }
13042                     ), 
13043                     GMP5,   1, 
13044                     Connection (
13045                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13046                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13047                             )
13048                             {   // Pin list
13049                                 0x0030
13050                             }
13051                     ), 
13052                     GX50,   1, 
13053                     Connection (
13054                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13055                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13056                             )
13057                             {   // Pin list
13058                                 0x0031
13059                             }
13060                     ), 
13061                     GX51,   1, 
13062                     Connection (
13063                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13064                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13065                             )
13066                             {   // Pin list
13067                                 0x0032
13068                             }
13069                     ), 
13070                     GEN0,   1, 
13071                     Connection (
13072                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13073                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13074                             )
13075                             {   // Pin list
13076                                 0x0033
13077                             }
13078                     ), 
13079                     GEN1,   1, 
13080                     Connection (
13081                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13082                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13083                             )
13084                             {   // Pin list
13085                                 0x0034
13086                             }
13087                     ), 
13088                     GEN2,   1, 
13089                     Connection (
13090                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13091                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13092                             )
13093                             {   // Pin list
13094                                 0x0035
13095                             }
13096                     ), 
13097                     GEN3,   1, 
13098                     Connection (
13099                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13100                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13101                             )
13102                             {   // Pin list
13103                                 0x0036
13104                             }
13105                     ), 
13106                     GEN4,   1, 
13107                     Connection (
13108                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13109                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13110                             )
13111                             {   // Pin list
13112                                 0x0037
13113                             }
13114                     ), 
13115                     GEN5,   1, 
13116                     Connection (
13117                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13118                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13119                             )
13120                             {   // Pin list
13121                                 0x0045
13122                             }
13123                     ), 
13124                     GSDX,   1, 
13125                     Connection (
13126                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13127                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13128                             )
13129                             {   // Pin list
13130                                 0x0047
13131                             }
13132                     ), 
13133                     G28X,   1, 
13134                     Connection (
13135                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13136                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13137                             )
13138                             {   // Pin list
13139                                 0x0048
13140                             }
13141                     ), 
13142                     G18X,   1, 
13143                     Connection (
13144                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13145                             "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
13146                             )
13147                             {   // Pin list
13148                                 0x0049
13149                             }
13150                     ), 
13151                     G18U,   1
13152                 }
13153
13154                 Name (AVBL, Zero)
13155                 Name (AVBD, Zero)
13156                 Name (AVBG, Zero)
13157                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
13158                 {
13159                     If ((Arg0 == 0x08))
13160                     {
13161                         AVBG = Arg1
13162                     }
13163
13164                     If ((Arg0 == 0x8D))
13165                     {
13166                         AVBL = Arg1
13167                     }
13168
13169                     If ((Arg0 == 0x8C))
13170                     {
13171                         AVBD = Arg1
13172                     }
13173                 }
13174             }
13175
13176             Device (PMIF)
13177             {
13178                 Name (_ADR, Zero)  // _ADR: Address
13179                 Name (_HID, "DMY0001")  // _HID: Hardware ID
13180                 Name (_CID, "DMY0001")  // _CID: Compatible ID
13181                 Name (_DDN, "Dummy PMIC controller")  // _DDN: DOS Device Name
13182                 Name (_HRV, Zero)  // _HRV: Hardware Revision
13183                 Name (_UID, One)  // _UID: Unique ID
13184                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
13185                 {
13186                     I2C5
13187                 })
13188                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
13189                 {
13190                     Name (SBUF, ResourceTemplate ()
13191                     {
13192                         I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240,
13193                             AddressingMode7Bit, "\\_SB.I2C5",
13194                             0x00, ResourceConsumer, ,
13195                             )
13196                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13197                         {
13198                             0x00000043,
13199                         }
13200                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13201                         {
13202                             0x00000043,
13203                         }
13204                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13205                         {
13206                             0x00000043,
13207                         }
13208                     })
13209                     Return (SBUF) /* \_SB_.I2C5.PMIF._CRS.SBUF */
13210                 }
13211
13212                 Method (_STA, 0, NotSerialized)  // _STA: Status
13213                 {
13214                     If ((PMEN == Zero))
13215                     {
13216                         Return (Zero)
13217                     }
13218
13219                     If ((PMID == 0xFE))
13220                     {
13221                         ADBG ("DMPMIC")
13222                         Return (0x0F)
13223                     }
13224
13225                     Return (Zero)
13226                 }
13227             }
13228
13229             Device (PMIC)
13230             {
13231                 Name (_ADR, Zero)  // _ADR: Address
13232                 Name (_HID, "INT33FD" /* Intel Baytrail Power Management IC */)  // _HID: Hardware ID
13233                 Name (_CID, "INT33FD" /* Intel Baytrail Power Management IC */)  // _CID: Compatible ID
13234                 Name (_DDN, "PMIC GPIO Controller")  // _DDN: DOS Device Name
13235                 Name (_HRV, 0x02)  // _HRV: Hardware Revision
13236                 Name (_UID, One)  // _UID: Unique ID
13237                 Name (_DEP, Package (0x01)  // _DEP: Dependencies
13238                 {
13239                     I2C5
13240                 })
13241                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
13242                 {
13243                     Name (SBUF, ResourceTemplate ()
13244                     {
13245                         I2cSerialBus (0x006E, ControllerInitiated, 0x000F4240,
13246                             AddressingMode7Bit, "\\_SB.I2C5",
13247                             0x00, ResourceConsumer, ,
13248                             )
13249                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13250                         {
13251                             0x00000043,
13252                         }
13253                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13254                         {
13255                             0x00000043,
13256                         }
13257                         Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, )
13258                         {
13259                             0x00000043,
13260                         }
13261                     })
13262                     Return (SBUF) /* \_SB_.I2C5.PMIC._CRS.SBUF */
13263                 }
13264
13265                 Method (_STA, 0, NotSerialized)  // _STA: Status
13266                 {
13267                     If ((PMEN == Zero))
13268                     {
13269                         Return (Zero)
13270                     }
13271
13272                     If ((PMID == One))
13273                     {
13274                         ADBG ("CCPMIC")
13275                         Return (0x0F)
13276                     }
13277
13278                     Return (Zero)
13279                 }
13280
13281                 OperationRegion (DPTF, 0x8C, Zero, 0x0100)
13282                 Field (DPTF, DWordAcc, NoLock, Preserve)
13283                 {
13284                     TMP0,   32, 
13285                     AX00,   32, 
13286                     AX01,   32, 
13287                     TMP1,   32, 
13288                     AX10,   32, 
13289                     AX11,   32, 
13290                     TMP2,   32, 
13291                     AX20,   32, 
13292                     AX21,   32, 
13293                     TMP3,   32, 
13294                     AX30,   32, 
13295                     AX31,   32, 
13296                     TMP4,   32, 
13297                     AX40,   32, 
13298                     AX41,   32, 
13299                     TMP5,   32, 
13300                     AX50,   32, 
13301                     AX51,   32, 
13302                     PEN0,   32, 
13303                     PEN1,   32, 
13304                     PEN2,   32, 
13305                     PEN3,   32, 
13306                     PEN4,   32, 
13307                     PEN5,   32
13308                 }
13309
13310                 OperationRegion (PMOP, 0x8D, Zero, 0x0100)
13311                 Field (PMOP, DWordAcc, NoLock, Preserve)
13312                 {
13313                     VSYS,   32, 
13314                     SYSX,   32, 
13315                     SYSU,   32, 
13316                     SYSS,   32, 
13317                     V50S,   32, 
13318                     HOST,   32, 
13319                     VBUS,   32, 
13320                     HDMI,   32, 
13321                     S285,   32, 
13322                     X285,   32, 
13323                     V33A,   32, 
13324                     V33S,   32, 
13325                     V33U,   32, 
13326                     V33I,   32, 
13327                     V18A,   32, 
13328                     REFQ,   32, 
13329                     V12A,   32, 
13330                     V18S,   32, 
13331                     V18X,   32, 
13332                     V18U,   32, 
13333                     V12X,   32, 
13334                     V12S,   32, 
13335                     V10A,   32, 
13336                     V10S,   32, 
13337                     V10X,   32, 
13338                     V105,   32
13339                 }
13340
13341                 OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100)
13342                 Field (GPOP, ByteAcc, NoLock, Preserve)
13343                 {
13344                     Connection (
13345                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13346                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13347                             )
13348                             {   // Pin list
13349                                 0x0020
13350                             }
13351                     ), 
13352                     GMP0,   1, 
13353                     Connection (
13354                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13355                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13356                             )
13357                             {   // Pin list
13358                                 0x0021
13359                             }
13360                     ), 
13361                     GX00,   1, 
13362                     Connection (
13363                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13364                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13365                             )
13366                             {   // Pin list
13367                                 0x0022
13368                             }
13369                     ), 
13370                     GX01,   1, 
13371                     Connection (
13372                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13373                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13374                             )
13375                             {   // Pin list
13376                                 0x0023
13377                             }
13378                     ), 
13379                     GMP1,   1, 
13380                     Connection (
13381                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13382                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13383                             )
13384                             {   // Pin list
13385                                 0x0024
13386                             }
13387                     ), 
13388                     GX10,   1, 
13389                     Connection (
13390                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13391                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13392                             )
13393                             {   // Pin list
13394                                 0x0025
13395                             }
13396                     ), 
13397                     GX11,   1, 
13398                     Connection (
13399                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13400                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13401                             )
13402                             {   // Pin list
13403                                 0x0026
13404                             }
13405                     ), 
13406                     GMP2,   1, 
13407                     Connection (
13408                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13409                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13410                             )
13411                             {   // Pin list
13412                                 0x0027
13413                             }
13414                     ), 
13415                     GX20,   1, 
13416                     Connection (
13417                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13418                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13419                             )
13420                             {   // Pin list
13421                                 0x0028
13422                             }
13423                     ), 
13424                     GX21,   1, 
13425                     Connection (
13426                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13427                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13428                             )
13429                             {   // Pin list
13430                                 0x0029
13431                             }
13432                     ), 
13433                     GMP3,   1, 
13434                     Connection (
13435                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13436                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13437                             )
13438                             {   // Pin list
13439                                 0x002A
13440                             }
13441                     ), 
13442                     GX30,   1, 
13443                     Connection (
13444                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13445                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13446                             )
13447                             {   // Pin list
13448                                 0x002B
13449                             }
13450                     ), 
13451                     GX31,   1, 
13452                     Connection (
13453                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13454                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13455                             )
13456                             {   // Pin list
13457                                 0x002C
13458                             }
13459                     ), 
13460                     GMP4,   1, 
13461                     Connection (
13462                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13463                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13464                             )
13465                             {   // Pin list
13466                                 0x002D
13467                             }
13468                     ), 
13469                     GX40,   1, 
13470                     Connection (
13471                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13472                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13473                             )
13474                             {   // Pin list
13475                                 0x002E
13476                             }
13477                     ), 
13478                     GX41,   1, 
13479                     Connection (
13480                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13481                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13482                             )
13483                             {   // Pin list
13484                                 0x002F
13485                             }
13486                     ), 
13487                     GMP5,   1, 
13488                     Connection (
13489                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13490                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13491                             )
13492                             {   // Pin list
13493                                 0x0030
13494                             }
13495                     ), 
13496                     GX50,   1, 
13497                     Connection (
13498                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13499                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13500                             )
13501                             {   // Pin list
13502                                 0x0031
13503                             }
13504                     ), 
13505                     GX51,   1, 
13506                     Connection (
13507                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13508                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13509                             )
13510                             {   // Pin list
13511                                 0x0032
13512                             }
13513                     ), 
13514                     GEN0,   1, 
13515                     Connection (
13516                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13517                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13518                             )
13519                             {   // Pin list
13520                                 0x0033
13521                             }
13522                     ), 
13523                     GEN1,   1, 
13524                     Connection (
13525                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13526                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13527                             )
13528                             {   // Pin list
13529                                 0x0034
13530                             }
13531                     ), 
13532                     GEN2,   1, 
13533                     Connection (
13534                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13535                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13536                             )
13537                             {   // Pin list
13538                                 0x0035
13539                             }
13540                     ), 
13541                     GEN3,   1, 
13542                     Connection (
13543                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13544                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13545                             )
13546                             {   // Pin list
13547                                 0x0036
13548                             }
13549                     ), 
13550                     GEN4,   1, 
13551                     Connection (
13552                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13553                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13554                             )
13555                             {   // Pin list
13556                                 0x0037
13557                             }
13558                     ), 
13559                     GEN5,   1, 
13560                     Connection (
13561                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13562                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13563                             )
13564                             {   // Pin list
13565                                 0x0040
13566                             }
13567                     ), 
13568                     GSYS,   1, 
13569                     Connection (
13570                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13571                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13572                             )
13573                             {   // Pin list
13574                                 0x0041
13575                             }
13576                     ), 
13577                     GYSX,   1, 
13578                     Connection (
13579                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13580                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13581                             )
13582                             {   // Pin list
13583                                 0x0042
13584                             }
13585                     ), 
13586                     GYSU,   1, 
13587                     Connection (
13588                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13589                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13590                             )
13591                             {   // Pin list
13592                                 0x0043
13593                             }
13594                     ), 
13595                     GYSS,   1, 
13596                     Connection (
13597                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13598                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13599                             )
13600                             {   // Pin list
13601                                 0x0044
13602                             }
13603                     ), 
13604                     G50S,   1, 
13605                     Connection (
13606                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13607                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13608                             )
13609                             {   // Pin list
13610                                 0x0045
13611                             }
13612                     ), 
13613                     GOST,   1, 
13614                     Connection (
13615                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13616                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13617                             )
13618                             {   // Pin list
13619                                 0x0046
13620                             }
13621                     ), 
13622                     GBUS,   1, 
13623                     Connection (
13624                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13625                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13626                             )
13627                             {   // Pin list
13628                                 0x0047
13629                             }
13630                     ), 
13631                     GDMI,   1, 
13632                     Connection (
13633                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13634                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13635                             )
13636                             {   // Pin list
13637                                 0x0048
13638                             }
13639                     ), 
13640                     G28S,   1, 
13641                     Connection (
13642                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13643                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13644                             )
13645                             {   // Pin list
13646                                 0x0049
13647                             }
13648                     ), 
13649                     G28X,   1, 
13650                     Connection (
13651                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13652                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13653                             )
13654                             {   // Pin list
13655                                 0x004A
13656                             }
13657                     ), 
13658                     G33A,   1, 
13659                     Connection (
13660                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13661                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13662                             )
13663                             {   // Pin list
13664                                 0x004B
13665                             }
13666                     ), 
13667                     G33S,   1, 
13668                     Connection (
13669                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13670                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13671                             )
13672                             {   // Pin list
13673                                 0x004C
13674                             }
13675                     ), 
13676                     G33U,   1, 
13677                     Connection (
13678                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13679                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13680                             )
13681                             {   // Pin list
13682                                 0x004D
13683                             }
13684                     ), 
13685                     G33I,   1, 
13686                     Connection (
13687                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13688                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13689                             )
13690                             {   // Pin list
13691                                 0x004E
13692                             }
13693                     ), 
13694                     G18A,   1, 
13695                     Connection (
13696                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13697                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13698                             )
13699                             {   // Pin list
13700                                 0x004F
13701                             }
13702                     ), 
13703                     GEFQ,   1, 
13704                     Connection (
13705                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13706                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13707                             )
13708                             {   // Pin list
13709                                 0x0050
13710                             }
13711                     ), 
13712                     G12A,   1, 
13713                     Connection (
13714                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13715                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13716                             )
13717                             {   // Pin list
13718                                 0x0051
13719                             }
13720                     ), 
13721                     G18S,   1, 
13722                     Connection (
13723                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13724                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13725                             )
13726                             {   // Pin list
13727                                 0x0052
13728                             }
13729                     ), 
13730                     G18X,   1, 
13731                     Connection (
13732                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13733                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13734                             )
13735                             {   // Pin list
13736                                 0x0053
13737                             }
13738                     ), 
13739                     G18U,   1, 
13740                     Connection (
13741                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13742                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13743                             )
13744                             {   // Pin list
13745                                 0x0054
13746                             }
13747                     ), 
13748                     G12X,   1, 
13749                     Connection (
13750                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13751                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13752                             )
13753                             {   // Pin list
13754                                 0x0055
13755                             }
13756                     ), 
13757                     G12S,   1, 
13758                     Connection (
13759                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13760                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13761                             )
13762                             {   // Pin list
13763                                 0x0056
13764                             }
13765                     ), 
13766                     G10A,   1, 
13767                     Connection (
13768                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13769                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13770                             )
13771                             {   // Pin list
13772                                 0x0057
13773                             }
13774                     ), 
13775                     G10S,   1, 
13776                     Connection (
13777                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13778                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13779                             )
13780                             {   // Pin list
13781                                 0x0058
13782                             }
13783                     ), 
13784                     G10X,   1, 
13785                     Connection (
13786                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13787                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13788                             )
13789                             {   // Pin list
13790                                 0x0059
13791                             }
13792                     ), 
13793                     G105,   1, 
13794                     Connection (
13795                         GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
13796                             "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
13797                             )
13798                             {   // Pin list
13799                                 0x005E
13800                             }
13801                     ), 
13802                     FCOT,   1
13803                 }
13804
13805                 Name (AVBL, Zero)
13806                 Name (AVBD, Zero)
13807                 Name (AVBG, Zero)
13808                 Method (_REG, 2, NotSerialized)  // _REG: Region Availability
13809                 {
13810                     If ((Arg0 == 0x08))
13811                     {
13812                         AVBG = Arg1
13813                     }
13814
13815                     If ((Arg0 == 0x8D))
13816                     {
13817                         AVBL = Arg1
13818                     }
13819
13820                     If ((Arg0 == 0x8C))
13821                     {
13822                         AVBD = Arg1
13823                     }
13824                 }
13825
13826                 Name (LPAT, Package (0x30)
13827                 {
13828                     0x09E3, 
13829                     0x03D1, 
13830                     0x0A15, 
13831                     0x03C1, 
13832                     0x0A47, 
13833                     0x03AD, 
13834                     0x0A79, 
13835                     0x0395, 
13836                     0x0AAB, 
13837                     0x0377, 
13838                     0x0ADD, 
13839                     0x0355, 
13840                     0x0B0F, 
13841                     0x032D, 
13842                     0x0B41, 
13843                     0x0301, 
13844                     0x0B73, 
13845                     0x02D0, 
13846                     0x0BA5, 
13847                     0x029D, 
13848                     0x0BD7, 
13849                     0x0267, 
13850                     0x0C09, 
13851                     0x0231, 
13852                     0x0C3B, 
13853                     0x01FC, 
13854                     0x0C6D, 
13855                     0x01C8, 
13856                     0x0C9F, 
13857                     0x0197, 
13858                     0x0CD1, 
13859                     0x0165, 
13860                     0x0D03, 
13861                     0x013B, 
13862                     0x0D35, 
13863                     0x0115, 
13864                     0x0D67, 
13865                     0xF3, 
13866                     0x0D99, 
13867                     0xD4, 
13868                     0x0DCB, 
13869                     0xBA, 
13870                     0x0DFD, 
13871                     0xA2, 
13872                     0x0E2F, 
13873                     0x8C, 
13874                     0x0E93, 
13875                     0x6B
13876                 })
13877             }
13878         }
13879
13880         Scope (I2C1)
13881         {
13882             Device (IMP3)
13883             {
13884                 Name (_ADR, Zero)  // _ADR: Address
13885                 Name (_HID, "IMPJ0003")  // _HID: Hardware ID
13886                 Name (_CID, "IMPJ0003")  // _CID: Compatible ID
13887                 Name (_UID, One)  // _UID: Unique ID
13888                 Method (_STA, 0, NotSerialized)  // _STA: Status
13889                 {
13890                     If ((PSSD == 0x02))
13891                     {
13892                         Return (0x0F)
13893                     }
13894
13895                     Return (Zero)
13896                 }
13897
13898                 Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
13899                 {
13900                     Name (SBUF, ResourceTemplate ()
13901                     {
13902                         I2cSerialBus (0x006E, ControllerInitiated, 0x000186A0,
13903                             AddressingMode7Bit, "\\_SB.I2C1",
13904                             0x00, ResourceConsumer, ,
13905                             )
13906                     })
13907                     Return (SBUF) /* \_SB_.I2C1.IMP3._CRS.SBUF */
13908                 }
13909             }
13910         }
13911
13912         PowerResource (P28X, 0x05, 0x0000)
13913         {
13914             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13915             {
13916                 I2C5, 
13917                 ^I2C5.PMIC
13918             })
13919             Method (_STA, 0, NotSerialized)  // _STA: Status
13920             {
13921                 If ((^^I2C5.PMIC.AVBG == One))
13922                 {
13923                     ^^I2C5.PMIC.G28X = Zero
13924                     If ((^^I2C5.PMIC.AVBL == One))
13925                     {
13926                         Return (^^I2C5.PMIC.X285) /* \_SB_.I2C5.PMIC.X285 */
13927                     }
13928                 }
13929
13930                 Return (Zero)
13931             }
13932
13933             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13934             {
13935                 If ((^^I2C5.PMIC.AVBL == One))
13936                 {
13937                     ^^I2C5.PMIC.X285 = One
13938                     If ((^^I2C5.PMIC.AVBG == One))
13939                     {
13940                         ^^I2C5.PMIC.G28X = One
13941                         Sleep (0x1E)
13942                     }
13943                 }
13944             }
13945
13946             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13947             {
13948                 If ((^^I2C5.PMIC.AVBL == One))
13949                 {
13950                     ^^I2C5.PMIC.X285 = Zero
13951                     If ((^^I2C5.PMIC.AVBG == One))
13952                     {
13953                         ^^I2C5.PMIC.G28X = One
13954                         Sleep (0x1E)
13955                     }
13956                 }
13957             }
13958         }
13959
13960         PowerResource (P18X, 0x05, 0x0000)
13961         {
13962             Name (_DEP, Package (0x02)  // _DEP: Dependencies
13963             {
13964                 I2C5, 
13965                 ^I2C5.PMIC
13966             })
13967             Method (_STA, 0, NotSerialized)  // _STA: Status
13968             {
13969                 If ((^^I2C5.PMIC.AVBG == One))
13970                 {
13971                     ^^I2C5.PMIC.G18X = Zero
13972                     If ((^^I2C5.PMIC.AVBL == One))
13973                     {
13974                         Return (^^I2C5.PMIC.V18X) /* \_SB_.I2C5.PMIC.V18X */
13975                     }
13976                 }
13977
13978                 Return (Zero)
13979             }
13980
13981             Method (_ON, 0, NotSerialized)  // _ON_: Power On
13982             {
13983                 If ((^^I2C5.PMIC.AVBL == One))
13984                 {
13985                     ^^I2C5.PMIC.V18X = One
13986                     If ((^^I2C5.PMIC.AVBG == One))
13987                     {
13988                         ^^I2C5.PMIC.G18X = One
13989                         Sleep (0x1E)
13990                     }
13991                 }
13992             }
13993
13994             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
13995             {
13996                 If ((^^I2C5.PMIC.AVBL == One))
13997                 {
13998                     ^^I2C5.PMIC.V18X = Zero
13999                     If ((^^I2C5.PMIC.AVBG == One))
14000                     {
14001                         ^^I2C5.PMIC.G18X = One
14002                         Sleep (0x1E)
14003                     }
14004                 }
14005             }
14006         }
14007
14008         PowerResource (P28P, 0x05, 0x0000)
14009         {
14010             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14011             {
14012                 I2C5, 
14013                 ^I2C5.PMI1
14014             })
14015             Method (_STA, 0, NotSerialized)  // _STA: Status
14016             {
14017                 If ((^^I2C5.PMI1.AVBG == One))
14018                 {
14019                     ^^I2C5.PMI1.G28X = Zero
14020                     If ((^^I2C5.PMI1.AVBL == One))
14021                     {
14022                         Return (^^I2C5.PMI1.ALD1) /* \_SB_.I2C5.PMI1.ALD1 */
14023                     }
14024                 }
14025
14026                 Return (Zero)
14027             }
14028
14029             Method (_ON, 0, NotSerialized)  // _ON_: Power On
14030             {
14031                 If ((^^I2C5.PMI1.AVBL == One))
14032                 {
14033                     ^^I2C5.PMI1.ALD1 = One
14034                     If ((^^I2C5.PMI1.AVBG == One))
14035                     {
14036                         ^^I2C5.PMI1.G28X = One
14037                         Sleep (0x1E)
14038                     }
14039                 }
14040             }
14041
14042             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
14043             {
14044                 If ((^^I2C5.PMI1.AVBL == One))
14045                 {
14046                     ^^I2C5.PMI1.ALD1 = Zero
14047                     If ((^^I2C5.PMI1.AVBG == One))
14048                     {
14049                         ^^I2C5.PMI1.G28X = One
14050                         Sleep (0x1E)
14051                     }
14052                 }
14053             }
14054         }
14055
14056         PowerResource (P18P, 0x05, 0x0000)
14057         {
14058             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14059             {
14060                 I2C5, 
14061                 ^I2C5.PMI1
14062             })
14063             Method (_STA, 0, NotSerialized)  // _STA: Status
14064             {
14065                 If ((^^I2C5.PMI1.AVBG == One))
14066                 {
14067                     ^^I2C5.PMI1.G18X = Zero
14068                     If ((^^I2C5.PMI1.AVBL == One))
14069                     {
14070                         Return (^^I2C5.PMI1.ELD2) /* \_SB_.I2C5.PMI1.ELD2 */
14071                     }
14072                 }
14073
14074                 Return (Zero)
14075             }
14076
14077             Method (_ON, 0, NotSerialized)  // _ON_: Power On
14078             {
14079                 If ((^^I2C5.PMI1.AVBL == One))
14080                 {
14081                     ^^I2C5.PMI1.ELD2 = One
14082                     If ((^^I2C5.PMI1.AVBG == One))
14083                     {
14084                         ^^I2C5.PMI1.G18X = One
14085                         Sleep (0x1E)
14086                     }
14087                 }
14088             }
14089
14090             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
14091             {
14092                 If ((^^I2C5.PMI1.AVBL == One))
14093                 {
14094                     ^^I2C5.PMI1.ELD2 = Zero
14095                     If ((^^I2C5.PMI1.AVBG == One))
14096                     {
14097                         ^^I2C5.PMI1.G18X = One
14098                         Sleep (0x1E)
14099                     }
14100                 }
14101             }
14102         }
14103
14104         PowerResource (P28T, 0x05, 0x0000)
14105         {
14106             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14107             {
14108                 I2C5, 
14109                 ^I2C5.PMI2
14110             })
14111             Method (_STA, 0, NotSerialized)  // _STA: Status
14112             {
14113                 If ((^^I2C5.PMI2.AVBG == One))
14114                 {
14115                     ^^I2C5.PMI2.G28X = Zero
14116                     If ((^^I2C5.PMI2.AVBL == One))
14117                     {
14118                         Return (^^I2C5.PMI2.LDO9) /* \_SB_.I2C5.PMI2.LDO9 */
14119                     }
14120                 }
14121
14122                 Return (Zero)
14123             }
14124
14125             Method (_ON, 0, NotSerialized)  // _ON_: Power On
14126             {
14127                 If ((^^I2C5.PMI2.AVBL == One))
14128                 {
14129                     ^^I2C5.PMI2.LDO9 = One
14130                     If ((^^I2C5.PMI2.AVBG == One))
14131                     {
14132                         ^^I2C5.PMI2.G28X = One
14133                         Sleep (0x1E)
14134                     }
14135                 }
14136             }
14137
14138             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
14139             {
14140                 If ((^^I2C5.PMI2.AVBL == One))
14141                 {
14142                     ^^I2C5.PMI2.LDO9 = Zero
14143                     If ((^^I2C5.PMI2.AVBG == One))
14144                     {
14145                         ^^I2C5.PMI2.G28X = One
14146                         Sleep (0x1E)
14147                     }
14148                 }
14149             }
14150         }
14151
14152         PowerResource (P18T, 0x05, 0x0000)
14153         {
14154             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14155             {
14156                 I2C5, 
14157                 ^I2C5.PMI2
14158             })
14159             Method (_STA, 0, NotSerialized)  // _STA: Status
14160             {
14161                 If ((^^I2C5.PMI2.AVBG == One))
14162                 {
14163                     ^^I2C5.PMI2.G18X = Zero
14164                     If ((^^I2C5.PMI2.AVBL == One))
14165                     {
14166                         Return (^^I2C5.PMI2.LD10) /* \_SB_.I2C5.PMI2.LD10 */
14167                     }
14168                 }
14169
14170                 Return (Zero)
14171             }
14172
14173             Method (_ON, 0, NotSerialized)  // _ON_: Power On
14174             {
14175                 If ((^^I2C5.PMI2.AVBL == One))
14176                 {
14177                     ^^I2C5.PMI2.LD10 = One
14178                     If ((^^I2C5.PMI2.AVBG == One))
14179                     {
14180                         ^^I2C5.PMI2.G18X = One
14181                         Sleep (0x1E)
14182                     }
14183                 }
14184             }
14185
14186             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
14187             {
14188                 If ((^^I2C5.PMI2.AVBL == One))
14189                 {
14190                     ^^I2C5.PMI2.LD10 = Zero
14191                     If ((^^I2C5.PMI2.AVBG == One))
14192                     {
14193                         ^^I2C5.PMI2.G18X = One
14194                         Sleep (0x1E)
14195                     }
14196                 }
14197             }
14198         }
14199
14200         PowerResource (P1XT, 0x05, 0x0000)
14201         {
14202             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14203             {
14204                 I2C5, 
14205                 ^I2C5.PMI2
14206             })
14207             Method (_STA, 0, NotSerialized)  // _STA: Status
14208             {
14209                 If ((^^I2C5.PMI2.AVBG == One))
14210                 {
14211                     ^^I2C5.PMI2.G18U = Zero
14212                     If ((^^I2C5.PMI2.AVBL == One))
14213                     {
14214                         Return (^^I2C5.PMI2.LD11) /* \_SB_.I2C5.PMI2.LD11 */
14215                     }
14216                 }
14217
14218                 Return (Zero)
14219             }
14220
14221             Method (_ON, 0, NotSerialized)  // _ON_: Power On
14222             {
14223                 If ((^^I2C5.PMI2.AVBL == One))
14224                 {
14225                     ^^I2C5.PMI2.LD11 = One
14226                     If ((^^I2C5.PMI2.AVBG == One))
14227                     {
14228                         ^^I2C5.PMI2.G18U = One
14229                         Sleep (0x1E)
14230                     }
14231                 }
14232             }
14233
14234             Method (_OFF, 0, NotSerialized)  // _OFF: Power Off
14235             {
14236                 If ((^^I2C5.PMI2.AVBL == One))
14237                 {
14238                     ^^I2C5.PMI2.LD11 = Zero
14239                     If ((^^I2C5.PMI2.AVBG == One))
14240                     {
14241                         ^^I2C5.PMI2.G18U = One
14242                         Sleep (0x1E)
14243                     }
14244                 }
14245             }
14246         }
14247
14248         Device (TBAD)
14249         {
14250             Name (_HID, "INTCFD9" /* Intel Baytrail SOC GPIO Controller */)  // _HID: Hardware ID
14251             Name (_CID, "PNP0C40" /* Standard Button Controller */)  // _CID: Compatible ID
14252             Name (_DDN, "Keyboard less system - 5 Button Array Device")  // _DDN: DOS Device Name
14253             Name (_DEP, Package (0x04)  // _DEP: Dependencies
14254             {
14255                 GPO0, 
14256                 GPO2, 
14257                 I2C5, 
14258                 ^I2C5.PMI1
14259             })
14260             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14261             {
14262                 Name (RBUF, ResourceTemplate ()
14263                 {
14264                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14265                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14266                         )
14267                         {   // Pin list
14268                             0x0010
14269                         }
14270                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14271                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14272                         )
14273                         {   // Pin list
14274                             0x0015
14275                         }
14276                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14277                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14278                         )
14279                         {   // Pin list
14280                             0x0001
14281                         }
14282                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14283                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14284                         )
14285                         {   // Pin list
14286                             0x0000
14287                         }
14288                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14289                         "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, ,
14290                         )
14291                         {   // Pin list
14292                             0x0007
14293                         }
14294                 })
14295                 Name (ABUF, ResourceTemplate ()
14296                 {
14297                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14298                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
14299                         )
14300                         {   // Pin list
14301                             0x0016
14302                         }
14303                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14304                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14305                         )
14306                         {   // Pin list
14307                             0x0015
14308                         }
14309                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14310                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14311                         )
14312                         {   // Pin list
14313                             0x0001
14314                         }
14315                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14316                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14317                         )
14318                         {   // Pin list
14319                             0x0000
14320                         }
14321                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14322                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
14323                         )
14324                         {   // Pin list
14325                             0x005F
14326                         }
14327                 })
14328                 Name (BBUF, ResourceTemplate ()
14329                 {
14330                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14331                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
14332                         )
14333                         {   // Pin list
14334                             0x0016
14335                         }
14336                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14337                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14338                         )
14339                         {   // Pin list
14340                             0x0015
14341                         }
14342                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14343                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14344                         )
14345                         {   // Pin list
14346                             0x0001
14347                         }
14348                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14349                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14350                         )
14351                         {   // Pin list
14352                             0x0000
14353                         }
14354                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14355                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
14356                         )
14357                         {   // Pin list
14358                             0x005F
14359                         }
14360                 })
14361                 Name (ABU0, ResourceTemplate ()
14362                 {
14363                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14364                         "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
14365                         )
14366                         {   // Pin list
14367                             0x0016
14368                         }
14369                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14370                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14371                         )
14372                         {   // Pin list
14373                             0x0015
14374                         }
14375                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14376                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14377                         )
14378                         {   // Pin list
14379                             0x0001
14380                         }
14381                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14382                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14383                         )
14384                         {   // Pin list
14385                             0x0000
14386                         }
14387                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14388                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14389                         )
14390                         {   // Pin list
14391                             0x0028
14392                         }
14393                 })
14394                 Name (BBU0, ResourceTemplate ()
14395                 {
14396                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14397                         "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
14398                         )
14399                         {   // Pin list
14400                             0x0016
14401                         }
14402                     GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000,
14403                         "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14404                         )
14405                         {   // Pin list
14406                             0x0015
14407                         }
14408                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14409                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14410                         )
14411                         {   // Pin list
14412                             0x0001
14413                         }
14414                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14415                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14416                         )
14417                         {   // Pin list
14418                             0x0000
14419                         }
14420                     GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000,
14421                         "\\_SB.GPO0", 0x00, ResourceConsumer, ,
14422                         )
14423                         {   // Pin list
14424                             0x0028
14425                         }
14426                 })
14427                 If ((PMID == 0x05))
14428                 {
14429                     If ((OSSL & 0x80))
14430                     {
14431                         Return (ABUF) /* \_SB_.TBAD._CRS.ABUF */
14432                     }
14433                     Else
14434                     {
14435                         Return (ABU0) /* \_SB_.TBAD._CRS.ABU0 */
14436                     }
14437                 }
14438
14439                 If ((PMID == 0x06))
14440                 {
14441                     If ((OSSL & 0x80))
14442                     {
14443                         Return (BBUF) /* \_SB_.TBAD._CRS.BBUF */
14444                     }
14445                     Else
14446                     {
14447                         Return (BBU0) /* \_SB_.TBAD._CRS.BBU0 */
14448                     }
14449                 }
14450
14451                 Return (RBUF) /* \_SB_.TBAD._CRS.RBUF */
14452             }
14453
14454             Method (_STA, 0, NotSerialized)  // _STA: Status
14455             {
14456                 Return (0x0F)
14457             }
14458
14459             Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
14460             {
14461                 Name (T_0, Zero)  // _T_x: Emitted by ASL Compiler
14462                 If ((Arg0 == ToUUID ("dfbcf3c5-e7a5-44e6-9c1f-29c76f6e059c") /* Power Button Device */))
14463                 {
14464                     While (One)
14465                     {
14466                         T_0 = ToInteger (Arg2)
14467                         If ((T_0 == Zero))
14468                         {
14469                             Return (Buffer (One)
14470                             {
14471                                  0x03                                             /* . */
14472                             })
14473                         }
14474                         Else
14475                         {
14476                             If ((T_0 == One))
14477                             {
14478                                 Return (0x07)
14479                             }
14480                         }
14481
14482                         Break
14483                     }
14484                 }
14485                 Else
14486                 {
14487                     Return (Buffer (One)
14488                     {
14489                          0x00                                             /* . */
14490                     })
14491                 }
14492
14493                 Return (Zero)
14494             }
14495         }
14496
14497         Device (MBID)
14498         {
14499             Name (_HID, "INT33BD" /* Intel Baytrail Mailbox Device */)  // _HID: Hardware ID
14500             Name (_CID, "INT33BD" /* Intel Baytrail Mailbox Device */)  // _CID: Compatible ID
14501             Name (_HRV, 0x02)  // _HRV: Hardware Revision
14502             Name (_UID, One)  // _UID: Unique ID
14503             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
14504             {
14505                 Name (RBUF, ResourceTemplate ()
14506                 {
14507                     Memory32Fixed (ReadWrite,
14508                         0xE00000D0,         // Address Base
14509                         0x0000000C,         // Address Length
14510                         )
14511                 })
14512                 Return (RBUF) /* \_SB_.MBID._CRS.RBUF */
14513             }
14514
14515             OperationRegion (REGS, 0x87, Zero, 0x30)
14516             Field (REGS, DWordAcc, NoLock, Preserve)
14517             {
14518                 PORT,   32, 
14519                 REG,    32, 
14520                 DATA,   32, 
14521                 MASK,   32, 
14522                 BE,     32, 
14523                 OP,     32
14524             }
14525
14526             Name (AVBL, Zero)
14527             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
14528             {
14529                 If ((Arg0 == 0x87))
14530                 {
14531                     AVBL = Arg1
14532                 }
14533             }
14534
14535             Method (READ, 3, Serialized)
14536             {
14537                 Local0 = 0xFFFFFFFF
14538                 If ((AVBL == One))
14539                 {
14540                     OP = Zero
14541                     PORT = Arg0
14542                     REG = Arg1
14543                     BE = Arg2
14544                     Local0 = DATA /* \_SB_.MBID.DATA */
14545                 }
14546
14547                 Return (Local0)
14548             }
14549
14550             Method (WRIT, 4, Serialized)
14551             {
14552                 If ((AVBL == One))
14553                 {
14554                     OP = One
14555                     PORT = Arg0
14556                     REG = Arg1
14557                     BE = Arg2
14558                     DATA = Arg3
14559                 }
14560             }
14561
14562             Method (MODI, 5, Serialized)
14563             {
14564                 If ((AVBL == One))
14565                 {
14566                     OP = 0x02
14567                     PORT = Arg0
14568                     REG = Arg1
14569                     BE = Arg2
14570                     DATA = Arg3
14571                     MASK = Arg4
14572                 }
14573             }
14574         }
14575
14576         Device (PAGD)
14577         {
14578             Name (_HID, "ACPI000C" /* Processor Aggregator Device */)  // _HID: Hardware ID
14579             Name (_CID, "ACPI000C" /* Processor Aggregator Device */)  // _CID: Compatible ID
14580             Name (IDCN, Zero)
14581             Name (PURP, Package (0x02)
14582             {
14583                 One, 
14584                 Zero
14585             })
14586             Method (_PUR, 0, Serialized)  // _PUR: Processor Utilization Request
14587             {
14588                 Index (PURP, One) = IDCN /* \_SB_.PAGD.IDCN */
14589                 Return (PURP) /* \_SB_.PAGD.PURP */
14590             }
14591
14592             Method (_OST, 3, Serialized)  // _OST: OSPM Status Indication
14593             {
14594                 Debug = "_OST is invoked"
14595             }
14596         }
14597     }
14598
14599     Name (PICM, Zero)
14600     Device (MDM)
14601     {
14602         Name (_HID, EisaId ("MCD0001"))  // _HID: Hardware ID
14603         Name (_CID, "MCD0001")  // _CID: Compatible ID
14604         Name (CPU, "ValleyView2")
14605         Name (MDMN, "XMM_6260")
14606         Method (_STA, 0, NotSerialized)  // _STA: Status
14607         {
14608             If ((OSSL & 0x80))
14609             {
14610                 Return (0x0F)
14611             }
14612
14613             Return (Zero)
14614         }
14615
14616         Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14617         {
14618             Name (UBUF, ResourceTemplate ()
14619             {
14620                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
14621                     "\\_SB.GPO1", 0x00, ResourceConsumer, ,
14622                     )
14623                     {   // Pin list
14624                         0x0017
14625                     }
14626                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
14627                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14628                     )
14629                     {   // Pin list
14630                         0x001E
14631                     }
14632                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly,
14633                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14634                     )
14635                     {   // Pin list
14636                         0x001C
14637                     }
14638                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
14639                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14640                     )
14641                     {   // Pin list
14642                         0x001D
14643                     }
14644             })
14645             Return (UBUF) /* \MDM_._CRS.UBUF */
14646         }
14647     }
14648
14649     Scope (_SB.I2C1)
14650     {
14651         Name (AVBL, Zero)
14652         Method (_REG, 2, NotSerialized)  // _REG: Region Availability
14653         {
14654             If ((Arg0 == 0x09))
14655             {
14656                 AVBL = Arg1
14657             }
14658         }
14659
14660         Device (SMUX)
14661         {
14662             Name (_HID, "SMSC3750" /* SMSC 3750 USB MUX */)  // _HID: Hardware ID
14663             Name (_CID, "SMSC3750" /* SMSC 3750 USB MUX */)  // _CID: Compatible ID
14664             Name (_DDN, "SMSC 3750 USB MUX")  // _DDN: DOS Device Name
14665             Method (_STA, 0, NotSerialized)  // _STA: Status
14666             {
14667                 If ((OSSL & 0x80))
14668                 {
14669                     Return (0x0F)
14670                 }
14671
14672                 Return (Zero)
14673             }
14674
14675             Name (RBUF, ResourceTemplate ()
14676             {
14677                 I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80,
14678                     AddressingMode7Bit, "\\_SB.I2C1",
14679                     0x00, ResourceConsumer, ,
14680                     )
14681                 GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
14682                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14683                     )
14684                     {   // Pin list
14685                         0x0001
14686                     }
14687             })
14688             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14689             {
14690                 Return (RBUF) /* \_SB_.I2C1.SMUX.RBUF */
14691             }
14692         }
14693
14694         Name (MUXW, ResourceTemplate ()
14695         {
14696             I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80,
14697                 AddressingMode7Bit, "\\_SB.I2C1",
14698                 0x00, ResourceConsumer, ,
14699                 )
14700         })
14701         OperationRegion (MUXO, GenericSerialBus, Zero, 0x10)
14702         Field (MUXO, BufferAcc, NoLock, Preserve)
14703         {
14704             Connection (MUXW), 
14705             AccessAs (BufferAcc, AttribByte), 
14706             MSTA,   8
14707         }
14708
14709         Field (MUXO, BufferAcc, NoLock, Preserve)
14710         {
14711             Connection (MUXW), 
14712             Offset (0x01), 
14713             AccessAs (BufferAcc, AttribByte), 
14714             MCON,   8
14715         }
14716
14717         Field (MUXO, BufferAcc, NoLock, Preserve)
14718         {
14719             Connection (MUXW), 
14720             Offset (0x02), 
14721             AccessAs (BufferAcc, AttribByte), 
14722             MCHG,   8
14723         }
14724
14725         Field (MUXO, BufferAcc, NoLock, Preserve)
14726         {
14727             Connection (MUXW), 
14728             Offset (0x03), 
14729             AccessAs (BufferAcc, AttribByte), 
14730             MCST,   8
14731         }
14732
14733         Device (GPOE)
14734         {
14735             Name (_HID, "INBC0000" /* GPIO Expander */)  // _HID: Hardware ID
14736             Name (_CID, "INBC0000" /* GPIO Expander */)  // _CID: Compatible ID
14737             Name (_DDN, "GPIO Expander")  // _DDN: DOS Device Name
14738             Method (_STA, 0, NotSerialized)  // _STA: Status
14739             {
14740                 If ((OSSL & 0x80))
14741                 {
14742                     Return (0x0F)
14743                 }
14744
14745                 Return (Zero)
14746             }
14747
14748             Name (RBUF, ResourceTemplate ()
14749             {
14750                 I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80,
14751                     AddressingMode7Bit, "\\_SB.I2C1",
14752                     0x00, ResourceConsumer, ,
14753                     )
14754             })
14755             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14756             {
14757                 Return (RBUF) /* \_SB_.I2C1.GPOE.RBUF */
14758             }
14759         }
14760
14761         Name (IOEX, ResourceTemplate ()
14762         {
14763             I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80,
14764                 AddressingMode7Bit, "\\_SB.I2C1",
14765                 0x00, ResourceConsumer, ,
14766                 )
14767         })
14768         OperationRegion (IOXO, GenericSerialBus, Zero, 0x20)
14769         Field (IOXO, BufferAcc, NoLock, Preserve)
14770         {
14771             Connection (IOEX), 
14772             Offset (0x01), 
14773             AccessAs (BufferAcc, AttribByte), 
14774             INR1,   8
14775         }
14776
14777         Field (IOXO, BufferAcc, NoLock, Preserve)
14778         {
14779             Connection (IOEX), 
14780             Offset (0x05), 
14781             AccessAs (BufferAcc, AttribByte), 
14782             OUTR,   8
14783         }
14784
14785         Field (IOXO, BufferAcc, NoLock, Preserve)
14786         {
14787             Connection (IOEX), 
14788             Offset (0x0D), 
14789             AccessAs (BufferAcc, AttribByte), 
14790             CONR,   8
14791         }
14792     }
14793
14794     Scope (_TZ)
14795     {
14796         ThermalZone (TZ00)
14797         {
14798             Name (_DEP, Package (0x02)  // _DEP: Dependencies
14799             {
14800                 \_SB.I2C5, 
14801                 \_SB.I2C5.PMIC
14802             })
14803             Method (_TMP, 0, Serialized)  // _TMP: Temperature
14804             {
14805                 If ((\_SB.I2C5.PMIC.AVBG == One))
14806                 {
14807                     \_SB.I2C5.PMIC.GMP2 = Zero
14808                     If ((\_SB.I2C5.PMIC.AVBD == One))
14809                     {
14810                         Return (\_SB.I2C5.PMIC.TMP2)
14811                     }
14812                 }
14813
14814                 Return (0x0AAC)
14815             }
14816         }
14817     }
14818
14819     Scope (_SB.PCI0)
14820     {
14821         Device (PDRC)
14822         {
14823             Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */)  // _HID: Hardware ID
14824             Name (_UID, One)  // _UID: Unique ID
14825             Name (BUF0, ResourceTemplate ()
14826             {
14827                 Memory32Fixed (ReadWrite,
14828                     0xE0000000,         // Address Base
14829                     0x10000000,         // Address Length
14830                     )
14831                 Memory32Fixed (ReadWrite,
14832                     0xFED01000,         // Address Base
14833                     0x00001000,         // Address Length
14834                     )
14835                 Memory32Fixed (ReadWrite,
14836                     0xFED03000,         // Address Base
14837                     0x00001000,         // Address Length
14838                     )
14839                 Memory32Fixed (ReadWrite,
14840                     0xFED04000,         // Address Base
14841                     0x00001000,         // Address Length
14842                     )
14843                 Memory32Fixed (ReadWrite,
14844                     0xFED0C000,         // Address Base
14845                     0x00004000,         // Address Length
14846                     )
14847                 Memory32Fixed (ReadWrite,
14848                     0xFED08000,         // Address Base
14849                     0x00001000,         // Address Length
14850                     )
14851                 Memory32Fixed (ReadWrite,
14852                     0xFED1C000,         // Address Base
14853                     0x00001000,         // Address Length
14854                     )
14855                 Memory32Fixed (ReadOnly,
14856                     0xFEE00000,         // Address Base
14857                     0x00100000,         // Address Length
14858                     )
14859                 Memory32Fixed (ReadWrite,
14860                     0xFEF00000,         // Address Base
14861                     0x00100000,         // Address Length
14862                     )
14863             })
14864         }
14865     }
14866
14867     Method (BRTN, 1, Serialized)
14868     {
14869         If (((DID1 & 0x0F00) == 0x0400))
14870         {
14871             Notify (\_SB.PCI0.GFX0.DD01, Arg0)
14872         }
14873
14874         If (((DID2 & 0x0F00) == 0x0400))
14875         {
14876             Notify (\_SB.PCI0.GFX0.DD02, Arg0)
14877         }
14878
14879         If (((DID3 & 0x0F00) == 0x0400))
14880         {
14881             Notify (\_SB.PCI0.GFX0.DD03, Arg0)
14882         }
14883
14884         If (((DID4 & 0x0F00) == 0x0400))
14885         {
14886             Notify (\_SB.PCI0.GFX0.DD04, Arg0)
14887         }
14888
14889         If (((DID5 & 0x0F00) == 0x0400))
14890         {
14891             Notify (\_SB.PCI0.GFX0.DD05, Arg0)
14892         }
14893
14894         If (CondRefOf (NDN3))
14895         {
14896             NDN3 (Arg0)
14897         }
14898     }
14899
14900     Scope (_SB.I2C1)
14901     {
14902         Device (SMFG)
14903         {
14904             Name (_HID, "MAX17047" /* Fuel Gauge Controller */)  // _HID: Hardware ID
14905             Name (_CID, "MAX17047" /* Fuel Gauge Controller */)  // _CID: Compatible ID
14906             Name (_DDN, "Fuel Gauge Controller")  // _DDN: DOS Device Name
14907             Name (RBUF, ResourceTemplate ()
14908             {
14909                 I2cSerialBus (0x0036, ControllerInitiated, 0x000186A0,
14910                     AddressingMode7Bit, "\\_SB.I2C1",
14911                     0x00, ResourceConsumer, ,
14912                     )
14913                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14914                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14915                     )
14916                     {   // Pin list
14917                         0x0012
14918                     }
14919             })
14920             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14921             {
14922                 Return (RBUF) /* \_SB_.I2C1.SMFG.RBUF */
14923             }
14924
14925             Method (_STA, 0, NotSerialized)  // _STA: Status
14926             {
14927                 If (((BDID == 0x06) && (OSSL & 0x80)))
14928                 {
14929                     Return (0x0F)
14930                 }
14931
14932                 Return (Zero)
14933             }
14934         }
14935
14936         Device (SMCG)
14937         {
14938             Name (_HID, "SMB0349" /* Charger */)  // _HID: Hardware ID
14939             Name (_CID, "SMB0349" /* Charger */)  // _CID: Compatible ID
14940             Name (_DDN, "Charger")  // _DDN: DOS Device Name
14941             Name (RBUF, ResourceTemplate ()
14942             {
14943                 I2cSerialBus (0x0035, ControllerInitiated, 0x000186A0,
14944                     AddressingMode7Bit, "\\_SB.I2C1",
14945                     0x00, ResourceConsumer, ,
14946                     )
14947                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14948                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14949                     )
14950                     {   // Pin list
14951                         0x0002
14952                     }
14953             })
14954             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14955             {
14956                 Return (RBUF) /* \_SB_.I2C1.SMCG.RBUF */
14957             }
14958
14959             Method (_STA, 0, NotSerialized)  // _STA: Status
14960             {
14961                 If (((BDID == 0x06) && (OSSL & 0x80)))
14962                 {
14963                     Return (0x0F)
14964                 }
14965
14966                 Return (Zero)
14967             }
14968         }
14969
14970         Device (TBCG)
14971         {
14972             Name (_HID, "TBQ24296" /* Charger */)  // _HID: Hardware ID
14973             Name (_CID, "TBQ24296" /* Charger */)  // _CID: Compatible ID
14974             Name (_DDN, "Charger")  // _DDN: DOS Device Name
14975             Name (RBUF, ResourceTemplate ()
14976             {
14977                 I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80,
14978                     AddressingMode7Bit, "\\_SB.I2C1",
14979                     0x00, ResourceConsumer, ,
14980                     )
14981                 GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000,
14982                     "\\_SB.GPO2", 0x00, ResourceConsumer, ,
14983                     )
14984                     {   // Pin list
14985                         0x0002
14986                     }
14987             })
14988             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
14989             {
14990                 Return (RBUF) /* \_SB_.I2C1.TBCG.RBUF */
14991             }
14992
14993             Method (_STA, 0, NotSerialized)  // _STA: Status
14994             {
14995                 If (((BDID == 0x06) && (OSSL & 0x80)))
14996                 {
14997                     Return (0x0F)
14998                 }
14999
15000                 Return (Zero)
15001             }
15002         }
15003     }
15004
15005     Scope (_SB.I2C1)
15006     {
15007         Name (MXFG, ResourceTemplate ()
15008         {
15009             I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80,
15010                 AddressingMode7Bit, "\\_SB.I2C1",
15011                 0x00, ResourceConsumer, ,
15012                 )
15013         })
15014         OperationRegion (DVFG, GenericSerialBus, Zero, 0x0100)
15015         Field (DVFG, BufferAcc, NoLock, Preserve)
15016         {
15017             Connection (MXFG), 
15018             Offset (0x05), 
15019             AccessAs (BufferAcc, AttribBytes (0x02)), 
15020             FG05,   8
15021         }
15022
15023         Field (DVFG, BufferAcc, NoLock, Preserve)
15024         {
15025             Connection (MXFG), 
15026             Offset (0x10), 
15027             AccessAs (BufferAcc, AttribBytes (0x02)), 
15028             FG10,   8
15029         }
15030
15031         Field (DVFG, BufferAcc, NoLock, Preserve)
15032         {
15033             Connection (MXFG), 
15034             Offset (0x17), 
15035             AccessAs (BufferAcc, AttribBytes (0x02)), 
15036             FG17,   8
15037         }
15038
15039         Field (DVFG, BufferAcc, NoLock, Preserve)
15040         {
15041             Connection (MXFG), 
15042             Offset (0x18), 
15043             AccessAs (BufferAcc, AttribBytes (0x02)), 
15044             FG18,   8
15045         }
15046
15047         Field (DVFG, BufferAcc, NoLock, Preserve)
15048         {
15049             Connection (MXFG), 
15050             Offset (0x09), 
15051             AccessAs (BufferAcc, AttribBytes (0x02)), 
15052             FG09,   8
15053         }
15054
15055         Field (DVFG, BufferAcc, NoLock, Preserve)
15056         {
15057             Connection (MXFG), 
15058             Offset (0x0A), 
15059             AccessAs (BufferAcc, AttribBytes (0x02)), 
15060             FG0A,   8
15061         }
15062
15063         Field (DVFG, BufferAcc, NoLock, Preserve)
15064         {
15065             Connection (MXFG), 
15066             Offset (0x11), 
15067             AccessAs (BufferAcc, AttribBytes (0x02)), 
15068             FG11,   8
15069         }
15070
15071         Field (DVFG, BufferAcc, NoLock, Preserve)
15072         {
15073             Connection (MXFG), 
15074             AccessAs (BufferAcc, AttribBytes (0x02)), 
15075             FG00,   8
15076         }
15077
15078         Field (DVFG, BufferAcc, NoLock, Preserve)
15079         {
15080             Connection (MXFG), 
15081             Offset (0x03), 
15082             AccessAs (BufferAcc, AttribBytes (0x02)), 
15083             FG03,   8
15084         }
15085
15086         Field (DVFG, BufferAcc, NoLock, Preserve)
15087         {
15088             Connection (MXFG), 
15089             Offset (0x1D), 
15090             AccessAs (BufferAcc, AttribBytes (0x02)), 
15091             FG1D,   8
15092         }
15093
15094         Field (DVFG, BufferAcc, NoLock, Preserve)
15095         {
15096             Connection (MXFG), 
15097             Offset (0x2B), 
15098             AccessAs (BufferAcc, AttribBytes (0x02)), 
15099             FG2B,   8
15100         }
15101
15102         Field (DVFG, BufferAcc, NoLock, Preserve)
15103         {
15104             Connection (MXFG), 
15105             Offset (0x08), 
15106             AccessAs (BufferAcc, AttribBytes (0x02)), 
15107             THRM,   8
15108         }
15109
15110         Field (DVFG, BufferAcc, NoLock, Preserve)
15111         {
15112             Connection (MXFG), 
15113             Offset (0x06), 
15114             AccessAs (BufferAcc, AttribBytes (0x02)), 
15115             SOCR,   8
15116         }
15117
15118         Field (DVFG, BufferAcc, NoLock, Preserve)
15119         {
15120             Connection (MXFG), 
15121             Offset (0x1C), 
15122             AccessAs (BufferAcc, AttribBytes (0x02)), 
15123             MXCU,   8
15124         }
15125
15126         Name (SMBC, ResourceTemplate ()
15127         {
15128             I2cSerialBus (0x0035, ControllerInitiated, 0x00061A80,
15129                 AddressingMode7Bit, "\\_SB.I2C1",
15130                 0x00, ResourceConsumer, ,
15131                 )
15132         })
15133         OperationRegion (DVBC, GenericSerialBus, Zero, 0x0100)
15134         Field (DVBC, BufferAcc, NoLock, Preserve)
15135         {
15136             Connection (SMBC), 
15137             AccessAs (BufferAcc, AttribByte), 
15138             BC00,   8, 
15139             BC01,   8, 
15140             BC02,   8, 
15141             BC03,   8, 
15142             BC04,   8, 
15143             BC05,   8, 
15144             BC06,   8, 
15145             BC07,   8, 
15146             BC08,   8, 
15147             BC09,   8, 
15148             BC0A,   8, 
15149             BC0B,   8, 
15150             BC0C,   8, 
15151             BC0D,   8, 
15152             BC0E,   8, 
15153             BC0F,   8, 
15154             BC10,   8
15155         }
15156
15157         Field (DVBC, BufferAcc, NoLock, Preserve)
15158         {
15159             Connection (SMBC), 
15160             Offset (0x3D), 
15161             AccessAs (BufferAcc, AttribByte), 
15162             BC3D,   8
15163         }
15164
15165         Field (DVBC, BufferAcc, NoLock, Preserve)
15166         {
15167             Connection (SMBC), 
15168             Offset (0x30), 
15169             AccessAs (BufferAcc, AttribByte), 
15170             BC30,   8
15171         }
15172
15173         Field (DVBC, BufferAcc, NoLock, Preserve)
15174         {
15175             Connection (SMBC), 
15176             Offset (0x3E), 
15177             AccessAs (BufferAcc, AttribByte), 
15178             BC3E,   8
15179         }
15180
15181         Field (DVBC, BufferAcc, NoLock, Preserve)
15182         {
15183             Connection (SMBC), 
15184             Offset (0x35), 
15185             AccessAs (BufferAcc, AttribBytes (0x06)), 
15186             BC35,   8
15187         }
15188
15189         Name (BQBC, ResourceTemplate ()
15190         {
15191             I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80,
15192                 AddressingMode7Bit, "\\_SB.I2C1",
15193                 0x00, ResourceConsumer, ,
15194                 )
15195         })
15196         OperationRegion (DVBQ, GenericSerialBus, Zero, 0x20)
15197         Field (DVBQ, BufferAcc, NoLock, Preserve)
15198         {
15199             Connection (BQBC), 
15200             AccessAs (BufferAcc, AttribByte), 
15201             BQ00,   8, 
15202             BQ01,   8, 
15203             BQ02,   8, 
15204             BQ03,   8, 
15205             BQ04,   8, 
15206             BQ05,   8, 
15207             BQ06,   8, 
15208             BQ07,   8, 
15209             BQ08,   8, 
15210             BQ09,   8, 
15211             BQ0A,   8
15212         }
15213
15214         Device (BATC)
15215         {
15216             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
15217             Name (_UID, One)  // _UID: Unique ID
15218             Name (FGDV, 0x0A)
15219             Name (BCCC, 0x60)
15220             Name (BCCE, One)
15221             Name (BCCL, 0xFFFFFFFF)
15222             Name (BCLP, 0x1004)
15223             Name (DSCP, 0x132A)
15224             Name (DSVO, 0x0ED8)
15225             Name (RECT, 0x1004)
15226             Name (BTPC, Zero)
15227             Name (AVCU, Zero)
15228             Name (ACMD, 0xFF)
15229             Name (_DEP, Package (0x03)  // _DEP: Dependencies
15230             {
15231                 I2C1, 
15232                 GPO2, 
15233                 GPO0
15234             })
15235             Name (BUFF, Buffer (0x03)
15236             {
15237                  0x00, 0x01, 0x00                                 /* ... */
15238             })
15239             CreateByteField (BUFF, Zero, BYAT)
15240             CreateByteField (BUFF, 0x02, DATA)
15241             Name (BUF1, Buffer (0x06)
15242             {
15243                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
15244             })
15245             CreateByteField (BUF1, Zero, BSTA)
15246             CreateByteField (BUF1, One, BLEN)
15247             CreateDWordField (BUF1, 0x02, DAT1)
15248             Name (BUF2, Buffer (0x04)
15249             {
15250                  0x00, 0x00, 0x00, 0x00                           /* .... */
15251             })
15252             CreateByteField (BUF2, Zero, BSTS)
15253             CreateByteField (BUF2, One, SLEN)
15254             CreateWordField (BUF2, 0x02, WRD1)
15255             Name (INBU, Buffer (0x08)
15256             {
15257                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   /* ........ */
15258             })
15259             CreateByteField (INBU, Zero, INST)
15260             CreateByteField (INBU, One, INLN)
15261             CreateByteField (INBU, 0x02, INT0)
15262             CreateByteField (INBU, 0x03, INT1)
15263             CreateByteField (INBU, 0x04, INT2)
15264             CreateByteField (INBU, 0x05, INT3)
15265             CreateByteField (INBU, 0x06, INT4)
15266             CreateByteField (INBU, 0x07, INT5)
15267             Method (CLIM, 0, NotSerialized)
15268             {
15269                 BUFF = MSTA /* \_SB_.I2C1.MSTA */
15270                 Local1 = 0x02
15271                 Sleep (0x64)
15272                 ADBG ("CLIM")
15273                 ADBG (DATA)
15274                 If ((DATA & 0x10))
15275                 {
15276                     If ((DATA & 0xE0))
15277                     {
15278                         Local0 = (DATA & 0xE0)
15279                         If (((Local0 == 0xA0) || (Local0 == 0x60)))
15280                         {
15281                             ADBG ("CLIM----1")
15282                             Local1 = 0x02
15283                         }
15284
15285                         If (((Local0 == 0x40) || (Local0 == 0x20)))
15286                         {
15287                             ADBG ("CLIM----2")
15288                             Local1 = 0x07
15289                         }
15290
15291                         If ((Local0 == 0x80))
15292                         {
15293                             ADBG ("CLIM----3")
15294                             Local1 = Zero
15295                         }
15296                     }
15297                 }
15298
15299                 Return (Local1)
15300             }
15301
15302             Name (BIXP, Package (0x14)
15303             {
15304                 Zero, 
15305                 One, 
15306                 0xFFFFFFFF, 
15307                 0xFFFFFFFF, 
15308                 One, 
15309                 0xFFFFFFFF, 
15310                 0x0A, 
15311                 0x04, 
15312                 Zero, 
15313                 0x00017318, 
15314                 0xFFFFFFFF, 
15315                 0xFFFFFFFF, 
15316                 0x88B8, 
15317                 0x61A8, 
15318                 One, 
15319                 One, 
15320                 "SR Real Battery", 
15321                 "123456789", 
15322                 "LION", 
15323                 "Intel SR 1"
15324             })
15325             Name (BSTP, Package (0x04)
15326             {
15327                 Zero, 
15328                 0xFFFFFFFF, 
15329                 0xFFFFFFFF, 
15330                 0xFFFFFFFF
15331             })
15332             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
15333             {
15334                 ADBG ("BIX")
15335                 If ((AVBL == One))
15336                 {
15337                     BUF2 = FG10 /* \_SB_.I2C1.FG10 */
15338                     If ((BSTS != One))
15339                     {
15340                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15341                         Local2 = (Local1 * 0x05)
15342                         Divide (Local2, FGDV, Local0, Local1)
15343                         Index (BIXP, 0x03) = Local1
15344                     }
15345
15346                     BUF2 = FG17 /* \_SB_.I2C1.FG17 */
15347                     If ((BSTS != One))
15348                     {
15349                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15350                         Divide (Local1, 0x64, Local0, Local2)
15351                         Index (BIXP, 0x08) = Local2
15352                     }
15353                 }
15354
15355                 Index (BIXP, 0x02) = DSCP /* \_SB_.I2C1.BATC.DSCP */
15356                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C1.BATC.DSVO */
15357                 Divide (DSCP, 0x0A, Local0, Local1)
15358                 Index (BIXP, 0x06) = Local1
15359                 Divide (DSCP, 0x14, Local0, Local1)
15360                 Index (BIXP, 0x07) = Local1
15361                 If ((ACMD == 0xFF))
15362                 {
15363                     BUFF = INR1 /* \_SB_.I2C1.INR1 */
15364                     If (((DATA & 0x20) == 0x20))
15365                     {
15366                         ACMD = One
15367                         ADBG ("AC Mode")
15368                     }
15369                     Else
15370                     {
15371                         ACMD = Zero
15372                         ADBG ("Non-AC Mode")
15373                     }
15374                 }
15375
15376                 Return (BIXP) /* \_SB_.I2C1.BATC.BIXP */
15377             }
15378
15379             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
15380             {
15381                 If ((AVBL == One))
15382                 {
15383                     ADBG ("BST")
15384                     BUFF = BQ09 /* \_SB_.I2C1.BQ09 */
15385                     Local0 = (DATA & 0x80)
15386                     If ((Local0 == 0x80))
15387                     {
15388                         BUFF = BQ05 /* \_SB_.I2C1.BQ05 */
15389                         Local0 = (DATA & 0xCF)
15390                         DATA = Local0
15391                         BQ05 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15392                     }
15393
15394                     BUF2 = FG00 /* \_SB_.I2C1.FG00 */
15395                     If ((BSTS != One))
15396                     {
15397                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15398                     }
15399
15400                     ADBG (Local1)
15401                     If ((Local1 != Zero))
15402                     {
15403                         Local0 = (WRD1 & 0x02)
15404                         WRD1 = Local0
15405                         FG00 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
15406                     }
15407
15408                     BUFF = BQ00 /* \_SB_.I2C1.BQ00 */
15409                     Local0 = (DATA & 0x80)
15410                     If ((Local0 == 0x80))
15411                     {
15412                         Local0 = (DATA & 0x7F)
15413                         DATA = Local0
15414                         BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15415                         BUFF = BQ07 /* \_SB_.I2C1.BQ07 */
15416                         Local0 = (DATA | 0x80)
15417                         DATA = Local0
15418                         BQ07 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15419                     }
15420
15421                     BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
15422                     If ((BYAT != One))
15423                     {
15424                         Local0 = (DATA >> 0x04)
15425                         Local0 &= 0x03
15426                         If (((Local0 == One) || (Local0 == 0x02)))
15427                         {
15428                             Local1 = 0x02
15429                         }
15430
15431                         If ((Local0 == Zero))
15432                         {
15433                             Local1 = One
15434                         }
15435
15436                         If ((Local0 == 0x03))
15437                         {
15438                             Local1 = Zero
15439                         }
15440
15441                         Index (BSTP, Zero) = Local1
15442                     }
15443
15444                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
15445                     If ((BSTS != One))
15446                     {
15447                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15448                         If ((Local1 & 0x8000))
15449                         {
15450                             Local1 -= 0xFFFF
15451                         }
15452
15453                         Divide (Local1, FGDV, Local0, Local2)
15454                         Local1 = (Local2 * 0x9C)
15455                         Divide (Local1, 0x64, Local0, Local2)
15456                         Index (BSTP, One) = Local2
15457                     }
15458
15459                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
15460                     If ((BSTS != One))
15461                     {
15462                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15463                         Local2 = (Local1 * 0x05)
15464                         Divide (Local2, FGDV, Local0, Local1)
15465                         Index (BSTP, 0x02) = Local1
15466                     }
15467
15468                     BUF2 = FG09 /* \_SB_.I2C1.FG09 */
15469                     If ((BSTS != One))
15470                     {
15471                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15472                         Local2 = (Local1 >> 0x03)
15473                         Local1 = (Local2 * 0x0271)
15474                         Divide (Local1, 0x03E8, Local0, Local2)
15475                         Index (BSTP, 0x03) = Local2
15476                     }
15477
15478                     BUFF = BQ01 /* \_SB_.I2C1.BQ01 */
15479                     If ((BYAT != One))
15480                     {
15481                         If ((BCCE == One))
15482                         {
15483                             DATA |= 0x10
15484                             BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15485                         }
15486                         Else
15487                         {
15488                             DATA &= 0xEF
15489                             BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15490                         }
15491
15492                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
15493                         ADBG ("Charger enable")
15494                         ADBG (Local0)
15495                     }
15496
15497                     BUFF = BQ02 /* \_SB_.I2C1.BQ02 */
15498                     If ((BYAT != One))
15499                     {
15500                         Local1 = BCCC /* \_SB_.I2C1.BATC.BCCC */
15501                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
15502                         Local2 = (Local0 & 0xFC)
15503                         If ((Local2 != Local1))
15504                         {
15505                             ADBG ("UPD CU From")
15506                             ADBG (DATA)
15507                             Local2 = (DATA & 0x03)
15508                             DATA = (Local2 | Local1)
15509                             BQ02 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15510                         }
15511
15512                         Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
15513                         ADBG ("Fast Current")
15514                         ADBG (Local1)
15515                     }
15516
15517                     If ((ACMD != One))
15518                     {
15519                         Local3 = CLIM ()
15520                         ADBG (Local3)
15521                         BUFF = BQ00 /* \_SB_.I2C1.BQ00 */
15522                         If ((BYAT != One))
15523                         {
15524                             Local2 = (DATA & 0x07)
15525                             If ((Local2 != Local3))
15526                             {
15527                                 Local2 = (DATA & 0xF8)
15528                                 DATA = (Local2 | Local3)
15529                                 BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */
15530                             }
15531                         }
15532
15533                         Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
15534                         ADBG ("Input Current")
15535                         ADBG (Local1)
15536                     }
15537                 }
15538
15539                 Return (BSTP) /* \_SB_.I2C1.BATC.BSTP */
15540             }
15541
15542             Method (INTC, 0, NotSerialized)
15543             {
15544                 BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
15545                 If ((BYAT != One))
15546                 {
15547                     Local1 = DATA /* \_SB_.I2C1.BATC.DATA */
15548                 }
15549
15550                 Return (Local1)
15551             }
15552
15553             Method (INTF, 0, NotSerialized)
15554             {
15555                 ADBG ("INTF")
15556                 BUF2 = FG00 /* \_SB_.I2C1.FG00 */
15557                 If ((BSTS != One))
15558                 {
15559                     Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15560                 }
15561
15562                 Return (Local1)
15563             }
15564
15565             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
15566             {
15567                 BTPC = Arg0
15568                 ADBG ("BTP")
15569                 ADBG (Arg0)
15570                 If ((AVBL == One))
15571                 {
15572                     DAT1 = Arg0
15573                     BLEN = 0x04
15574                     BUF2 = FG2B /* \_SB_.I2C1.FG2B */
15575                     If ((BSTS != One))
15576                     {
15577                         Local1 = (WRD1 & 0xFFFC)
15578                         WRD1 = Local1
15579                         FG2B = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
15580                     }
15581
15582                     BUF2 = FG1D /* \_SB_.I2C1.FG1D */
15583                     If ((BSTS != One))
15584                     {
15585                         Local1 = (WRD1 & 0xFFFB)
15586                         Local2 = (Local1 | 0x4004)
15587                         WRD1 = Local2
15588                         FG1D = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
15589                     }
15590
15591                     BUF2 = SOCR /* \_SB_.I2C1.SOCR */
15592                     If ((BSTS != One))
15593                     {
15594                         Local0 = (WRD1 >> 0x08)
15595                         Local1 = (Local0 & 0xFF)
15596                     }
15597
15598                     Local2 = (Local1 + One)
15599                     Local3 = (Local1 - One)
15600                     Local1 = (Local2 << 0x08)
15601                     Local2 = (Local1 | Local3)
15602                     WRD1 = Local2
15603                     FG03 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */
15604                 }
15605             }
15606
15607             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
15608             {
15609                 ADBG ("BTM")
15610                 If ((Arg0 > 0x7530))
15611                 {
15612                     Return (Zero)
15613                 }
15614
15615                 If ((AVBL == One))
15616                 {
15617                     BUF2 = FG11 /* \_SB_.I2C1.FG11 */
15618                     If ((BSTS != One))
15619                     {
15620                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15621                         If ((Arg0 == Zero))
15622                         {
15623                             Local2 = (Local1 >> 0x05)
15624                             Local1 = (Local2 * 0x03)
15625                             Local2 = (Local1 * 0x3C)
15626                             Return (Local2)
15627                         }
15628
15629                         BUF2 = FG05 /* \_SB_.I2C1.FG05 */
15630                         If ((BSTS != One))
15631                         {
15632                             Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15633                             Local2 = (Local1 * 0x05)
15634                             Divide (Local2, FGDV, Local0, Local1)
15635                             Local0 = (Local1 * 0x0E10)
15636                             Divide (Local0, Arg0, Local1, Local2)
15637                             Return (Local2)
15638                         }
15639                     }
15640                 }
15641
15642                 Return (0xFFFFFFFF)
15643             }
15644
15645             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
15646             {
15647                 ADBG ("BCT")
15648                 If (((Arg0 > 0x64) || (Arg0 < One)))
15649                 {
15650                     Return (Zero)
15651                 }
15652
15653                 If ((AVBL == One))
15654                 {
15655                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
15656                     Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15657                     If ((BSTS != One))
15658                     {
15659                         Local2 = (Local1 * 0x05)
15660                         Divide (Local2, FGDV, Local0, Local1)
15661                         RECT = Local1
15662                     }
15663
15664                     BUF2 = FG10 /* \_SB_.I2C1.FG10 */
15665                     If ((BSTS != One))
15666                     {
15667                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15668                         Local2 = (Local1 * 0x05)
15669                         Divide (Local2, FGDV, Local0, Local1)
15670                         BCLP = Local1
15671                     }
15672
15673                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
15674                     If ((BSTS != One))
15675                     {
15676                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15677                         If ((Local1 & 0x8000))
15678                         {
15679                             Return (Zero)
15680                         }
15681                     }
15682
15683                     Local0 = (BCLP * Arg0)
15684                     Local0 -= RECT /* \_SB_.I2C1.BATC.RECT */
15685                     Local0 *= 0x0E10
15686                     Divide (Local0, Local1, Local2, Local3)
15687                     Return (Local3)
15688                 }
15689
15690                 Return (0xFFFFFFFF)
15691             }
15692
15693             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
15694             {
15695                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
15696                 {
15697                     If ((Arg2 == 0x02))
15698                     {
15699                         If ((Arg1 == Zero))
15700                         {
15701                             Return (Buffer (One)
15702                             {
15703                                  0x00                                             /* . */
15704                             })
15705                         }
15706                     }
15707                 }
15708
15709                 Return (Zero)
15710             }
15711
15712             Method (_STA, 0, NotSerialized)  // _STA: Status
15713             {
15714                 If ((PMID == 0x05))
15715                 {
15716                     Return (Zero)
15717                 }
15718
15719                 If ((PMID == 0x06))
15720                 {
15721                     Return (Zero)
15722                 }
15723
15724                 If ((AVBL == One))
15725                 {
15726                     BUF2 = FG05 /* \_SB_.I2C1.FG05 */
15727                     If ((BSTS != Zero))
15728                     {
15729                         Return (Zero)
15730                     }
15731                 }
15732
15733                 Return (0x1F)
15734             }
15735
15736             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15737             {
15738                 Return (_SB) /* \_SB_ */
15739             }
15740
15741             Method (PSOC, 0, NotSerialized)
15742             {
15743                 If ((AVBL == One))
15744                 {
15745                     BUF2 = SOCR /* \_SB_.I2C1.SOCR */
15746                     If ((BSTS != One))
15747                     {
15748                         Local0 = (WRD1 >> 0x08)
15749                         Local1 = (Local0 & 0xFF)
15750                     }
15751
15752                     Return (Local1)
15753                 }
15754
15755                 Return (Zero)
15756             }
15757
15758             Method (PMAX, 0, NotSerialized)
15759             {
15760                 If ((AVBL == One))
15761                 {
15762                     BUF2 = MXCU /* \_SB_.I2C1.MXCU */
15763                     If ((BSTS != One))
15764                     {
15765                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15766                         If ((Local1 & 0x8000))
15767                         {
15768                             Local0 = (Local1 >> 0x08)
15769                             Local1 = (Local0 & 0xFF)
15770                             Local0 = (0xFFFF - Local1)
15771                             Local1 = (Local0 * 0x04)
15772                         }
15773                         Else
15774                         {
15775                             Local0 = (Local1 >> 0x08)
15776                             Local2 = (Local0 & 0xFF)
15777                             Local1 = (Local2 * 0x04)
15778                         }
15779
15780                         Divide (Local1, 0x0A, Local0, Local2)
15781                         Divide (Local2, FGDV, Local0, Local1)
15782                         Local2 = (Local1 * 0x03E8)
15783                         Local1 = (DSVO * Local2)
15784                         Return (Local1)
15785                     }
15786                 }
15787
15788                 Return (Zero)
15789             }
15790
15791             Method (VMIN, 0, NotSerialized)
15792             {
15793                 Return (0x0DAC)
15794             }
15795
15796             Method (APWR, 0, NotSerialized)
15797             {
15798                 Return (0x0365C040)
15799             }
15800
15801             Method (NPWR, 0, NotSerialized)
15802             {
15803                 Local3 = APWR ()
15804                 If ((AVBL == One))
15805                 {
15806                     BUF2 = FG0A /* \_SB_.I2C1.FG0A */
15807                     If ((BSTS != One))
15808                     {
15809                         Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15810                         If ((Local1 & 0x8000))
15811                         {
15812                             Local1 -= 0xFFFF
15813                         }
15814
15815                         Divide (Local1, FGDV, Local0, Local2)
15816                         Local1 = (Local2 * 0x9C)
15817                         Divide (Local1, 0x64, Local0, Local2)
15818                         AVCU = Local2
15819                         BUF2 = FG09 /* \_SB_.I2C1.FG09 */
15820                         If ((BSTS != One))
15821                         {
15822                             Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */
15823                             Local2 = (Local1 >> 0x03)
15824                             Local1 = (Local2 * 0x0271)
15825                             Divide (Local1, 0x03E8, Local0, Local2)
15826                         }
15827
15828                         Local1 = (Local2 * AVCU) /* \_SB_.I2C1.BATC.AVCU */
15829                         Local0 = (Local3 - Local1)
15830                         Return (Local0)
15831                     }
15832                 }
15833
15834                 Return (Local0)
15835             }
15836
15837             Method (PSRC, 0, NotSerialized)
15838             {
15839                 If ((AVBL == One))
15840                 {
15841                     BUFF = BQ08 /* \_SB_.I2C1.BQ08 */
15842                     If ((BYAT != One))
15843                     {
15844                         Local0 = DATA /* \_SB_.I2C1.BATC.DATA */
15845                         Local0 = (DATA >> 0x06)
15846                         Local0 &= 0x03
15847                         Return (Local0)
15848                     }
15849                 }
15850
15851                 Return (One)
15852             }
15853
15854             Method (CTYP, 0, NotSerialized)
15855             {
15856                 Return (0x02)
15857             }
15858
15859             Method (ARTG, 0, NotSerialized)
15860             {
15861                 Return (0x0365C040)
15862             }
15863         }
15864     }
15865
15866     Scope (_SB)
15867     {
15868         Device (ADP1)
15869         {
15870             Name (_HID, "ACPI0003" /* Power Source Device */)  // _HID: Hardware ID
15871             Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
15872             {
15873                 If ((^^GPO2.USID == Zero))
15874                 {
15875                     Return (Zero)
15876                 }
15877
15878                 If ((PMID == One))
15879                 {
15880                     If (CondRefOf (\_SB.I2C1.BATC, Local1))
15881                     {
15882                         Local0 = ^^I2C1.BATC.PSRC ()
15883                         If ((Local0 == Zero))
15884                         {
15885                             Return (Zero)
15886                         }
15887                         Else
15888                         {
15889                             Return (One)
15890                         }
15891                     }
15892
15893                     Return (One)
15894                 }
15895
15896                 If ((PMID == 0x05))
15897                 {
15898                     If (CondRefOf (\_SB.I2C5.BMBT, Local1))
15899                     {
15900                         Local0 = ^^I2C5.BMBT.PSRC ()
15901                         If ((Local0 == Zero))
15902                         {
15903                             Return (Zero)
15904                         }
15905                         Else
15906                         {
15907                             Return (One)
15908                         }
15909                     }
15910                 }
15911
15912                 If ((PMID == 0x06))
15913                 {
15914                     If (CondRefOf (\_SB.I2C5.TIBT, Local1))
15915                     {
15916                         Local0 = ^^I2C5.TIBT.PSRC ()
15917                         If ((Local0 == Zero))
15918                         {
15919                             Return (Zero)
15920                         }
15921                         Else
15922                         {
15923                             Return (One)
15924                         }
15925                     }
15926                 }
15927
15928                 Return (One)
15929             }
15930
15931             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
15932             {
15933                 Return (_SB) /* \_SB_ */
15934             }
15935         }
15936     }
15937
15938     Scope (_SB.I2C5)
15939     {
15940         Device (BMDR)
15941         {
15942             Name (_HID, "INT33FE" /* XPOWER Battery Device */)  // _HID: Hardware ID
15943             Name (_CID, "INT33FE" /* XPOWER Battery Device */)  // _CID: Compatible ID
15944             Name (_DDN, "XPOWER Battery Device")  // _DDN: DOS Device Name
15945             Name (_DEP, Package (0x02)  // _DEP: Dependencies
15946             {
15947                 I2C5, 
15948                 PMI1
15949             })
15950             Name (RBUF, ResourceTemplate ()
15951             {
15952                 I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0,
15953                     AddressingMode7Bit, "\\_SB.I2C1",
15954                     0x00, ResourceConsumer, ,
15955                     )
15956                 GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000,
15957                     "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, ,
15958                     )
15959                     {   // Pin list
15960                         0x0011
15961                     }
15962             })
15963             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
15964             {
15965                 Return (RBUF) /* \_SB_.I2C5.BMDR.RBUF */
15966             }
15967
15968             Method (_STA, 0, NotSerialized)  // _STA: Status
15969             {
15970                 If ((PMID == 0x05))
15971                 {
15972                     Return (0x0F)
15973                 }
15974
15975                 Return (Zero)
15976             }
15977
15978             OperationRegion (BMOP, 0x9E, Zero, 0x0100)
15979             Field (BMOP, DWordAcc, NoLock, Preserve)
15980             {
15981                 SOC,    32, 
15982                 FCCP,   32, 
15983                 CHST,   32, 
15984                 RMCP,   32, 
15985                 VOLT,   32, 
15986                 BATP,   32, 
15987                 SRP0,   32, 
15988                 STYP,   32, 
15989                 CHGC,   32, 
15990                 STPC,   32, 
15991                 GADC,   32, 
15992                 TTEM,   32, 
15993                 TTCH,   32, 
15994                 CYCL,   32, 
15995                 BTP,    32, 
15996                 DPCU,   32, 
15997                 DSCP,   32
15998             }
15999
16000             Name (AVBL, Zero)
16001             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
16002             {
16003                 If ((Arg0 == 0x9E))
16004                 {
16005                     AVBL = Arg1
16006                 }
16007             }
16008
16009             Name (CHTP, Zero)
16010             Method (SBTP, 0, NotSerialized)
16011             {
16012                 ADBG ("SBTP")
16013                 ADBG ("XP00")
16014                 Name (BMUX, Buffer (0x03)
16015                 {
16016                      0x00, 0x01, 0x00                                 /* ... */
16017                 })
16018                 CreateByteField (BMUX, Zero, BBBY)
16019                 CreateByteField (BMUX, 0x02, DDDT)
16020                 BMUX = XP00 /* \_SB_.I2C5.XP00 */
16021                 ADBG (BMUX)
16022                 If ((BBBY != One))
16023                 {
16024                     If ((DDDT && 0x20))
16025                     {
16026                         ADBG ("vbus on 2C")
16027                         BMUX = XP2C /* \_SB_.I2C5.XP2C */
16028                         If ((BBBY != One))
16029                         {
16030                             Local1 = 0x14
16031                             While (((DDDT && 0x04) && (Local1 != Zero)))
16032                             {
16033                                 Sleep (0x64)
16034                                 BMUX = XP2C /* \_SB_.I2C5.XP2C */
16035                                 DDDT &= 0x04
16036                                 Local1 -= One
16037                             }
16038
16039                             If ((Local1 == Zero))
16040                             {
16041                                 ADBG ("timeout")
16042                                 CHTP = Zero
16043                             }
16044                             Else
16045                             {
16046                                 ADBG ("Det ok")
16047                                 BMUX = XP2F /* \_SB_.I2C5.XP2F */
16048                                 Local0 = (DDDT >> 0x05)
16049                                 CHTP = Local0
16050                             }
16051                         }
16052                         Else
16053                         {
16054                             ADBG ("2C r Fail")
16055                             CHTP = Zero
16056                         }
16057                     }
16058                     Else
16059                     {
16060                         ADBG ("VBUS OFF")
16061                         CHTP = Zero
16062                     }
16063                 }
16064                 Else
16065                 {
16066                     ADBG ("00readFail")
16067                     CHTP = Zero
16068                 }
16069
16070                 ADBG (CHTP)
16071                 If (CondRefOf (\_SB.I2C5.BMBT, Local1))
16072                 {
16073                     Notify (ADP1, 0x80) // Status Change
16074                     Notify (BMBT, 0x80) // Status Change
16075                     Notify (BMBT, 0x81) // Information Change
16076                     If (CondRefOf (\_SB.DPTF, Local3))
16077                     {
16078                         Notify (DPTF, 0x86) // Device-Specific
16079                         Notify (TCHG, 0x80) // Status Change
16080                     }
16081
16082                     Notify (ADP1, 0x80) // Status Change
16083                     Return (One)
16084                 }
16085
16086                 Return (Zero)
16087             }
16088
16089             Method (PTYP, 0, NotSerialized)
16090             {
16091                 ADBG ("PTYP")
16092                 Local0 = (PMID | 0x80)
16093                 Return (Local0)
16094             }
16095         }
16096
16097         Device (TIDR)
16098         {
16099             Name (_HID, "INT33FE" /* XPOWER Battery Device */)  // _HID: Hardware ID
16100             Name (_CID, "INT33FE" /* XPOWER Battery Device */)  // _CID: Compatible ID
16101             Name (_DDN, "TI PMIC Battery Device")  // _DDN: DOS Device Name
16102             Name (_DEP, Package (0x02)  // _DEP: Dependencies
16103             {
16104                 I2C5, 
16105                 PMI2
16106             })
16107             Name (RBUF, ResourceTemplate ()
16108             {
16109                 I2cSerialBus (0x006B, ControllerInitiated, 0x000186A0,
16110                     AddressingMode7Bit, "\\_SB.I2C1",
16111                     0x00, ResourceConsumer, ,
16112                     )
16113                 I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0,
16114                     AddressingMode7Bit, "\\_SB.I2C1",
16115                     0x00, ResourceConsumer, ,
16116                     )
16117                 GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000,
16118                     "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, ,
16119                     )
16120                     {   // Pin list
16121                         0x0011
16122                     }
16123             })
16124             Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
16125             {
16126                 Return (RBUF) /* \_SB_.I2C5.TIDR.RBUF */
16127             }
16128
16129             Method (_STA, 0, NotSerialized)  // _STA: Status
16130             {
16131                 If ((PMID == 0x06))
16132                 {
16133                     Return (0x0F)
16134                 }
16135
16136                 Return (Zero)
16137             }
16138
16139             OperationRegion (BMOP, 0x9E, Zero, 0x0100)
16140             Field (BMOP, DWordAcc, NoLock, Preserve)
16141             {
16142                 SOC,    32, 
16143                 FCCP,   32, 
16144                 CHST,   32, 
16145                 RMCP,   32, 
16146                 VOLT,   32, 
16147                 BATP,   32, 
16148                 SRP0,   32, 
16149                 STYP,   32, 
16150                 CHGC,   32, 
16151                 STPC,   32, 
16152                 GADC,   32, 
16153                 TTEM,   32, 
16154                 TTCH,   32, 
16155                 CYCL,   32, 
16156                 BTP,    32, 
16157                 DPCU,   32, 
16158                 DSCP,   32
16159             }
16160
16161             Name (AVBL, Zero)
16162             Method (_REG, 2, NotSerialized)  // _REG: Region Availability
16163             {
16164                 If ((Arg0 == 0x9E))
16165                 {
16166                     AVBL = Arg1
16167                 }
16168             }
16169
16170             Method (SBTP, 0, NotSerialized)
16171             {
16172                 ADBG ("SBTP")
16173                 If (CondRefOf (\_SB.I2C5.TIBT, Local1))
16174                 {
16175                     Notify (ADP1, 0x80) // Status Change
16176                     Notify (TIBT, 0x80) // Status Change
16177                     Notify (TIBT, 0x81) // Information Change
16178                     If (CondRefOf (\_SB.DPTF, Local3))
16179                     {
16180                         Notify (DPTF, 0x86) // Device-Specific
16181                         Notify (TCHG, 0x80) // Status Change
16182                     }
16183
16184                     Return (One)
16185                 }
16186
16187                 Return (Zero)
16188             }
16189
16190             Method (PTYP, 0, NotSerialized)
16191             {
16192                 ADBG ("PTYP")
16193                 Local0 = (PMID | 0x80)
16194                 Return (Local0)
16195             }
16196         }
16197
16198         Device (BMBT)
16199         {
16200             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
16201             Name (_UID, One)  // _UID: Unique ID
16202             Name (BCCE, One)
16203             Name (OTGS, Zero)
16204             Name (CHPR, One)
16205             Name (FGDV, 0x0A)
16206             Name (BCCC, 0x07)
16207             Name (BCIL, 0x65)
16208             Name (BCVF, 0x93)
16209             Name (BCFV, 0xED)
16210             Name (BCCH, 0x38)
16211             Name (BCST, 0x05)
16212             Name (BCPE, 0x74)
16213             Name (BCCL, 0xFFFFFFFF)
16214             Name (BCLP, 0x1004)
16215             Name (DSCP, 0x1300)
16216             Name (DSVO, 0x0EA6)
16217             Name (BTPC, Zero)
16218             Name (AVCU, Zero)
16219             Name (_DEP, Package (0x01)  // _DEP: Dependencies
16220             {
16221                 I2C5
16222             })
16223             Name (BUFF, Buffer (0x03)
16224             {
16225                  0x00, 0x01, 0x00                                 /* ... */
16226             })
16227             CreateByteField (BUFF, Zero, BYAT)
16228             CreateByteField (BUFF, 0x02, DATA)
16229             Name (BUF1, Buffer (0x06)
16230             {
16231                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
16232             })
16233             CreateByteField (BUF1, Zero, BSTA)
16234             CreateByteField (BUF1, One, BLEN)
16235             CreateDWordField (BUF1, 0x02, DAT1)
16236             Name (BUF2, Buffer (0x04)
16237             {
16238                  0x00, 0x00, 0x00, 0x00                           /* .... */
16239             })
16240             CreateByteField (BUF2, Zero, BSTS)
16241             CreateByteField (BUF2, One, SLEN)
16242             CreateWordField (BUF2, 0x02, WRD1)
16243             Name (BIXP, Package (0x14)
16244             {
16245                 Zero, 
16246                 One, 
16247                 0xFFFFFFFF, 
16248                 0xFFFFFFFF, 
16249                 One, 
16250                 0xFFFFFFFF, 
16251                 0x0A, 
16252                 0x04, 
16253                 Zero, 
16254                 0x00017318, 
16255                 0xFFFFFFFF, 
16256                 0xFFFFFFFF, 
16257                 0x88B8, 
16258                 0x61A8, 
16259                 One, 
16260                 One, 
16261                 "SR Real Battery", 
16262                 "123456789", 
16263                 "LION", 
16264                 "Intel SR 1"
16265             })
16266             Name (BSTP, Package (0x04)
16267             {
16268                 Zero, 
16269                 0xFFFFFFFF, 
16270                 0xFFFFFFFF, 
16271                 0xFFFFFFFF
16272             })
16273             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
16274             {
16275                 ADBG ("BIX")
16276                 If ((^^BMDR.AVBL == One))
16277                 {
16278                     Index (BIXP, 0x03) = ^^BMDR.FCCP /* \_SB_.I2C5.BMDR.FCCP */
16279                     Index (BIXP, 0x08) = ^^BMDR.CYCL /* \_SB_.I2C5.BMDR.CYCL */
16280                     Index (BIXP, 0x02) = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */
16281                     DSCP = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */
16282                 }
16283
16284                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.BMBT.DSVO */
16285                 Divide (DSCP, 0x0A, Local0, Local1)
16286                 Index (BIXP, 0x06) = Local1
16287                 Divide (DSCP, 0x14, Local0, Local1)
16288                 Index (BIXP, 0x07) = Local1
16289                 Return (BIXP) /* \_SB_.I2C5.BMBT.BIXP */
16290             }
16291
16292             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
16293             {
16294                 If ((^^BMDR.AVBL == One))
16295                 {
16296                     ADBG ("BST")
16297                     Local0 = ^^BMDR.CHST /* \_SB_.I2C5.BMDR.CHST */
16298                     Local0 &= 0x0F
16299                     If ((Local0 == 0x02))
16300                     {
16301                         Local1 = 0x02
16302                     }
16303
16304                     If ((Local0 == One))
16305                     {
16306                         Local1 = One
16307                     }
16308
16309                     If ((Local0 == 0x08))
16310                     {
16311                         Local1 = Zero
16312                     }
16313
16314                     Index (BSTP, Zero) = Local1
16315                     Index (BSTP, One) = ^^BMDR.CHGC /* \_SB_.I2C5.BMDR.CHGC */
16316                     Index (BSTP, 0x02) = ^^BMDR.RMCP /* \_SB_.I2C5.BMDR.RMCP */
16317                     Index (BSTP, 0x03) = ^^BMDR.VOLT /* \_SB_.I2C5.BMDR.VOLT */
16318                     ^^BMDR.DPCU = BCCC /* \_SB_.I2C5.BMBT.BCCC */
16319                 }
16320
16321                 Return (BSTP) /* \_SB_.I2C5.BMBT.BSTP */
16322             }
16323
16324             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
16325             {
16326                 BTPC = Arg0
16327                 ADBG ("BTP")
16328                 ADBG (Arg0)
16329                 If ((^^BMDR.AVBL == One))
16330                 {
16331                     ^^BMDR.BTP = Arg0
16332                 }
16333             }
16334
16335             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
16336             {
16337                 ADBG ("BTM")
16338                 If ((Arg0 > 0x7530))
16339                 {
16340                     Return (Zero)
16341                 }
16342
16343                 Return (0xFFFFFFFF)
16344             }
16345
16346             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
16347             {
16348                 ADBG ("BCT")
16349                 If (((Arg0 > 0x64) || (Arg0 < One)))
16350                 {
16351                     Return (Zero)
16352                 }
16353
16354                 Return (0xFFFFFFFF)
16355             }
16356
16357             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
16358             {
16359                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
16360                 {
16361                     If ((Arg2 == 0x02))
16362                     {
16363                         If ((Arg1 == Zero))
16364                         {
16365                             Return (Buffer (One)
16366                             {
16367                                  0x00                                             /* . */
16368                             })
16369                         }
16370                     }
16371                 }
16372
16373                 Return (Zero)
16374             }
16375
16376             Method (_STA, 0, NotSerialized)  // _STA: Status
16377             {
16378                 If ((PMID == 0x05))
16379                 {
16380                     Return (0x1F)
16381                 }
16382
16383                 Return (Zero)
16384             }
16385
16386             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
16387             {
16388                 Return (_SB) /* \_SB_ */
16389             }
16390
16391             Method (PSOC, 0, NotSerialized)
16392             {
16393                 ADBG ("PSOC")
16394                 If ((^^BMDR.AVBL == One))
16395                 {
16396                     Local1 = ^^BMDR.SOC /* \_SB_.I2C5.BMDR.SOC_ */
16397                     Return (Local1)
16398                 }
16399
16400                 Return (Zero)
16401             }
16402
16403             Method (PMAX, 0, NotSerialized)
16404             {
16405                 Return (Zero)
16406             }
16407
16408             Method (VMIN, 0, NotSerialized)
16409             {
16410                 Return (0x0E10)
16411             }
16412
16413             Method (APWR, 0, NotSerialized)
16414             {
16415                 Return (0x00FC3A50)
16416             }
16417
16418             Method (NPWR, 0, NotSerialized)
16419             {
16420                 Local3 = APWR ()
16421                 Return (Zero)
16422             }
16423
16424             Method (PSRC, 0, NotSerialized)
16425             {
16426                 If ((^^BMDR.AVBL == One))
16427                 {
16428                     Local0 = ^^BMDR.CHTP /* \_SB_.I2C5.BMDR.CHTP */
16429                     If ((Local0 == Zero))
16430                     {
16431                         Return (Zero)
16432                     }
16433
16434                     If ((Local0 == One))
16435                     {
16436                         Return (One)
16437                     }
16438
16439                     If ((Local0 == 0x02))
16440                     {
16441                         Return (0x02)
16442                     }
16443
16444                     If ((Local0 == 0x03))
16445                     {
16446                         Return (0x03)
16447                     }
16448
16449                     If ((Local0 == 0x04))
16450                     {
16451                         Return (0x04)
16452                     }
16453
16454                     If ((Local0 == 0x05))
16455                     {
16456                         Return (0x05)
16457                     }
16458
16459                     Return (Zero)
16460                 }
16461
16462                 Return (One)
16463             }
16464
16465             Method (CTYP, 0, NotSerialized)
16466             {
16467                 Return (0x02)
16468             }
16469
16470             Method (ARTG, 0, NotSerialized)
16471             {
16472                 Return (APWR ())
16473             }
16474         }
16475
16476         Device (TIBT)
16477         {
16478             Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
16479             Name (_UID, One)  // _UID: Unique ID
16480             Name (BCCE, One)
16481             Name (OTGS, Zero)
16482             Name (CHPR, One)
16483             Name (FGDV, 0x0A)
16484             Name (BCCC, 0x80)
16485             Name (BCIL, 0x65)
16486             Name (BCVF, 0x93)
16487             Name (BCFV, 0xED)
16488             Name (BCCH, 0x38)
16489             Name (BCST, 0x05)
16490             Name (BCPE, 0x74)
16491             Name (BCCL, 0xFFFFFFFF)
16492             Name (BCLP, 0x1004)
16493             Name (DSCP, 0x1300)
16494             Name (DSVO, 0x0EA6)
16495             Name (BTPC, Zero)
16496             Name (AVCU, Zero)
16497             Name (_DEP, Package (0x01)  // _DEP: Dependencies
16498             {
16499                 I2C5
16500             })
16501             Name (BUFF, Buffer (0x03)
16502             {
16503                  0x00, 0x01, 0x00                                 /* ... */
16504             })
16505             CreateByteField (BUFF, Zero, BYAT)
16506             CreateByteField (BUFF, 0x02, DATA)
16507             Name (BUF1, Buffer (0x06)
16508             {
16509                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00               /* ...... */
16510             })
16511             CreateByteField (BUF1, Zero, BSTA)
16512             CreateByteField (BUF1, One, BLEN)
16513             CreateDWordField (BUF1, 0x02, DAT1)
16514             Name (BUF2, Buffer (0x04)
16515             {
16516                  0x00, 0x00, 0x00, 0x00                           /* .... */
16517             })
16518             CreateByteField (BUF2, Zero, BSTS)
16519             CreateByteField (BUF2, One, SLEN)
16520             CreateWordField (BUF2, 0x02, WRD1)
16521             Name (BIXP, Package (0x14)
16522             {
16523                 Zero, 
16524                 One, 
16525                 0xFFFFFFFF, 
16526                 0xFFFFFFFF, 
16527                 One, 
16528                 0xFFFFFFFF, 
16529                 0x0A, 
16530                 0x04, 
16531                 Zero, 
16532                 0x00017318, 
16533                 0xFFFFFFFF, 
16534                 0xFFFFFFFF, 
16535                 0x88B8, 
16536                 0x61A8, 
16537                 One, 
16538                 One, 
16539                 "SR Real Battery", 
16540                 "123456789", 
16541                 "LION", 
16542                 "Intel SR 1"
16543             })
16544             Name (BSTP, Package (0x04)
16545             {
16546                 Zero, 
16547                 0xFFFFFFFF, 
16548                 0xFFFFFFFF, 
16549                 0xFFFFFFFF
16550             })
16551             Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
16552             {
16553                 ADBG ("BIX")
16554                 If ((^^TIDR.AVBL == One))
16555                 {
16556                     Index (BIXP, 0x03) = ^^TIDR.FCCP /* \_SB_.I2C5.TIDR.FCCP */
16557                     Index (BIXP, 0x08) = ^^TIDR.CYCL /* \_SB_.I2C5.TIDR.CYCL */
16558                     Index (BIXP, 0x02) = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */
16559                     DSCP = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */
16560                 }
16561
16562                 Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.TIBT.DSVO */
16563                 Divide (DSCP, 0x0A, Local0, Local1)
16564                 Index (BIXP, 0x06) = Local1
16565                 Divide (DSCP, 0x14, Local0, Local1)
16566                 Index (BIXP, 0x07) = Local1
16567                 Return (BIXP) /* \_SB_.I2C5.TIBT.BIXP */
16568             }
16569
16570             Method (_BST, 0, NotSerialized)  // _BST: Battery Status
16571             {
16572                 If ((^^TIDR.AVBL == One))
16573                 {
16574                     ADBG ("BST")
16575                     Local0 = ^^TIDR.CHST /* \_SB_.I2C5.TIDR.CHST */
16576                     Local0 &= 0x0F
16577                     If ((Local0 == 0x02))
16578                     {
16579                         Local1 = 0x02
16580                     }
16581
16582                     If ((Local0 == One))
16583                     {
16584                         Local1 = One
16585                     }
16586
16587                     If ((Local0 == 0x08))
16588                     {
16589                         Local1 = Zero
16590                     }
16591
16592                     Index (BSTP, Zero) = Local1
16593                     Index (BSTP, One) = ^^TIDR.CHGC /* \_SB_.I2C5.TIDR.CHGC */
16594                     Index (BSTP, 0x02) = ^^TIDR.RMCP /* \_SB_.I2C5.TIDR.RMCP */
16595                     Index (BSTP, 0x03) = ^^TIDR.VOLT /* \_SB_.I2C5.TIDR.VOLT */
16596                     ^^TIDR.DPCU = BCCC /* \_SB_.I2C5.TIBT.BCCC */
16597                 }
16598
16599                 Return (BSTP) /* \_SB_.I2C5.TIBT.BSTP */
16600             }
16601
16602             Method (_BTP, 1, NotSerialized)  // _BTP: Battery Trip Point
16603             {
16604                 BTPC = Arg0
16605                 ADBG ("BTP")
16606                 ADBG (Arg0)
16607                 If ((^^TIDR.AVBL == One))
16608                 {
16609                     ^^TIDR.BTP = Arg0
16610                 }
16611             }
16612
16613             Method (_BTM, 1, NotSerialized)  // _BTM: Battery Time
16614             {
16615                 ADBG ("BTM")
16616                 If ((Arg0 > 0x7530))
16617                 {
16618                     Return (Zero)
16619                 }
16620
16621                 Return (0xFFFFFFFF)
16622             }
16623
16624             Method (_BCT, 1, NotSerialized)  // _BCT: Battery Charge Time
16625             {
16626                 ADBG ("BCT")
16627                 If (((Arg0 > 0x64) || (Arg0 < One)))
16628                 {
16629                     Return (Zero)
16630                 }
16631
16632                 Return (0xFFFFFFFF)
16633             }
16634
16635             Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
16636             {
16637                 If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */))
16638                 {
16639                     If ((Arg2 == 0x02))
16640                     {
16641                         If ((Arg1 == Zero))
16642                         {
16643                             Return (Buffer (One)
16644                             {
16645                                  0x00                                             /* . */
16646                             })
16647                         }
16648                     }
16649                 }
16650
16651                 Return (Zero)
16652             }
16653
16654             Method (_STA, 0, NotSerialized)  // _STA: Status
16655             {
16656                 If ((PMID == 0x06))
16657                 {
16658                     Return (0x1F)
16659                 }
16660
16661                 Return (Zero)
16662             }
16663
16664             Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
16665             {
16666                 Return (_SB) /* \_SB_ */
16667             }
16668
16669             Method (PSOC, 0, NotSerialized)
16670             {
16671                 ADBG ("PSOC")
16672                 If ((^^TIDR.AVBL == One))
16673                 {
16674                     Local1 = ^^TIDR.SOC /* \_SB_.I2C5.TIDR.SOC_ */
16675                     Return (Local1)
16676                 }
16677
16678                 Return (Zero)
16679             }
16680
16681             Method (PMAX, 0, NotSerialized)
16682             {
16683                 Return (Zero)
16684             }
16685
16686             Method (VMIN, 0, NotSerialized)
16687             {
16688                 Return (0x0DAC)
16689             }
16690
16691             Method (APWR, 0, NotSerialized)
16692             {
16693                 Return (0x0365C040)
16694             }
16695
16696             Method (NPWR, 0, NotSerialized)
16697             {
16698                 Local3 = APWR ()
16699                 Return (Zero)
16700             }
16701
16702             Method (PSRC, 0, NotSerialized)
16703             {
16704                 If ((^^TIDR.AVBL == One))
16705                 {
16706                     Local0 = ^^TIDR.STYP /* \_SB_.I2C5.TIDR.STYP */
16707                     If ((Local0 == Zero))
16708                     {
16709                         Return (Zero)
16710                     }
16711
16712                     If ((Local0 == One))
16713                     {
16714                         Return (One)
16715                     }
16716
16717                     If ((Local0 == 0x02))
16718                     {
16719                         Return (0x02)
16720                     }
16721
16722                     If ((Local0 == 0x03))
16723                     {
16724                         Return (0x03)
16725                     }
16726
16727                     If ((Local0 == 0x04))
16728                     {
16729                         Return (0x04)
16730                     }
16731
16732                     If ((Local0 == 0x05))
16733                     {
16734                         Return (0x05)
16735                     }
16736                 }
16737
16738                 Return (One)
16739             }
16740
16741             Method (CTYP, 0, NotSerialized)
16742             {
16743                 Return (0x02)
16744             }
16745
16746             Method (ARTG, 0, NotSerialized)
16747             {
16748                 Return (0x0365C040)
16749             }
16750         }
16751     }
16752 }
16753