From 6b897daddb4d80a170373f2e420d1d3fac8edb54 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Tue, 3 Feb 2015 11:41:33 +0100 Subject: [PATCH] Initial import Import the original DSDT and a simple Makefile to make the editing process a little easier. --- .gitignore | 4 + Makefile | 19 + dsdt.dsl | 16794 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 16817 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 dsdt.dsl diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9de056b --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*~ +dsdt.aml +instrumented_initrd +kernel/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..92fc672 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +ACPI_DUMP_DATA_PATH ?= ../acpi_dump + +compile: + iasl -tc dsdt.dsl + +# NOTE: The decompiled table will be in $(ACPI_DUMP_DATA_PATH)/dsdt.dsl +decompile: + [ -d $(ACPI_DUMP_DATA_PATH) ] && \ + ( cd $(ACPI_DUMP_DATA_PATH); iasl -e ssdt*.dat -vt -d dsdt.dat; ) + +# Create an instrumented_initrd to be used like explained in the linux kernel +# docs (Documentation/acpi/initrd_table_override.txt). +initrd: compile + [ -d kernel/firmware/acpi ] || mkdir -p kernel/firmware/acpi + cp dsdt.aml kernel/firmware/acpi + find kernel | cpio -H newc --create > instrumented_initrd + +clean: + rm -f *~ *.aml *.hex diff --git a/dsdt.dsl b/dsdt.dsl new file mode 100644 index 0000000..fd80b31 --- /dev/null +++ b/dsdt.dsl @@ -0,0 +1,16794 @@ +/* + * Intel ACPI Component Architecture + * AML/ASL+ Disassembler version 20141107-64 [Nov 17 2014] + * Copyright (c) 2000 - 2014 Intel Corporation + * + * Disassembling to symbolic ASL+ operators + * + * Disassembly of dsdt.dat, Tue Feb 3 11:29:51 2015 + * + * Original Table Header: + * Signature "DSDT" + * Length 0x000103C3 (66499) + * Revision 0x02 + * Checksum 0x04 + * OEM ID "ALASKA" + * OEM Table ID "A M I " + * OEM Revision 0x00000003 (3) + * Compiler ID "AMI " + * Compiler Version 0x0100000D (16777229) + */ +DefinitionBlock ("dsdt.aml", "DSDT", 2, "ALASKA", "A M I ", 0x00000003) +{ + /* + * iASL Warning: There were 2 external control methods found during + * disassembly, but additional ACPI tables to resolve these externals + * were not specified. This resulting disassembler output file may not + * compile because the disassembler did not know how many arguments + * to assign to these methods. To specify the tables needed to resolve + * external control method references, the -e option can be used to + * specify the filenames. Example iASL invocations: + * iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml + * iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml + * iasl -e ssdt*.aml -d dsdt.aml + * + * In addition, the -fe option can be used to specify a file containing + * control method external declarations with the associated method + * argument counts. Each line of the file must be of the form: + * External (, MethodObj, ) + * Invocation: + * iasl -fe refs.txt -d dsdt.aml + * + * The following methods were unresolved and many not compile properly + * because the disassembler had to guess at the number of arguments + * required for each: + */ + External (_SB_.PCI0.LPCB.TPM_.PTS_, MethodObj) // Warning: Unresolved method, guessing 1 arguments + External (NDN3, MethodObj) // Warning: Unresolved method, guessing 1 arguments + + External (_PR_.CPU0._PPC, UnknownObj) + External (CFGD, UnknownObj) + External (DPTF, UnknownObj) + External (PDC0, UnknownObj) + External (PDC1, UnknownObj) + External (PDC2, UnknownObj) + External (PDC3, UnknownObj) + External (TCHG, UnknownObj) + + Name (LAPB, 0xFEE00000) + Name (CPVD, Zero) + Name (SMBS, 0xEFA0) + Name (SMBL, 0x20) + Name (SRCB, 0xFED1C000) + Name (SRCL, 0x4000) + Name (PMBS, 0x0400) + Name (PMLN, 0x80) + Name (SMIP, 0xB2) + Name (GPBS, 0x0500) + Name (GPLN, 0x40) + Name (APCB, 0xFEC00000) + Name (APCL, 0x1000) + Name (RCRB, 0xFED1C000) + Name (RCRL, 0x4000) + Name (HPTB, 0xFED00000) + Name (HPTC, 0xFED1F404) + Name (ASSB, Zero) + Name (AOTB, Zero) + Name (AAXB, Zero) + Name (PEHP, One) + Name (SHPC, Zero) + Name (PEPM, One) + Name (PEER, One) + Name (PECS, One) + Name (ITKE, Zero) + Name (MBEC, 0xFFFF) + Name (PEBS, 0xE0000000) + Name (PELN, 0x10000000) + Name (SRSI, 0xB2) + Name (CSMI, 0x61) + Name (SP3O, 0x2E) + Name (IO4B, 0x0A20) + Name (IO4L, 0x20) + Name (SP1O, 0x4E) + Name (PFDR, 0xFED03034) + Name (PMCB, 0xFED03000) + Name (PCLK, 0xFED03060) + Name (PUNB, 0xFED05000) + Name (IBAS, 0xFED08000) + Name (MCHB, 0xFED14000) + Name (MCHL, 0x4000) + Name (EGPB, 0xFED19000) + Name (EGPL, 0x1000) + Name (DMIB, 0xFED18000) + Name (DMIL, 0x1000) + Name (IFPB, 0xFED14000) + Name (IFPL, 0x1000) + Name (FMBL, One) + Name (FDTP, 0x02) + Name (GCDD, One) + Name (DSTA, 0x0A) + Name (DSLO, 0x02) + Name (DSLC, 0x03) + Name (PITS, 0x10) + Name (SBCS, 0x12) + Name (SALS, 0x13) + Name (LSSS, 0x2A) + Name (PSSS, 0x2B) + Name (SOOT, 0x35) + Name (ESCS, 0x48) + Name (SDGV, 0x1C) + Name (ACPH, 0xDE) + Name (FTBL, 0x04) + OperationRegion (GNVS, SystemMemory, 0x7BEBAA98, 0x0334) + Field (GNVS, AnyAcc, Lock, Preserve) + { + OSYS, 16, + SMIF, 8, + PRM0, 8, + PRM1, 8, + SCIF, 8, + PRM2, 8, + PRM3, 8, + LCKF, 8, + PRM4, 8, + PRM5, 8, + P80D, 32, + LIDS, 8, + PWRS, 8, + DBGS, 8, + THOF, 8, + Offset (0x15), + PSVT, 8, + TC1V, 8, + TC2V, 8, + TSPV, 8, + CRTT, 8, + DTSE, 8, + DTS1, 8, + DTS2, 8, + DTSF, 8, + BNUM, 8, + B0SC, 8, + B1SC, 8, + B2SC, 8, + B0SS, 8, + B1SS, 8, + B2SS, 8, + Offset (0x28), + APIC, 8, + MPEN, 8, + PCP0, 8, + PCP1, 8, + PPCM, 8, + PPMF, 32, + Offset (0x32), + NATP, 8, + CMAP, 8, + CMBP, 8, + LPTP, 8, + FDCP, 8, + CMCP, 8, + CIRP, 8, + W381, 8, + NPCE, 8, + Offset (0x3C), + IGDS, 8, + TLST, 8, + CADL, 8, + PADL, 8, + CSTE, 16, + NSTE, 16, + SSTE, 16, + NDID, 8, + DID1, 32, + DID2, 32, + DID3, 32, + DID4, 32, + DID5, 32, + KSV0, 32, + KSV1, 8, + Offset (0x67), + BLCS, 8, + BRTL, 8, + ALSE, 8, + ALAF, 8, + LLOW, 8, + LHIH, 8, + Offset (0x6E), + EMAE, 8, + EMAP, 16, + EMAL, 16, + Offset (0x74), + MEFE, 8, + DSTS, 8, + Offset (0x78), + TPMP, 8, + TPME, 8, + MORD, 8, + TCGP, 8, + PPRP, 32, + PPRQ, 8, + LPPR, 8, + GTF0, 56, + GTF2, 56, + IDEM, 8, + GTF1, 56, + Offset (0xAA), + ASLB, 32, + IBTT, 8, + IPAT, 8, + ITVF, 8, + ITVM, 8, + IPSC, 8, + IBLC, 8, + IBIA, 8, + ISSC, 8, + I409, 8, + I509, 8, + I609, 8, + I709, 8, + IDMM, 8, + IDMS, 8, + IF1E, 8, + HVCO, 8, + NXD1, 32, + NXD2, 32, + NXD3, 32, + NXD4, 32, + NXD5, 32, + NXD6, 32, + NXD7, 32, + NXD8, 32, + GSMI, 8, + PAVP, 8, + Offset (0xE1), + OSCC, 8, + NEXP, 8, + Offset (0xEB), + DSEN, 8, + ECON, 8, + GPIC, 8, + CTYP, 8, + L01C, 8, + VFN0, 8, + VFN1, 8, + Offset (0x100), + NVGA, 32, + NVHA, 32, + AMDA, 32, + DID6, 32, + DID7, 32, + DID8, 32, + Offset (0x14C), + USEL, 8, + PU1E, 8, + PU2E, 8, + LPE0, 32, + LPE1, 32, + LPE2, 32, + ACST, 8, + BTST, 8, + PFLV, 8, + Offset (0x15F), + AOAC, 8, + XHCI, 8, + PMEN, 8, + LPEE, 8, + ISPA, 32, + ISPD, 8, + PCIB, 32, + PCIT, 32, + D10A, 32, + D10L, 32, + D11A, 32, + D11L, 32, + P10A, 32, + P10L, 32, + P11A, 32, + P11L, 32, + P20A, 32, + P20L, 32, + P21A, 32, + P21L, 32, + U10A, 32, + U10L, 32, + U11A, 32, + U11L, 32, + U20A, 32, + U20L, 32, + U21A, 32, + U21L, 32, + SP0A, 32, + SP0L, 32, + SP1A, 32, + SP1L, 32, + D20A, 32, + D20L, 32, + D21A, 32, + D21L, 32, + I10A, 32, + I10L, 32, + I11A, 32, + I11L, 32, + I20A, 32, + I20L, 32, + I21A, 32, + I21L, 32, + I30A, 32, + I30L, 32, + I31A, 32, + I31L, 32, + I40A, 32, + I40L, 32, + I41A, 32, + I41L, 32, + I50A, 32, + I50L, 32, + I51A, 32, + I51L, 32, + I60A, 32, + I60L, 32, + I61A, 32, + I61L, 32, + I70A, 32, + I70L, 32, + I71A, 32, + I71L, 32, + EM0A, 32, + EM0L, 32, + EM1A, 32, + EM1L, 32, + SI0A, 32, + SI0L, 32, + SI1A, 32, + SI1L, 32, + SD0A, 32, + SD0L, 32, + SD1A, 32, + SD1L, 32, + MH0A, 32, + MH0L, 32, + MH1A, 32, + MH1L, 32, + OSSL, 8, + Offset (0x294), + DPTE, 8, + THM0, 8, + THM1, 8, + THM2, 8, + THM3, 8, + THM4, 8, + CHGR, 8, + DDSP, 8, + DSOC, 8, + DPSR, 8, + DPCT, 32, + DPPT, 32, + DGC0, 32, + DGP0, 32, + DGC1, 32, + DGP1, 32, + DGC2, 32, + DGP2, 32, + DGC3, 32, + DGP3, 32, + DGC4, 32, + DGP4, 32, + DLPM, 8, + DSC0, 32, + DSC1, 32, + DSC2, 32, + DSC3, 32, + DSC4, 32, + DDBG, 8, + LPOE, 32, + LPPS, 32, + LPST, 32, + LPPC, 32, + LPPF, 32, + DPME, 8, + BCSL, 8, + NFCS, 8, + Offset (0x2FC), + TPMA, 32, + TPML, 32, + ITSA, 8, + S0IX, 8, + SDMD, 8, + EMVR, 8, + BMBD, 32, + USBM, 8, + BDID, 8, + FBID, 8, + OTGM, 8, + STEP, 8, + SOCS, 8, + AMTE, 8, + SCPE, 8, + SARE, 8, + PSSD, 8, + EDPV, 8, + DIDX, 32, + PAVB, 32, + PAVL, 32, + PMID, 8, + PMIS, 8, + ADOS, 8, + MIPS, 8, + WIFS, 8, + BTSL, 8, + GPSS, 8, + RCAS, 8, + FCAS, 8, + CHRS, 8, + FUES, 8, + ALSS, 8, + GYRS, 8, + ACCS, 8, + SARS, 8 + } + + Method (ADBG, 1, Serialized) + { + Return (Zero) + } + + Name (WAKP, Package (0x02) + { + Zero, + Zero + }) + Scope (_SB) + { + Device (RTC0) + { + Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0070, // Range Minimum + 0x0070, // Range Maximum + 0x01, // Alignment + 0x08, // Length + ) + }) + } + } + + Scope (_SB) + { + Device (HPET) + { + Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID + Name (_UID, Zero) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xFED00000, // Address Base + 0x00000400, // Address Length + ) + Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) + { + 0x00000008, + } + }) + Return (RBUF) /* \_SB_.HPET._CRS.RBUF */ + } + } + } + + Scope (_SB) + { + Name (PRSA, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {3,4,5,6,10,11,12,14,15} + }) + Alias (PRSA, PRSB) + Alias (PRSA, PRSC) + Alias (PRSA, PRSD) + Alias (PRSA, PRSE) + Alias (PRSA, PRSF) + Alias (PRSA, PRSG) + Alias (PRSA, PRSH) + Name (PR00, Package (0x11) + { + Package (0x04) + { + 0x0002FFFF, + Zero, + LNKA, + Zero + }, + + Package (0x04) + { + 0x0010FFFF, + Zero, + LNKA, + Zero + }, + + Package (0x04) + { + 0x0011FFFF, + Zero, + LNKB, + Zero + }, + + Package (0x04) + { + 0x0012FFFF, + Zero, + LNKC, + Zero + }, + + Package (0x04) + { + 0x0014FFFF, + Zero, + LNKE, + Zero + }, + + Package (0x04) + { + 0x0015FFFF, + Zero, + LNKF, + Zero + }, + + Package (0x04) + { + 0x0016FFFF, + Zero, + LNKG, + Zero + }, + + Package (0x04) + { + 0x0017FFFF, + Zero, + LNKH, + Zero + }, + + Package (0x04) + { + 0x0018FFFF, + Zero, + LNKB, + Zero + }, + + Package (0x04) + { + 0x0018FFFF, + 0x02, + LNKD, + Zero + }, + + Package (0x04) + { + 0x0018FFFF, + 0x03, + LNKC, + Zero + }, + + Package (0x04) + { + 0x0018FFFF, + One, + LNKA, + Zero + }, + + Package (0x04) + { + 0x001DFFFF, + Zero, + LNKH, + Zero + }, + + Package (0x04) + { + 0x001EFFFF, + Zero, + LNKD, + Zero + }, + + Package (0x04) + { + 0x001EFFFF, + 0x03, + LNKA, + Zero + }, + + Package (0x04) + { + 0x001EFFFF, + One, + LNKB, + Zero + }, + + Package (0x04) + { + 0x001EFFFF, + 0x02, + LNKC, + Zero + } + }) + Name (AR00, Package (0x11) + { + Package (0x04) + { + 0x0002FFFF, + Zero, + Zero, + 0x10 + }, + + Package (0x04) + { + 0x0010FFFF, + Zero, + Zero, + 0x10 + }, + + Package (0x04) + { + 0x0011FFFF, + Zero, + Zero, + 0x11 + }, + + Package (0x04) + { + 0x0012FFFF, + Zero, + Zero, + 0x12 + }, + + Package (0x04) + { + 0x0014FFFF, + Zero, + Zero, + 0x14 + }, + + Package (0x04) + { + 0x0015FFFF, + Zero, + Zero, + 0x15 + }, + + Package (0x04) + { + 0x0016FFFF, + Zero, + Zero, + 0x16 + }, + + Package (0x04) + { + 0x0017FFFF, + Zero, + Zero, + 0x17 + }, + + Package (0x04) + { + 0x0018FFFF, + Zero, + Zero, + 0x11 + }, + + Package (0x04) + { + 0x0018FFFF, + 0x02, + Zero, + 0x13 + }, + + Package (0x04) + { + 0x0018FFFF, + 0x03, + Zero, + 0x12 + }, + + Package (0x04) + { + 0x0018FFFF, + One, + Zero, + 0x10 + }, + + Package (0x04) + { + 0x001DFFFF, + Zero, + Zero, + 0x17 + }, + + Package (0x04) + { + 0x001EFFFF, + Zero, + Zero, + 0x13 + }, + + Package (0x04) + { + 0x001EFFFF, + 0x03, + Zero, + 0x10 + }, + + Package (0x04) + { + 0x001EFFFF, + One, + Zero, + 0x11 + }, + + Package (0x04) + { + 0x001EFFFF, + 0x02, + Zero, + 0x12 + } + }) + } + + Scope (_SB) + { + Device (PCI0) + { + Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID + Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID + Name (_ADR, Zero) // _ADR: Address + Method (^BN00, 0, NotSerialized) + { + Return (Zero) + } + + Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number + { + Return (BN00 ()) + } + + Name (_UID, Zero) // _UID: Unique ID + Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table + { + If (PICM) + { + Return (AR00) /* \_SB_.AR00 */ + } + + Return (PR00) /* \_SB_.PR00 */ + } + + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Device (VLVC) + { + Name (_ADR, Zero) // _ADR: Address + OperationRegion (HBUS, PCI_Config, Zero, 0xFF) + Field (HBUS, DWordAcc, NoLock, Preserve) + { + Offset (0xD0), + SMCR, 32, + SMDR, 32, + MCRX, 32 + } + + Method (RMBR, 2, Serialized) + { + Local0 = ((Arg0 << 0x10) | (Arg1 << 0x08)) + SMCR = (0x100000F0 | Local0) + Return (SMDR) /* \_SB_.PCI0.VLVC.SMDR */ + } + + Method (WMBR, 3, Serialized) + { + SMDR = Arg2 + Local0 = ((Arg0 << 0x10) | (Arg1 << 0x08)) + SMCR = (0x110000F0 | Local0) + } + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + If (TPMP) + { + CreateDWordField (RES0, \_SB.PCI0._Y00._LEN, TPML) // _LEN: Length + TPML = 0x1000 + } + + CreateDWordField (RES0, \_SB.PCI0._Y01._MIN, ISMN) // _MIN: Minimum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y01._MAX, ISMX) // _MAX: Maximum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y01._LEN, ISLN) // _LEN: Length + If ((ISPD == One)) + { + ISMN = ISPA /* \ISPA */ + ISMX = (ISMN + ISLN) /* \_SB_.PCI0._CRS.ISLN */ + ISMX -= One + } + Else + { + ISMN = Zero + ISMX = Zero + ISLN = Zero + } + + CreateDWordField (RES0, \_SB.PCI0._Y02._MIN, M1MN) // _MIN: Minimum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y02._MAX, M1MX) // _MAX: Maximum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y02._LEN, M1LN) // _LEN: Length + M1MN = (BMBD & 0xFF000000) + M1MX = PCIT /* \PCIT */ + M1LN = ((M1MX - M1MN) + One) + M1MX -= One + CreateDWordField (RES0, \_SB.PCI0._Y03._MIN, GSMN) // _MIN: Minimum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y03._MAX, GSMX) // _MAX: Maximum Base Address + CreateDWordField (RES0, \_SB.PCI0._Y03._LEN, GSLN) // _LEN: Length + GSMN = ^GFX0.GSTM /* \_SB_.PCI0.GFX0.GSTM */ + GSLN = (^GFX0.GUMA << 0x19) + GSMX = (GSMN + GSLN) /* \_SB_.PCI0._CRS.GSLN */ + GSMX -= One + Return (RES0) /* \_SB_.PCI0.RES0 */ + } + + Name (RES0, ResourceTemplate () + { + WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, + 0x0000, // Granularity + 0x0000, // Range Minimum + 0x00FF, // Range Maximum + 0x0000, // Translation Offset + 0x0100, // Length + ,, ) + IO (Decode16, + 0x0070, // Range Minimum + 0x0077, // Range Maximum + 0x01, // Alignment + 0x08, // Length + ) + IO (Decode16, + 0x0CF8, // Range Minimum + 0x0CF8, // Range Maximum + 0x01, // Alignment + 0x08, // Length + ) + WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, + 0x0000, // Granularity + 0x0000, // Range Minimum + 0x006F, // Range Maximum + 0x0000, // Translation Offset + 0x0070, // Length + ,, , TypeStatic) + WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, + 0x0000, // Granularity + 0x0078, // Range Minimum + 0x0CF7, // Range Maximum + 0x0000, // Translation Offset + 0x0C80, // Length + ,, , TypeStatic) + WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, + 0x0000, // Granularity + 0x0D00, // Range Minimum + 0xFFFF, // Range Maximum + 0x0000, // Translation Offset + 0xF300, // Length + ,, , TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x000A0000, // Range Minimum + 0x000BFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x00020000, // Length + ,, , AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x000C0000, // Range Minimum + 0x000DFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x00020000, // Length + ,, , AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x000E0000, // Range Minimum + 0x000FFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x00020000, // Length + ,, , AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x7A000000, // Range Minimum + 0x7A3FFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x00400000, // Length + ,, _Y01, AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x7C000000, // Range Minimum + 0x7FFFFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x04000000, // Length + ,, _Y03, AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x80000000, // Range Minimum + 0xDFFFFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x60000000, // Length + ,, _Y02, AddressRangeMemory, TypeStatic) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0xFED40000, // Range Minimum + 0xFED40FFF, // Range Maximum + 0x00000000, // Translation Offset + 0x00001000, // Length + ,, _Y00, AddressRangeMemory, TypeStatic) + }) + Name (GUID, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */) + Name (SUPP, Zero) + Name (CTRL, Zero) + Method (_OSC, 4, Serialized) // _OSC: Operating System Capabilities + { + Local0 = Arg3 + CreateDWordField (Local0, Zero, CDW1) + CreateDWordField (Local0, 0x04, CDW2) + CreateDWordField (Local0, 0x08, CDW3) + If (((Arg0 == GUID) && NEXP)) + { + SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ + CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ + If (~(CDW1 & One)) + { + If ((CTRL & 0x02)) + { + NHPG () + } + + If ((CTRL & 0x04)) + { + NPME () + } + } + + If ((Arg1 != One)) + { + CDW1 |= 0x08 + } + + If ((CDW3 != CTRL)) + { + CDW1 |= 0x10 + } + + CDW3 = CTRL /* \_SB_.PCI0.CTRL */ + OSCC = CTRL /* \_SB_.PCI0.CTRL */ + Return (Local0) + } + Else + { + CDW1 |= 0x04 + Return (Local0) + } + } + + Device (GFX0) + { + Name (_ADR, 0x00020000) // _ADR: Address + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C4, + PEPD + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x002C, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C4", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.PCI0.GFX0._CRS.SBUF */ + } + + Name (_S0W, 0x03) // _S0W: S0 Device Wake State + Method (_DOS, 1, NotSerialized) // _DOS: Disable Output Switching + { + DSEN = (Arg0 & 0x07) + } + + Method (_DOD, 0, NotSerialized) // _DOD: Display Output Devices + { + NDID = Zero + If ((DIDL != Zero)) + { + DID1 = SDDL (DIDL) + } + + If ((DDL2 != Zero)) + { + DID2 = SDDL (DDL2) + } + + If ((DDL3 != Zero)) + { + DID3 = SDDL (DDL3) + } + + If ((DDL4 != Zero)) + { + DID4 = SDDL (DDL4) + } + + If ((DDL5 != Zero)) + { + DID5 = SDDL (DDL5) + } + + If ((NDID == One)) + { + Name (TMP1, Package (0x02) + { + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Index (TMP1, Zero) = (0x00010000 | DID1) + If ((SOCS < 0x02)) + { + Index (TMP1, One) = 0x00020F39 + } + Else + { + Index (TMP1, One) = 0x00020F38 + } + + Return (TMP1) /* \_SB_.PCI0.GFX0._DOD.TMP1 */ + } + + If ((NDID == 0x02)) + { + Name (TMP2, Package (0x03) + { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Index (TMP2, Zero) = (0x00010000 | DID1) + Index (TMP2, One) = (0x00010000 | DID2) + If ((SOCS < 0x02)) + { + Index (TMP2, 0x02) = 0x00020F39 + } + Else + { + Index (TMP2, 0x02) = 0x00020F38 + } + + Return (TMP2) /* \_SB_.PCI0.GFX0._DOD.TMP2 */ + } + + If ((NDID == 0x03)) + { + Name (TMP3, Package (0x04) + { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Index (TMP3, Zero) = (0x00010000 | DID1) + Index (TMP3, One) = (0x00010000 | DID2) + Index (TMP3, 0x02) = (0x00010000 | DID3) + If ((SOCS < 0x02)) + { + Index (TMP3, 0x03) = 0x00020F39 + } + Else + { + Index (TMP3, 0x03) = 0x00020F38 + } + + Return (TMP3) /* \_SB_.PCI0.GFX0._DOD.TMP3 */ + } + + If ((NDID == 0x04)) + { + Name (TMP4, Package (0x05) + { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Index (TMP4, Zero) = (0x00010000 | DID1) + Index (TMP4, One) = (0x00010000 | DID2) + Index (TMP4, 0x02) = (0x00010000 | DID3) + Index (TMP4, 0x03) = (0x00010000 | DID4) + If ((SOCS < 0x02)) + { + Index (TMP4, 0x04) = 0x00020F39 + } + Else + { + Index (TMP4, 0x04) = 0x00020F38 + } + + Return (TMP4) /* \_SB_.PCI0.GFX0._DOD.TMP4 */ + } + + If ((NDID > 0x04)) + { + Name (TMP5, Package (0x06) + { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Index (TMP5, Zero) = (0x00010000 | DID1) + Index (TMP5, One) = (0x00010000 | DID2) + Index (TMP5, 0x02) = (0x00010000 | DID3) + Index (TMP5, 0x03) = (0x00010000 | DID4) + Index (TMP5, 0x04) = (0x00010000 | DID5) + If ((SOCS < 0x02)) + { + Index (TMP5, 0x05) = 0x00020F39 + } + Else + { + Index (TMP5, 0x05) = 0x00020F38 + } + + Return (TMP5) /* \_SB_.PCI0.GFX0._DOD.TMP5 */ + } + + If ((SOCS < 0x02)) + { + Return (Package (0x02) + { + 0x0400, + 0x00020F39 + }) + } + Else + { + Return (Package (0x02) + { + 0x0400, + 0x00020F38 + }) + } + } + + Device (DD01) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID1) == 0x0400)) + { + EDPV = One + DIDX = DID1 /* \DID1 */ + Return (One) + } + + If ((DID1 == Zero)) + { + Return (One) + } + Else + { + Return ((0xFFFF & DID1)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + Return (CDDS (DID1)) + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID1)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD02) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID2) == 0x0400)) + { + EDPV = 0x02 + DIDX = DID2 /* \DID2 */ + Return (0x02) + } + + If ((DID2 == Zero)) + { + Return (0x02) + } + Else + { + Return ((0xFFFF & DID2)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + Return (CDDS (DID2)) + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID2)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD03) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID3) == 0x0400)) + { + EDPV = 0x03 + DIDX = DID3 /* \DID3 */ + Return (0x03) + } + + If ((DID3 == Zero)) + { + Return (0x03) + } + Else + { + Return ((0xFFFF & DID3)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID3 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID3)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID3)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD04) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID4) == 0x0400)) + { + EDPV = 0x04 + DIDX = DID4 /* \DID4 */ + Return (0x04) + } + + If ((DID4 == Zero)) + { + Return (0x04) + } + Else + { + Return ((0xFFFF & DID4)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID4 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID4)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID4)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD05) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID5) == 0x0400)) + { + EDPV = 0x05 + DIDX = DID5 /* \DID5 */ + Return (0x05) + } + + If ((DID5 == Zero)) + { + Return (0x05) + } + Else + { + Return ((0xFFFF & DID5)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID5 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID5)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID5)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD06) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID6) == 0x0400)) + { + EDPV = 0x06 + DIDX = DID6 /* \DID6 */ + Return (0x06) + } + + If ((DID6 == Zero)) + { + Return (0x06) + } + Else + { + Return ((0xFFFF & DID6)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID6 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID6)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID6)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD07) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID7) == 0x0400)) + { + EDPV = 0x07 + DIDX = DID7 /* \DID7 */ + Return (0x07) + } + + If ((DID7 == Zero)) + { + Return (0x07) + } + Else + { + Return ((0xFFFF & DID7)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID7 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID7)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID7)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD08) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If (((0x0F00 & DID8) == 0x0400)) + { + EDPV = 0x08 + DIDX = DID8 /* \DID8 */ + Return (0x08) + } + + If ((DID8 == Zero)) + { + Return (0x08) + } + Else + { + Return ((0xFFFF & DID8)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((DID8 == Zero)) + { + Return (0x0B) + } + Else + { + Return (CDDS (DID8)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DID8)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + } + + Device (DD1F) + { + Method (_ADR, 0, Serialized) // _ADR: Address + { + If ((EDPV == Zero)) + { + Return (0x1F) + } + Else + { + Return ((0xFFFF & DIDX)) + } + } + + Method (_DCS, 0, NotSerialized) // _DCS: Display Current Status + { + If ((EDPV == Zero)) + { + Return (Zero) + } + Else + { + Return (CDDS (DIDX)) + } + } + + Method (_DGS, 0, NotSerialized) // _DGS: Display Graphics State + { + Return (NDDS (DIDX)) + } + + Method (_DSS, 1, NotSerialized) // _DSS: Device Set State + { + If (((Arg0 & 0xC0000000) == 0xC0000000)) + { + CSTE = NSTE /* \NSTE */ + } + } + + Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels + { + Return (Package (0x67) + { + 0x50, + 0x32, + Zero, + One, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0A, + 0x0B, + 0x0C, + 0x0D, + 0x0E, + 0x0F, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1A, + 0x1B, + 0x1C, + 0x1D, + 0x1E, + 0x1F, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2A, + 0x2B, + 0x2C, + 0x2D, + 0x2E, + 0x2F, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3A, + 0x3B, + 0x3C, + 0x3D, + 0x3E, + 0x3F, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4A, + 0x4B, + 0x4C, + 0x4D, + 0x4E, + 0x4F, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5A, + 0x5B, + 0x5C, + 0x5D, + 0x5E, + 0x5F, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64 + }) + } + + Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method + { + If (((Arg0 >= Zero) && (Arg0 <= 0x64))) + { + AINT (One, Arg0) + BRTL = Arg0 + } + } + + Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current + { + Return (BRTL) /* \BRTL */ + } + } + + Method (SDDL, 1, NotSerialized) + { + NDID++ + Local0 = (Arg0 & 0x0F0F) + Local1 = (0x80000000 | Local0) + If ((DIDL == Local0)) + { + Return (Local1) + } + + If ((DDL2 == Local0)) + { + Return (Local1) + } + + If ((DDL3 == Local0)) + { + Return (Local1) + } + + If ((DDL4 == Local0)) + { + Return (Local1) + } + + If ((DDL5 == Local0)) + { + Return (Local1) + } + + If ((DDL6 == Local0)) + { + Return (Local1) + } + + If ((DDL7 == Local0)) + { + Return (Local1) + } + + If ((DDL8 == Local0)) + { + Return (Local1) + } + + Return (Zero) + } + + Method (CDDS, 1, NotSerialized) + { + Local0 = (Arg0 & 0x0F0F) + If ((Zero == Local0)) + { + Return (0x1D) + } + + If ((CADL == Local0)) + { + Return (0x1F) + } + + If ((CAL2 == Local0)) + { + Return (0x1F) + } + + If ((CAL3 == Local0)) + { + Return (0x1F) + } + + If ((CAL4 == Local0)) + { + Return (0x1F) + } + + If ((CAL5 == Local0)) + { + Return (0x1F) + } + + If ((CAL6 == Local0)) + { + Return (0x1F) + } + + If ((CAL7 == Local0)) + { + Return (0x1F) + } + + If ((CAL8 == Local0)) + { + Return (0x1F) + } + + Return (0x1D) + } + + Method (NDDS, 1, NotSerialized) + { + Local0 = (Arg0 & 0x0F0F) + If ((Zero == Local0)) + { + Return (Zero) + } + + If ((NADL == Local0)) + { + Return (One) + } + + If ((NDL2 == Local0)) + { + Return (One) + } + + If ((NDL3 == Local0)) + { + Return (One) + } + + If ((NDL4 == Local0)) + { + Return (One) + } + + If ((NDL5 == Local0)) + { + Return (One) + } + + If ((NDL6 == Local0)) + { + Return (One) + } + + If ((NDL7 == Local0)) + { + Return (One) + } + + If ((NDL8 == Local0)) + { + Return (One) + } + + Return (Zero) + } + + OperationRegion (IGDP, PCI_Config, Zero, 0x0100) + Field (IGDP, AnyAcc, NoLock, Preserve) + { + Offset (0x10), + MADR, 32, + Offset (0x50), + , 1, + GIVD, 1, + , 1, + GUMA, 5, + Offset (0x52), + Offset (0x54), + , 4, + GMFN, 1, + Offset (0x58), + Offset (0x5C), + GSTM, 32, + Offset (0xE0), + GSSE, 1, + GSSB, 14, + GSES, 1, + Offset (0xE4), + ASLE, 8, + Offset (0xE8), + Offset (0xFC), + ASLS, 32 + } + + OperationRegion (IGMM, SystemMemory, MADR, 0x3000) + Field (IGMM, AnyAcc, NoLock, Preserve) + { + Offset (0x20C8), + , 4, + DCFE, 4 + } + + OperationRegion (IGDM, SystemMemory, ASLB, 0x2000) + Field (IGDM, AnyAcc, NoLock, Preserve) + { + SIGN, 128, + SIZE, 32, + OVER, 32, + SVER, 256, + VVER, 128, + GVER, 128, + MBOX, 32, + DMOD, 32, + Offset (0x100), + DRDY, 32, + CSTS, 32, + CEVT, 32, + Offset (0x120), + DIDL, 32, + DDL2, 32, + DDL3, 32, + DDL4, 32, + DDL5, 32, + DDL6, 32, + DDL7, 32, + DDL8, 32, + CPDL, 32, + CPL2, 32, + CPL3, 32, + CPL4, 32, + CPL5, 32, + CPL6, 32, + CPL7, 32, + CPL8, 32, + CAD1, 32, + CAL2, 32, + CAL3, 32, + CAL4, 32, + CAL5, 32, + CAL6, 32, + CAL7, 32, + CAL8, 32, + NADL, 32, + NDL2, 32, + NDL3, 32, + NDL4, 32, + NDL5, 32, + NDL6, 32, + NDL7, 32, + NDL8, 32, + ASLP, 32, + TIDX, 32, + CHPD, 32, + CLID, 32, + CDCK, 32, + SXSW, 32, + EVTS, 32, + CNOT, 32, + NRDY, 32, + Offset (0x200), + SCIE, 1, + GEFC, 4, + GXFC, 3, + GESF, 8, + Offset (0x204), + PARM, 32, + DSLP, 32, + Offset (0x300), + ARDY, 32, + ASLC, 32, + TCHE, 32, + ALSI, 32, + BCLP, 32, + PFIT, 32, + CBLV, 32, + BCLM, 320, + CPFM, 32, + EPFM, 32, + PLUT, 592, + PFMB, 32, + CCDV, 32, + PCFT, 32, + Offset (0x400), + GVD1, 49152, + PHED, 32, + BDDC, 2048 + } + + Name (DBTB, Package (0x15) + { + Zero, + 0x07, + 0x38, + 0x01C0, + 0x0E00, + 0x3F, + 0x01C7, + 0x0E07, + 0x01F8, + 0x0E38, + 0x0FC0, + Zero, + Zero, + Zero, + Zero, + Zero, + 0x7000, + 0x7007, + 0x7038, + 0x71C0, + 0x7E00 + }) + Name (CDCT, Package (0x06) + { + Package (0x01) + { + 0xA0 + }, + + Package (0x01) + { + 0xC8 + }, + + Package (0x01) + { + 0x010B + }, + + Package (0x01) + { + 0x0140 + }, + + Package (0x01) + { + 0x0164 + }, + + Package (0x01) + { + 0x0190 + } + }) + Name (SUCC, One) + Name (NVLD, 0x02) + Name (CRIT, 0x04) + Name (NCRT, 0x06) + Method (GSCI, 0, Serialized) + { + Method (GBDA, 0, Serialized) + { + If ((GESF == Zero)) + { + PARM = 0x0279 + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == One)) + { + PARM = 0x0240 + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x04)) + { + PARM &= 0xEFFF0000 + PARM &= (DerefOf (Index (DBTB, IBTT)) << 0x10) + PARM |= IBTT /* \_SB_.PCI0.GFX0.PARM */ + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x05)) + { + PARM = IPSC /* \IPSC */ + PARM |= (IPAT << 0x08) + PARM += 0x0100 + PARM |= (LIDS << 0x10) + PARM += 0x00010000 + PARM |= (IBLC << 0x12) + PARM |= (IBIA << 0x14) + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x06)) + { + PARM = ITVF /* \ITVF */ + PARM |= (ITVM << 0x04) + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x07)) + { + PARM = GIVD /* \_SB_.PCI0.GFX0.GIVD */ + PARM ^= One + PARM |= (GMFN << One) + PARM |= 0x1800 + PARM |= (IDMS << 0x11) + PARM |= (DerefOf (Index (CDCT, DCFE)) << 0x15) /* \_SB_.PCI0.GFX0.PARM */ + GESF = One + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x0A)) + { + PARM = Zero + If (ISSC) + { + PARM |= 0x03 + } + + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + GESF = Zero + Return (CRIT) /* \_SB_.PCI0.GFX0.CRIT */ + } + + Method (SBCB, 0, Serialized) + { + If ((GESF == Zero)) + { + PARM = Zero + If ((PFLV == FMBL)) + { + PARM = 0x000F87FD + } + + If ((PFLV == FDTP)) + { + PARM = 0x000F87BD + } + + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == One)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x03)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x04)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x05)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x06)) + { + ITVF = (PARM & 0x0F) + ITVM = ((PARM & 0xF0) >> 0x04) + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x07)) + { + If ((PARM == Zero)) + { + Local0 = CLID /* \_SB_.PCI0.GFX0.CLID */ + If ((0x80000000 & Local0)) + { + CLID &= 0x0F + GLID (CLID) + } + } + + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x08)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x09)) + { + IBTT = (PARM & 0xFF) + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x0A)) + { + IPSC = (PARM & 0xFF) + If (((PARM >> 0x08) & 0xFF)) + { + IPAT = ((PARM >> 0x08) & 0xFF) + IPAT-- + } + + IBLC = ((PARM >> 0x12) & 0x03) + IBIA = ((PARM >> 0x14) & 0x07) + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x0B)) + { + IF1E = ((PARM >> One) & One) + IDMS = ((PARM >> 0x11) & 0x0F) + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x10)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x11)) + { + PARM = (LIDS << 0x08) + PARM += 0x0100 + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x12)) + { + If ((PARM & One)) + { + If (((PARM >> One) == One)) + { + ISSC = One + } + Else + { + GESF = Zero + Return (CRIT) /* \_SB_.PCI0.GFX0.CRIT */ + } + } + Else + { + ISSC = Zero + } + + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x13)) + { + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GESF == 0x14)) + { + PAVP = (PARM & 0x0F) + GESF = Zero + PARM = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + GESF = Zero + Return (SUCC) /* \_SB_.PCI0.GFX0.SUCC */ + } + + If ((GEFC == 0x04)) + { + GXFC = GBDA () + } + + If ((GEFC == 0x06)) + { + GXFC = SBCB () + } + + GEFC = Zero + SCIS = One + GSSE = Zero + SCIE = Zero + Return (Zero) + } + + Method (PDRD, 0, NotSerialized) + { + If (!DRDY) + { + Sleep (ASLP) + } + + Return (!DRDY) + } + + Method (PSTS, 0, NotSerialized) + { + If ((CSTS > 0x02)) + { + Sleep (ASLP) + } + + Return ((CSTS == 0x03)) + } + + Method (GNOT, 2, NotSerialized) + { + If (PDRD ()) + { + Return (One) + } + + CEVT = Arg0 + CSTS = 0x03 + If (((CHPD == Zero) && (Arg1 == Zero))) + { + If (((OSYS > 0x07D0) || (OSYS < 0x07D6))) + { + Notify (PCI0, Arg1) + } + Else + { + Notify (GFX0, Arg1) + } + } + + Notify (GFX0, 0x80) // Status Change + Return (Zero) + } + + Method (GHDS, 1, NotSerialized) + { + TIDX = Arg0 + Return (GNOT (One, Zero)) + } + + Method (GLID, 1, NotSerialized) + { + CLID = Arg0 + Return (GNOT (0x02, Zero)) + } + + Method (GDCK, 1, NotSerialized) + { + CDCK = Arg0 + Return (GNOT (0x04, Zero)) + } + + Method (PARD, 0, NotSerialized) + { + If (!ARDY) + { + Sleep (ASLP) + } + + Return (!ARDY) + } + + Method (AINT, 2, NotSerialized) + { + If (!(TCHE & (One << Arg0))) + { + Return (One) + } + + If (PARD ()) + { + Return (One) + } + + If ((Arg0 == 0x02)) + { + If (CPFM) + { + Local0 = (CPFM & 0x0F) + Local1 = (EPFM & 0x0F) + If ((Local0 == One)) + { + If ((Local1 & 0x06)) + { + PFIT = 0x06 + } + Else + { + If ((Local1 & 0x08)) + { + PFIT = 0x08 + } + Else + { + PFIT = One + } + } + } + + If ((Local0 == 0x06)) + { + If ((Local1 & 0x08)) + { + PFIT = 0x08 + } + Else + { + If ((Local1 & One)) + { + PFIT = One + } + Else + { + PFIT = 0x06 + } + } + } + + If ((Local0 == 0x08)) + { + If ((Local1 & One)) + { + PFIT = One + } + Else + { + If ((Local1 & 0x06)) + { + PFIT = 0x06 + } + Else + { + PFIT = 0x08 + } + } + } + } + Else + { + PFIT ^= 0x07 + } + + PFIT |= 0x80000000 + ASLC = 0x04 + } + Else + { + If ((Arg0 == One)) + { + BCLP = ((Arg1 * 0xFF) / 0x64) + BCLP |= 0x80000000 + ASLC = 0x02 + } + Else + { + If ((Arg0 == Zero)) + { + ALSI = Arg1 + ASLC = One + } + Else + { + Return (One) + } + } + } + + ASLE = One + Return (Zero) + } + + Method (SCIP, 0, NotSerialized) + { + If ((OVER != Zero)) + { + Return (!GSMI) + } + + Return (Zero) + } + + Device (ISP0) + { + Name (_ADR, 0x0F38) // _ADR: Address + Name (_DDN, "VLV2 ISP - 80860F38") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (Zero) + } + + If ((SOCS >= 0x02)) + { + If ((ISPD == One)) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + Else + { + _ADR = 0x0F39 + _DDN = "VLV2 ISP - 80860F39" + If ((ISPD == One)) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Name (SBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00400000, // Address Length + ) + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (SBUF) /* \_SB_.PCI0.GFX0.ISP0.SBUF */ + } + + Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings + { + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == One)) + { + Return (One) + } + Else + { + If ((Arg0 == 0x02)) + { + Return (0x02) + } + Else + { + Return (0x0F) + } + } + } + } + } + + Device (LPCB) + { + Name (_ADR, 0x001F0000) // _ADR: Address + Scope (\_SB) + { + OperationRegion (ILBR, SystemMemory, IBAS, 0x8C) + Field (ILBR, AnyAcc, NoLock, Preserve) + { + Offset (0x08), + PARC, 8, + PBRC, 8, + PCRC, 8, + PDRC, 8, + PERC, 8, + PFRC, 8, + PGRC, 8, + PHRC, 8, + Offset (0x88), + , 3, + UI3E, 1, + UI4E, 1 + } + + Device (LNKA) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PARC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSA) /* \_SB_.PRSA */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLA, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLA, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PARC & 0x0F)) + Return (RTLA) /* \_SB_.LNKA._CRS.RTLA */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PARC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PARC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKB) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x02) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PBRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSB) /* \_SB_.PRSB */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLB, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLB, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PBRC & 0x0F)) + Return (RTLB) /* \_SB_.LNKB._CRS.RTLB */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PBRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PBRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKC) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x03) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PCRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSC) /* \_SB_.PRSC */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLC, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLC, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PCRC & 0x0F)) + Return (RTLC) /* \_SB_.LNKC._CRS.RTLC */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PCRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PCRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKD) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x04) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PDRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSD) /* \_SB_.PRSD */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLD, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLD, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PDRC & 0x0F)) + Return (RTLD) /* \_SB_.LNKD._CRS.RTLD */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PDRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PDRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKE) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x05) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PERC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSE) /* \_SB_.PRSE */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLE, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLE, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PERC & 0x0F)) + Return (RTLE) /* \_SB_.LNKE._CRS.RTLE */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PERC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PERC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKF) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x06) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PFRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSF) /* \_SB_.PRSF */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLF, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLF, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PFRC & 0x0F)) + Return (RTLF) /* \_SB_.LNKF._CRS.RTLF */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PFRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PFRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKG) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x07) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PGRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSG) /* \_SB_.PRSG */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLG, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLG, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PGRC & 0x0F)) + Return (RTLG) /* \_SB_.LNKG._CRS.RTLG */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PGRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PGRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + + Device (LNKH) + { + Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID + Name (_UID, 0x08) // _UID: Unique ID + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + PHRC |= 0x80 + } + + Method (_PRS, 0, Serialized) // _PRS: Possible Resource Settings + { + Return (PRSH) /* \_SB_.PRSH */ + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RTLH, ResourceTemplate () + { + IRQ (Level, ActiveLow, Shared, ) + {} + }) + CreateWordField (RTLH, One, IRQ0) + IRQ0 = Zero + IRQ0 = (One << (PHRC & 0x0F)) + Return (RTLH) /* \_SB_.LNKH._CRS.RTLH */ + } + + Method (_SRS, 1, Serialized) // _SRS: Set Resource Settings + { + CreateWordField (Arg0, One, IRQ0) + FindSetRightBit (IRQ0, Local0) + Local0-- + PHRC = Local0 + } + + Method (_STA, 0, Serialized) // _STA: Status + { + If ((PHRC & 0x80)) + { + Return (0x09) + } + Else + { + Return (0x0B) + } + } + } + } + + OperationRegion (LPC0, PCI_Config, Zero, 0xC0) + Field (LPC0, AnyAcc, NoLock, Preserve) + { + Offset (0x08), + SRID, 8, + Offset (0x80), + C1EN, 1, + Offset (0x84) + } + + Device (FWHD) + { + Name (_HID, EisaId ("INT0800") /* Intel 82802 Firmware Hub Device */) // _HID: Hardware ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + Memory32Fixed (ReadOnly, + 0xFF000000, // Address Base + 0x01000000, // Address Length + ) + }) + } + + Device (IPIC) + { + Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0020, // Range Minimum + 0x0020, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0024, // Range Minimum + 0x0024, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0028, // Range Minimum + 0x0028, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x002C, // Range Minimum + 0x002C, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0030, // Range Minimum + 0x0030, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0034, // Range Minimum + 0x0034, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0038, // Range Minimum + 0x0038, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x003C, // Range Minimum + 0x003C, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00A0, // Range Minimum + 0x00A0, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00A4, // Range Minimum + 0x00A4, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00A8, // Range Minimum + 0x00A8, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00AC, // Range Minimum + 0x00AC, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00B0, // Range Minimum + 0x00B0, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00B4, // Range Minimum + 0x00B4, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00B8, // Range Minimum + 0x00B8, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x00BC, // Range Minimum + 0x00BC, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x04D0, // Range Minimum + 0x04D0, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IRQNoFlags () + {2} + }) + } + + Device (LDRC) + { + Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID + Name (_UID, 0x02) // _UID: Unique ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x002E, // Range Minimum + 0x002E, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x004E, // Range Minimum + 0x004E, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0061, // Range Minimum + 0x0061, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0063, // Range Minimum + 0x0063, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0065, // Range Minimum + 0x0065, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0067, // Range Minimum + 0x0067, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0070, // Range Minimum + 0x0070, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0080, // Range Minimum + 0x0080, // Range Maximum + 0x01, // Alignment + 0x10, // Length + ) + IO (Decode16, + 0x0092, // Range Minimum + 0x0092, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x00B2, // Range Minimum + 0x00B2, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + IO (Decode16, + 0x0680, // Range Minimum + 0x0680, // Range Maximum + 0x01, // Alignment + 0x20, // Length + ) + IO (Decode16, + 0x0400, // Range Minimum + 0x0400, // Range Maximum + 0x01, // Alignment + 0x80, // Length + ) + IO (Decode16, + 0x0500, // Range Minimum + 0x0500, // Range Maximum + 0x01, // Alignment + 0xFF, // Length + ) + IO (Decode16, + 0x0600, // Range Minimum + 0x0600, // Range Maximum + 0x01, // Alignment + 0x20, // Length + ) + IO (Decode16, + 0x164E, // Range Minimum + 0x164E, // Range Maximum + 0x01, // Alignment + 0x02, // Length + ) + }) + } + + Device (TIMR) + { + Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0040, // Range Minimum + 0x0040, // Range Maximum + 0x01, // Alignment + 0x04, // Length + ) + IO (Decode16, + 0x0050, // Range Minimum + 0x0050, // Range Maximum + 0x10, // Alignment + 0x04, // Length + ) + IRQNoFlags () + {0} + }) + } + + Device (IUR3) + { + Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, Serialized) // _STA: Status + { + If ((USEL == Zero)) + { + If ((PU1E == One)) + { + UI3E = One + UI4E = One + C1EN = One + Return (0x0F) + } + } + + Return (Zero) + } + + Method (_DIS, 0, Serialized) // _DIS: Disable Device + { + UI3E = Zero + UI4E = Zero + C1EN = Zero + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (BUF0, ResourceTemplate () + { + IO (Decode16, + 0x03F8, // Range Minimum + 0x03F8, // Range Maximum + 0x01, // Alignment + 0x08, // Length + ) + IRQNoFlags () + {3} + }) + Name (BUF1, ResourceTemplate () + { + IO (Decode16, + 0x03F8, // Range Minimum + 0x03F8, // Range Maximum + 0x01, // Alignment + 0x08, // Length + ) + IRQNoFlags () + {4} + }) + If ((SRID <= 0x04)) + { + Return (BUF0) /* \_SB_.PCI0.LPCB.IUR3._CRS.BUF0 */ + } + Else + { + Return (BUF1) /* \_SB_.PCI0.LPCB.IUR3._CRS.BUF1 */ + } + } + } + + OperationRegion (PKBS, SystemIO, 0x60, 0x05) + Field (PKBS, ByteAcc, Lock, Preserve) + { + PKBD, 8, + Offset (0x02), + Offset (0x03), + Offset (0x04), + PKBC, 8 + } + + Device (PS2K) + { + Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((PKBD == 0xFF) & (PKBC == 0xFF))) + { + Return (Zero) + } + + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0060, // Range Minimum + 0x0060, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0064, // Range Minimum + 0x0064, // Range Maximum + 0x01, // Alignment + 0x01, // Length + ) + IRQ (Edge, ActiveHigh, Exclusive, ) + {1} + }) + Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings + { + StartDependentFn (0x00, 0x00) + { + FixedIO ( + 0x0060, // Address + 0x01, // Length + ) + FixedIO ( + 0x0064, // Address + 0x01, // Length + ) + IRQNoFlags () + {1} + } + EndDependentFn () + }) + } + + Device (PS2M) + { + Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((PKBD == 0xFF) & (PKBC == 0xFF))) + { + Return (Zero) + } + + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IRQ (Edge, ActiveHigh, Exclusive, ) + {12} + }) + Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings + { + StartDependentFn (0x00, 0x00) + { + IRQNoFlags () + {12} + } + EndDependentFn () + }) + } + } + + Device (D004) + { + Name (_ADR, 0x00100000) // _ADR: Address + } + + Device (D005) + { + Name (_ADR, 0x00110000) // _ADR: Address + } + + Device (D006) + { + Name (_ADR, 0x00120000) // _ADR: Address + } + + Device (XHC1) + { + Name (_ADR, 0x00140000) // _ADR: Address + } + + Device (D008) + { + Name (_ADR, 0x00150000) // _ADR: Address + } + + Device (D009) + { + Name (_ADR, 0x00160000) // _ADR: Address + } + + Device (D00A) + { + Name (_ADR, 0x00170000) // _ADR: Address + } + + Device (D00B) + { + Name (_ADR, 0x00180000) // _ADR: Address + } + + Device (D00C) + { + Name (_ADR, 0x00180001) // _ADR: Address + } + + Device (D00D) + { + Name (_ADR, 0x00180002) // _ADR: Address + } + + Device (D00E) + { + Name (_ADR, 0x00180003) // _ADR: Address + } + + Device (EHC1) + { + Name (_ADR, 0x001D0000) // _ADR: Address + } + + Device (D010) + { + Name (_ADR, 0x001E0000) // _ADR: Address + } + + Device (D011) + { + Name (_ADR, 0x001E0001) // _ADR: Address + } + + Device (D012) + { + Name (_ADR, 0x001E0002) // _ADR: Address + } + + Device (D013) + { + Name (_ADR, 0x001E0003) // _ADR: Address + } + } + } + + Scope (_GPE) + { + } + + Name (_S0, Package (0x04) // _S0_: S0 System State + { + Zero, + Zero, + Zero, + Zero + }) + Name (_S5, Package (0x04) // _S5_: S5 System State + { + 0x07, + Zero, + Zero, + Zero + }) + Method (_PTS, 1, NotSerialized) // _PTS: Prepare To Sleep + { + If (Arg0) + { + PPTS (Arg0) + } + } + + Method (_WAK, 1, NotSerialized) // _WAK: Wake + { + PWAK (Arg0) + Return (WAKP) /* \WAKP */ + } + + Scope (\) + { + OperationRegion (PMIO, SystemIO, PMBS, 0x46) + Field (PMIO, ByteAcc, NoLock, Preserve) + { + Offset (0x01), + PWBS, 1, + Offset (0x20), + , 13, + PMEB, 1, + Offset (0x42), + , 1, + GPEC, 1 + } + + Field (PMIO, ByteAcc, NoLock, WriteAsZeros) + { + Offset (0x20), + , 4, + PSCI, 1, + SCIS, 1 + } + + OperationRegion (PMCR, SystemMemory, PFDR, 0x04) + Field (PMCR, DWordAcc, Lock, Preserve) + { + L10D, 1, + L11D, 1, + L12D, 1, + L13D, 1, + L14D, 1, + L15D, 1, + Offset (0x01), + SD1D, 1, + SD2D, 1, + SD3D, 1, + HSID, 1, + , 1, + LPED, 1, + OTGD, 1, + Offset (0x02), + , 1, + , 1, + , 1, + , 1, + RP1D, 1, + RP2D, 1, + RP3D, 1, + RP4D, 1, + L20D, 1, + L21D, 1, + L22D, 1, + L23D, 1, + L24D, 1, + L25D, 1, + L26D, 1, + L27D, 1 + } + + OperationRegion (CLKC, SystemMemory, PCLK, 0x18) + Field (CLKC, DWordAcc, Lock, Preserve) + { + CKC0, 2, + CKF0, 1, + Offset (0x04), + CKC1, 2, + CKF1, 1, + Offset (0x08), + CKC2, 2, + CKF2, 1, + Offset (0x0C), + CKC3, 2, + CKF3, 1, + Offset (0x10), + CKC4, 2, + CKF4, 1, + Offset (0x14), + CKC5, 2, + CKF5, 1, + Offset (0x18) + } + } + + Scope (_SB) + { + Device (LPEA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F28" /* Intel SST Audio DSP */) // _HID: Hardware ID + Name (_CID, "80860F28" /* Intel SST Audio DSP */) // _CID: Compatible ID + Name (_DDN, "Intel(R) Low Power Audio Controller - 80860F28") // _DDN: DOS Device Name + Name (_SUB, "80867270") // _SUB: Subsystem ID + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + ^I2C2.RTEK + }) + Name (WDEP, Package (0x01) + { + ^I2C2.RTEK + }) + Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 + { + PLPE + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((LPEE == 0x02) && (LPED == Zero))) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x12345678, // Address Base + 0x00200000, // Address Length + _Y04) + Memory32Fixed (ReadWrite, + 0xFE830000, // Address Base + 0x00001000, // Address Length + _Y05) + Memory32Fixed (ReadWrite, + 0x55AA55AA, // Address Base + 0x00200000, // Address Length + _Y06) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000001D, + } + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000018, + } + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000019, + } + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000001A, + } + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000001B, + } + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000001C, + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.LPEA._Y04._BAS, B0BA) // _BAS: Base Address + B0BA = LPE0 /* \LPE0 */ + CreateDWordField (RBUF, \_SB.LPEA._Y05._BAS, B1BA) // _BAS: Base Address + B1BA = LPE1 /* \LPE1 */ + CreateDWordField (RBUF, \_SB.LPEA._Y06._BAS, B2BA) // _BAS: Base Address + B2BA = LPE2 /* \LPE2 */ + Return (RBUF) /* \_SB_.LPEA.RBUF */ + } + + OperationRegion (KEYS, SystemMemory, LPE1, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + PowerResource (PLPE, 0x05, 0x0000) + { + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (One) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.LPEA.PSAT */ + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.LPEA.PSAT */ + } + } + + Device (ADMA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "ADMA0F28" /* Intel Audio DMA */) // _HID: Hardware ID + Name (_CID, "ADMA0F28" /* Intel Audio DMA */) // _CID: Compatible ID + Name (_DDN, "Intel(R) Audio DMA0 - DMA0F28") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xDF498000, // Address Base + 0x00001000, // Address Length + _Y07) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000018, + } + }) + CreateDWordField (RBUF, \_SB.LPEA.ADMA._CRS._Y07._BAS, B0BA) // _BAS: Base Address + B0BA = LPE0 /* \LPE0 */ + Return (RBUF) /* \_SB_.LPEA.ADMA._CRS.RBUF */ + } + } + + Device (SSP1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "SSPX0000" /* Intel SSP Device */) // _HID: Hardware ID + Name (_CID, "SSPX0000" /* Intel SSP Device */) // _CID: Compatible ID + Name (_DDN, "Intel(R) SSP Device") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xDF4A1000, // Address Base + 0x00001000, // Address Length + _Y08) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000001B, + } + }) + CreateDWordField (RBUF, \_SB.LPEA.SSP1._CRS._Y08._BAS, B0BA) // _BAS: Base Address + B0BA = (LPE0 + 0x000A1000) + Return (RBUF) /* \_SB_.LPEA.SSP1._CRS.RBUF */ + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("886a3f26-600c-4401-b7b1-01e9c2e7e77e"))) + { + Return ("BLUET") + } + + If ((Arg0 == ToUUID ("30d3f83e-2ee1-4bf0-86e9-f69ded2887ee"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("208b1400-f7c8-4325-ab32-53cd79b7d0a6"))) + { + Return (0xFF2A1000) + } + + If ((Arg0 == ToUUID ("e6e37c60-e78b-4fbd-bd26-5bd3667a6c9a"))) + { + While (One) + { + _T_0 = ToInteger (Arg1) + If ((_T_0 == 0x08)) + { + Return (Buffer (0x05) + { + 0x00, 0x00, 0x00, 0x00, 0x01 /* ..... */ + }) + } + Else + { + If ((_T_0 == 0x10)) + { + Return (Buffer (0x05) + { + 0x06, 0x02, 0x00, 0x0E, 0x10 /* ..... */ + }) + } + Else + { + If ((_T_0 == 0x30)) + { + Return (Buffer (0x05) + { + 0x06, 0x02, 0x00, 0x0E, 0x10 /* ..... */ + }) + } + } + } + + Break + } + + Return ("ERR-T") + } + + Return ("ERR-M") + } + } + } + + Device (TIMC) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "TIMC0F28") // _HID: Hardware ID + Name (_CID, "TIMC0F28") // _CID: Compatible ID + Name (_DDN, "Intel(R) Audio Machine Driver - TIMC0F28") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + GPO2, + ^I2C2.TTLV + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0004 + } + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001B + } + }) + Return (RBUF) /* \_SB_.TIMC._CRS.RBUF */ + } + } + + Device (AMCR) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "AMCR0F28" /* Intel Audio Machine Driver */) // _HID: Hardware ID + Name (_CID, "AMCR0F28" /* Intel Audio Machine Driver */) // _CID: Compatible ID + Name (_DDN, "Intel(R) Audio Machine Driver - AMCR0F28") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + GPO2, + ^I2C2.RTEK + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0004 + } + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001B + } + }) + Return (RBUF) /* \_SB_.AMCR._CRS.RBUF */ + } + } + + Device (HAD) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "HAD0F28" /* Intel HDMI Audio Driver */) // _HID: Hardware ID + Name (_CID, "HAD0F28" /* Intel HDMI Audio Driver */) // _CID: Compatible ID + Name (_DDN, "Intel(R) HDMI Audio Driver - HAD") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00065800, // Address Base + 0x00000140, // Address Length + ) + }) + Return (RBUF) /* \_SB_.HAD_._CRS.RBUF */ + } + } + } + + Scope (_SB.PCI0) + { + Scope (XHC1) + { + Name (_DDN, "Baytrail XHCI controller (CCG core/Host only)") // _DDN: DOS Device Name + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (_STR, Unicode ("Baytrail XHCI controller (CCG core/Host only)")) // _STR: Description String + Name (_S0W, 0x03) // _S0W: S0 Device Wake State + Name (MSET, Zero) + Name (DDST, Zero) + OperationRegion (PCSL, SystemMemory, 0xE00A0074, One) + Field (PCSL, ByteAcc, NoLock, WriteAsZeros) + { + PMPS, 2 + } + + OperationRegion (PCSH, SystemMemory, 0xE00A0075, One) + Field (PCSH, ByteAcc, NoLock, Preserve) + { + PMCH, 8 + } + + OperationRegion (XMSE, SystemMemory, 0xE00A0000, 0x0100) + Field (XMSE, AnyAcc, NoLock, Preserve) + { + Offset (0x04), + , 1, + CMSE, 1, + Offset (0x10), + BAR0, 32, + Offset (0x74), + PMCS, 16, + Offset (0xB0), + , 13, + PHY2, 2, + , 13, + USHP, 1, + , 1, + SCFG, 1 + } + + Method (PWOF, 0, Serialized) + { + SCFG = One + } + + Method (PWON, 0, Serialized) + { + SCFG = Zero + } + + OperationRegion (XPRT, SystemMemory, (PEBS + 0x000A0000), 0x0100) + Field (XPRT, AnyAcc, NoLock, Preserve) + { + DVID, 16, + Offset (0x74), + D0D3, 2, + Offset (0x75), + PMEE, 1, + , 6, + PMES, 1, + Offset (0xB0), + , 13, + MB13, 1, + MB14, 1, + Offset (0xB4), + Offset (0xD0), + PR2, 32, + PR2M, 32, + PR3, 32, + PR3M, 32 + } + + OperationRegion (XHCP, SystemMemory, (PEBS + 0x000A0000), 0x0100) + Field (XHCP, AnyAcc, Lock, Preserve) + { + Offset (0x04), + PDBM, 16, + Offset (0x10), + MEMB, 32 + } + + Name (PCHS, Zero) + Name (SRMB, 0x90800000) + Method (_PS0, 0, Serialized) // _PS0: Power State 0 + { + ADBG ("XHC D0") + P8XH (Zero, 0xA0) + If ((DVID == 0xFFFF)) + { + Return (Zero) + } + + SRMB = (MEMB & 0xFFFFFFF0) + Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */ + Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */ + PDBM &= 0xFFFFFFFFFFFFFFF9 + MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */ + PDBM |= 0x02 + OperationRegion (MCA1, SystemMemory, SRMB, 0x9000) + Field (MCA1, DWordAcc, Lock, Preserve) + { + Offset (0x510), + R510, 32, + Offset (0x520), + R520, 32, + Offset (0x530), + R530, 32, + Offset (0x540), + R540, 32, + Offset (0x8058), + Offset (0x8059), + CDES, 1, + Offset (0x805A), + STSP, 1, + , 3, + CFEC, 1, + Offset (0x8060), + , 25, + EPRE, 1, + Offset (0x8094), + , 14, + CMMF, 1, + , 6, + ESSP, 1, + , 1, + DAPA, 1, + Offset (0x80E0), + , 15, + AX15, 1, + Offset (0x80FC), + , 25, + PPL1, 1, + Offset (0x8110), + , 1, + CRNC, 1, + Offset (0x8111), + EPTD, 1, + , 2, + HTPP, 1, + , 8, + TRMC, 1, + Offset (0x8140), + MIDS, 12, + AWPC, 12, + EIHR, 8, + , 6, + SSII, 1, + SSIO, 1, + HSII, 1, + Offset (0x8154), + , 31, + CLK2, 1, + Offset (0x8164), + ETBC, 1, + ERBC, 1, + ESAI, 1, + ETMA, 1, + EOAI, 1, + EIAI, 1, + TTEA, 1, + ECMA, 1, + Offset (0x816C), + , 2, + CLK0, 1, + , 11, + CLK1, 1, + Offset (0x8188), + Offset (0x818B), + FIDD, 1, + , 1, + FTSS, 1 + } + + Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */ + If ((Local3 == 0x03)) + { + D0D3 = Zero + Sleep (0x0A) + } + + If ((PCHS == 0x02)) + { + MB13 = Zero + MB14 = Zero + CLK0 = Zero + CLK1 = Zero + } + + CLK2 = One + CDES = One + STSP = One + CFEC = Zero + EPRE = One + DAPA = One + ESSP = One + CMMF = One + PPL1 = One + CRNC = Zero + EPTD = Zero + HTPP = One + TRMC = One + MIDS = 0x3C + AWPC = 0x0F + EIHR = 0xFF + SSII = One + SSIO = One + HSII = One + ERBC = One + ETBC = One + ESAI = One + ETMA = One + EOAI = One + EIAI = One + TTEA = One + ECMA = One + FIDD = One + FTSS = One + USHP = Zero + If ((PCHS == 0x02)) + { + While (((((R510 & 0x03FB) == 0x02E0) || ((R520 & + 0x03FB) == 0x02E0)) || (((R530 & 0x03FB) == 0x02E0) || ((R540 & + 0x03FB) == 0x02E0)))) + { + Stall (0x32) + } + + Local0 = R510 /* \_SB_.PCI0.XHC1._PS0.R510 */ + If (((Local0 & 0x000203FB) == 0x02A0)) + { + R510 = (Local0 | 0x80000000) + While (((R510 & 0x00180000) == Zero)) + { + Stall (0x32) + } + + Local0 = (R510 & 0xFFFFFFFFFFFFFFFD) + R510 = (Local0 | 0x00FE0000) + } + + Local0 = R520 /* \_SB_.PCI0.XHC1._PS0.R520 */ + If (((Local0 & 0x000203FB) == 0x02A0)) + { + R520 = (Local0 | 0x80000000) + While (((R520 & 0x00180000) == Zero)) + { + Stall (0x32) + } + + Local0 = (R520 & 0xFFFFFFFFFFFFFFFD) + R520 = (Local0 | 0x00FE0000) + } + + Local0 = R530 /* \_SB_.PCI0.XHC1._PS0.R530 */ + If (((Local0 & 0x000203FB) == 0x02A0)) + { + R530 = (Local0 | 0x80000000) + While (((R530 & 0x00180000) == Zero)) + { + Stall (0x32) + } + + Local0 = (R530 & 0xFFFFFFFFFFFFFFFD) + R530 = (Local0 | 0x00FE0000) + } + + Local0 = R540 /* \_SB_.PCI0.XHC1._PS0.R540 */ + If (((Local0 & 0x000203FB) == 0x02A0)) + { + R540 = (Local0 | 0x80000000) + While (((R540 & 0x00180000) == Zero)) + { + Stall (0x32) + } + + Local0 = (R540 & 0xFFFFFFFFFFFFFFFD) + R540 = (Local0 | 0x00FE0000) + } + + AX15 = One + } + + If ((Local3 == 0x03)) + { + ADBG ("PS0->D3") + P8XH (Zero, 0xA1) + D0D3 = 0x03 + } + Else + { + P8XH (Zero, 0xA2) + } + + PDBM &= 0xFFFFFFFFFFFFFFFD + MEMB = Local2 + PDBM = Local1 + } + + Method (_PS3, 0, Serialized) // _PS3: Power State 3 + { + ADBG ("XHC D3") + P8XH (Zero, 0xB0) + If ((DVID == 0xFFFF)) + { + Return (Zero) + } + + SRMB = (MEMB & 0xFFFFFFF0) + Local2 = MEMB /* \_SB_.PCI0.XHC1.MEMB */ + Local1 = PDBM /* \_SB_.PCI0.XHC1.PDBM */ + PDBM &= 0xFFFFFFFFFFFFFFF9 + MEMB = SRMB /* \_SB_.PCI0.XHC1.SRMB */ + PDBM |= 0x02 + OperationRegion (MCA1, SystemMemory, SRMB, 0x9000) + Field (MCA1, DWordAcc, Lock, Preserve) + { + Offset (0x80E0), + , 15, + AX15, 1, + Offset (0x8154), + , 31, + CLK2, 1, + Offset (0x816C), + , 2, + CLK0, 1, + , 11, + CLK1, 1, + Offset (0x8170) + } + + Local3 = D0D3 /* \_SB_.PCI0.XHC1.D0D3 */ + If ((Local3 == 0x03)) + { + D0D3 = Zero + } + + If ((PCHS == 0x02)) + { + MB13 = One + MB14 = One + CLK0 = One + CLK1 = One + } + + CLK2 = Zero + If ((PCHS == 0x02)) + { + AX15 = Zero + } + + If ((PMEE == One)) + { + USHP = One + } + + If ((Local3 == 0x03)) + { + ADBG ("PS3->D3") + P8XH (Zero, 0xB1) + D0D3 = 0x03 + } + Else + { + P8XH (Zero, 0xB2) + } + + PDBM &= 0xFFFFFFFFFFFFFFFD + MEMB = Local2 + PDBM = Local1 + } + + Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake + { + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Method (_PR3, 0, NotSerialized) // _PR3: Power Resources for D3hot + { + Return (Package (0x01) + { + USBC + }) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((XHCI != Zero)) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + + Device (RHUB) + { + Name (_ADR, Zero) // _ADR: Address + Device (SSP1) + { + Name (_ADR, 0x07) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + Zero, + 0x06, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x48, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* H....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.SSP1._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM11") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM12") + If ((Arg1 == Zero)) + { + ADBG ("DSM13") + If ((Arg2 == Zero)) + { + ADBG ("SSP1 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("SSP1 DSM") + Debug = "Method _DSM Function Index2" + Return (Zero) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + + Device (HS01) + { + Name (_ADR, One) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0x06, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS01._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x49, 0x19, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* I....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS01._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM21") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM22") + If ((Arg1 == Zero)) + { + ADBG ("DSM23") + If ((Arg2 == Zero)) + { + ADBG ("HS01 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HS01 DSM") + Debug = "Method _DSM Function Index2" + Return (Zero) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + + Device (HS02) + { + Name (_ADR, 0x02) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (UPCR, Package (0x04) + { + 0xFF, + Zero, + Zero, + Zero + }) + If ((BDID == 0x02)) + { + Return (UPCR) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCR */ + } + Else + { + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS02._UPC.UPCP */ + } + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* @....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Name (PLDR, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x41, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* A....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + If ((BDID == 0x02)) + { + Return (PLDR) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDR */ + } + Else + { + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS02._PLD.PLDP */ + } + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM31") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM32") + If ((Arg1 == Zero)) + { + ADBG ("DSM33") + If ((Arg2 == Zero)) + { + ADBG ("HS02 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HS02 DSM") + Debug = "Method _DSM Function Index2" + Return (Zero) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + + Device (HS03) + { + Name (_ADR, 0x03) // _ADR: Address + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + GPO2 + }) + Name (PSTS, Zero) + PowerResource (WWPR, 0x00, 0x0000) + { + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + GPO2 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((\_SB.GPO2.AVBL == One)) + { + Return (\_SB.GPO0.WWD3) + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((PSTS == Zero)) + { + If ((\_SB.GPO2.AVBL == One)) + { + Sleep (0x0200) + \_SB.GPO0.WWD3 = One + PSTS = One + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((\_SB.GPO2.AVBL == One)) + { + \_SB.GPO0.WWD3 = Zero + PSTS = Zero + } + } + } + + Name (_S0W, 0x02) // _S0W: S0 Device Wake State + Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 + { + WWPR + }) + Name (_PR2, Package (0x01) // _PR2: Power Resources for D2 + { + WWPR + }) + Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot + { + WWPR + }) + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS03._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS03._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM41") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM42") + If ((Arg1 == Zero)) + { + ADBG ("DSM43") + If ((Arg2 == Zero)) + { + ADBG ("HS03 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HS03 DSM") + Debug = "Method _DSM Function Index2" + Return (Zero) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + + Device (MODM) + { + Name (_ADR, 0x03) // _ADR: Address + Name (_PR0, Package (0x01) // _PR0: Power Resources for D0 + { + WWPR + }) + Name (_PR2, Package (0x01) // _PR2: Power Resources for D2 + { + WWPR + }) + Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot + { + WWPR + }) + } + } + + Device (HS04) + { + Name (_ADR, 0x04) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HS04._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HS04._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM51") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM52") + If ((Arg1 == Zero)) + { + ADBG ("DSM53") + If ((Arg2 == Zero)) + { + ADBG ("HS04 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HS04 DSM") + Debug = "Method _DSM Function Index2" + Return (Zero) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + + Device (HSC1) + { + Name (_ADR, 0x05) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC1._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM61") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM62") + If ((Arg1 == Zero)) + { + ADBG ("DSM63") + If ((Arg2 == Zero)) + { + ADBG ("HSIC1 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HSIC1 DSM") + Debug = "Method _DSM Function Index2" + Return (One) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + + Device (HSC2) + { + Name (_ADR, 0x06) // _ADR: Address + Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities + { + Name (UPCP, Package (0x04) + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Return (UPCP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._UPC.UPCP */ + } + + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Name (PLDP, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Return (PLDP) /* \_SB_.PCI0.XHC1.RHUB.HSC2._PLD.PLDP */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + ADBG ("DSM71") + If ((Arg0 == ToUUID ("ce2ee385-00e6-48cb-9f05-2edb927c4899") /* USB Controller */)) + { + ADBG ("DSM72") + If ((Arg1 == Zero)) + { + ADBG ("DSM73") + If ((Arg2 == Zero)) + { + ADBG ("HSIC2 QUERY") + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x05 /* . */ + }) + } + + If ((Arg2 == 0x02)) + { + ADBG ("HSIC2 DSM called") + Debug = "Method _DSM Function Index2" + Return (One) + } + } + } + Else + { + Return (Zero) + } + + Return (Zero) + } + } + } + } + + Device (OTG1) + { + Name (_ADR, 0x00160000) // _ADR: Address + Name (_DDN, "Baytrail XHCI controller (Synopsys core/OTG)") // _DDN: DOS Device Name + Name (_STR, Unicode ("Baytrail XHCI controller (Synopsys core/OTG)")) // _STR: Description String + Name (_S0W, 0x03) // _S0W: S0 Device Wake State + OperationRegion (PMEB, PCI_Config, 0x84, 0x04) + Field (PMEB, WordAcc, NoLock, Preserve) + { + Offset (0x01), + PMEE, 1, + , 6, + PMES, 1 + } + + OperationRegion (GENR, PCI_Config, 0xA0, 0x10) + Field (GENR, WordAcc, NoLock, Preserve) + { + , 18, + CPME, 1, + U2EN, 1, + U3EN, 1 + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + CPME = One + U2EN = One + U3EN = One + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + CPME = Zero + U2EN = Zero + U3EN = Zero + } + + Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake + { + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Method (_PR3, 0, NotSerialized) // _PR3: Power Resources for D3hot + { + Return (Package (0x01) + { + USBC + }) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OTGM != Zero)) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + } + + Scope (\_SB) + { + PowerResource (USBC, 0x00, 0x0000) + { + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + } + } + } + + Scope (EHC1) + { + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + OperationRegion (PWKE, PCI_Config, 0x62, 0x04) + Field (PWKE, DWordAcc, NoLock, Preserve) + { + , 1, + PWUC, 8 + } + + Method (_PSW, 1, NotSerialized) // _PSW: Power State Wake + { + If (Arg0) + { + PWUC = Ones + } + Else + { + PWUC = Zero + } + } + + Device (HUBN) + { + Name (_ADR, Zero) // _ADR: Address + Device (PR01) + { + Name (_ADR, One) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + Zero, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x0, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "UNKNOWN", + PLD_VerticalPosition = "UPPER", + PLD_HorizontalPosition = "LEFT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + Device (PR11) + { + Name (_ADR, One) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "FRONT", + PLD_VerticalPosition = "", + PLD_HorizontalPosition = "LEFT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + } + + Device (PR12) + { + Name (_ADR, 0x02) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "FRONT", + PLD_VerticalPosition = "", + PLD_HorizontalPosition = "CENTER", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + } + + Device (PR13) + { + Name (_ADR, 0x03) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "FRONT", + PLD_VerticalPosition = "", + PLD_HorizontalPosition = "CENTER", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + } + + Device (PR14) + { + Name (_ADR, 0x04) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "FRONT", + PLD_VerticalPosition = "", + PLD_HorizontalPosition = "RIGHT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8"))) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + If ((Arg1 == One)) + { + Return (Buffer (One) + { + 0x07 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + Else + { + If ((_T_0 == One)) + { + If ((SDGV == 0xFF)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + Else + { + If ((_T_0 == 0x02)) + { + Return (SDGV) /* \SDGV */ + } + } + } + + Break + } + } + + Return (Zero) + } + } + + Device (PR15) + { + Name (_ADR, 0x05) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "UNKNOWN", + PLD_VerticalPosition = "LOWER", + PLD_HorizontalPosition = "RIGHT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8"))) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + If ((Arg1 == One)) + { + Return (Buffer (One) + { + 0x07 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + Else + { + If ((_T_0 == One)) + { + If ((SDGV == 0xFF)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + Else + { + If ((_T_0 == 0x02)) + { + Return (SDGV) /* \SDGV */ + } + } + } + + Break + } + } + + Return (Zero) + } + } + + Device (PR16) + { + Name (_ADR, 0x06) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "UNKNOWN", + PLD_VerticalPosition = "LOWER", + PLD_HorizontalPosition = "RIGHT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8"))) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + If ((Arg1 == One)) + { + Return (Buffer (One) + { + 0x07 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + Else + { + If ((_T_0 == One)) + { + If ((SDGV == 0xFF)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + Else + { + If ((_T_0 == 0x02)) + { + Return (SDGV) /* \SDGV */ + } + } + } + + Break + } + } + + Return (Zero) + } + } + + Device (PR17) + { + Name (_ADR, 0x07) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "UNKNOWN", + PLD_VerticalPosition = "LOWER", + PLD_HorizontalPosition = "RIGHT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("a5fc708f-8775-4ba6-bd0c-ba90a1ec72f8"))) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + If ((Arg1 == One)) + { + Return (Buffer (One) + { + 0x07 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + Else + { + If ((_T_0 == One)) + { + If ((SDGV == 0xFF)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + Else + { + If ((_T_0 == 0x02)) + { + Return (SDGV) /* \SDGV */ + } + } + } + + Break + } + } + + Return (Zero) + } + } + + Device (PR18) + { + Name (_ADR, 0x08) // _ADR: Address + Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities + { + 0xFF, + 0xFF, + Zero, + Zero + }) + Name (_PLD, Package (0x01) // _PLD: Physical Location of Device + { + ToPLD ( + PLD_Revision = 0x1, + PLD_IgnoreColor = 0x1, + PLD_Red = 0x0, + PLD_Green = 0x0, + PLD_Blue = 0x0, + PLD_Width = 0x0, + PLD_Height = 0x0, + PLD_UserVisible = 0x1, + PLD_Dock = 0x0, + PLD_Lid = 0x0, + PLD_Panel = "UNKNOWN", + PLD_VerticalPosition = "LOWER", + PLD_HorizontalPosition = "RIGHT", + PLD_Shape = "UNKNOWN", + PLD_GroupOrientation = 0x0, + PLD_GroupToken = 0x0, + PLD_GroupPosition = 0x0, + PLD_Bay = 0x0, + PLD_Ejectable = 0x0, + PLD_EjectRequired = 0x0, + PLD_CabinetNumber = 0x0, + PLD_CardCageNumber = 0x0, + PLD_Reference = 0x0, + PLD_Rotation = 0x0, + PLD_Order = 0x0, + PLD_VerticalOffset = 0x0, + PLD_HorizontalOffset = 0x0) + + }) + } + } + } + + Name (_S0W, 0x03) // _S0W: S0 Device Wake State + OperationRegion (USBR, PCI_Config, 0x54, 0x04) + Field (USBR, WordAcc, NoLock, Preserve) + { + Offset (0x01), + PMEE, 1, + , 6, + PMES, 1 + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((XHCI == Zero)) + { + Return (0x0F) + } + Else + { + Return (Zero) + } + } + + Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake + { + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Method (_PR3, 0, NotSerialized) // _PR3: Power Resources for D3hot + { + Return (Package (0x01) + { + USBC + }) + } + } + + Device (SEC0) + { + Name (_ADR, 0x001A0000) // _ADR: Address + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (_S0W, 0x03) // _S0W: S0 Device Wake State + OperationRegion (PMEB, PCI_Config, 0x84, 0x04) + Field (PMEB, WordAcc, NoLock, Preserve) + { + Offset (0x01), + PMEE, 1, + , 6, + PMES, 1 + } + + Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake + { + } + + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00000000, // Address Length + _Y09) + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + If ((PAVP == 0x02)) + { + CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.PCI0.SEC0._Y09._LEN, B0LN) // _LEN: Length + B0BA = PAVB /* \PAVB */ + B0LN = PAVL /* \PAVL */ + Return (RBUF) /* \_SB_.PCI0.SEC0.RBUF */ + } + + Return (ResourceTemplate () + { + }) + } + } + } + + Scope (_PR) + { + Processor (CPU0, 0x01, 0x00000000, 0x00) {} + Processor (CPU1, 0x02, 0x00000000, 0x00) {} + Processor (CPU2, 0x03, 0x00000000, 0x00) {} + Processor (CPU3, 0x04, 0x00000000, 0x00) {} + } + + Mutex (MUTX, 0x00) + OperationRegion (PRT0, SystemIO, 0x80, 0x04) + Field (PRT0, DWordAcc, Lock, Preserve) + { + P80H, 32 + } + + Method (P8XH, 2, Serialized) + { + If ((Arg0 == Zero)) + { + P80D = ((P80D & 0xFFFFFF00) | Arg1) + } + + If ((Arg0 == One)) + { + P80D = ((P80D & 0xFFFF00FF) | (Arg1 << 0x08)) + } + + If ((Arg0 == 0x02)) + { + P80D = ((P80D & 0xFF00FFFF) | (Arg1 << 0x10)) + } + + If ((Arg0 == 0x03)) + { + P80D = ((P80D & 0x00FFFFFF) | (Arg1 << 0x18)) + } + + P80H = P80D /* \P80D */ + } + + OperationRegion (SPRT, SystemIO, 0xB2, 0x02) + Field (SPRT, ByteAcc, Lock, Preserve) + { + SSMP, 8 + } + + Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model + { + GPIC = Arg0 + PICM = Arg0 + } + + OperationRegion (SWC0, SystemIO, 0x0610, 0x0F) + Field (SWC0, ByteAcc, NoLock, Preserve) + { + G1S, 8, + Offset (0x04), + G1E, 8, + Offset (0x0A), + G1S2, 8, + G1S3, 8 + } + + OperationRegion (SWC1, SystemIO, PMBS, 0x2C) + Field (SWC1, DWordAcc, NoLock, Preserve) + { + Offset (0x20), + G0S, 32, + Offset (0x28), + G0EN, 32 + } + + Method (PPTS, 1, NotSerialized) + { + P80D = Zero + P8XH (Zero, Arg0) + G1S3 = Ones + G1S2 = Ones + G1S = One + G1E = One + G0S = Ones + If (CondRefOf (TCGM)) + { + \_SB.PCI0.LPCB.TPM.PTS (Arg0) + } + } + + Method (PWAK, 1, Serialized) + { + P8XH (One, 0xAB) + If (NEXP) + { + If ((OSCC & 0x02)) + { + \_SB.PCI0.NHPG () + } + + If ((OSCC & 0x04)) + { + \_SB.PCI0.NPME () + } + } + + If (((Arg0 == 0x03) || (Arg0 == 0x04))) + { + If ((PFLV == FMBL)) + { + If ((Arg0 == 0x04)) + { + PNOT () + } + } + + If ((CFGD & 0x01000000)) {} + If ((OSYS == 0x07D2)) + { + If ((CFGD & One)) + { + If ((\_PR.CPU0._PPC > Zero)) + { + \_PR.CPU0._PPC -= One + PNOT () + \_PR.CPU0._PPC += One + PNOT () + } + Else + { + \_PR.CPU0._PPC += One + PNOT () + \_PR.CPU0._PPC -= One + PNOT () + } + } + } + } + } + + Method (PNOT, 0, Serialized) + { + If (MPEN) + { + If ((PDC0 & 0x08)) + { + Notify (\_PR.CPU0, 0x80) // Performance Capability Change + If ((PDC0 & 0x10)) + { + Sleep (0x64) + Notify (\_PR.CPU0, 0x81) // C-State Change + } + } + + If ((PDC1 & 0x08)) + { + Notify (\_PR.CPU1, 0x80) // Performance Capability Change + If ((PDC1 & 0x10)) + { + Sleep (0x64) + Notify (\_PR.CPU1, 0x81) // C-State Change + } + } + + If ((PDC2 & 0x08)) + { + Notify (\_PR.CPU2, 0x80) // Performance Capability Change + If ((PDC2 & 0x10)) + { + Sleep (0x64) + Notify (\_PR.CPU2, 0x81) // C-State Change + } + } + + If ((PDC3 & 0x08)) + { + Notify (\_PR.CPU3, 0x80) // Performance Capability Change + If ((PDC3 & 0x10)) + { + Sleep (0x64) + Notify (\_PR.CPU3, 0x81) // C-State Change + } + } + } + Else + { + Notify (\_PR.CPU0, 0x80) // Performance Capability Change + Sleep (0x64) + Notify (\_PR.CPU0, 0x81) // C-State Change + } + } + + Scope (_SB) + { + Name (CRTT, 0x6E) + Name (ACTT, 0x55) + Name (SCR0, 0x0102) + Name (SCR1, 0x0102) + Name (SCR2, 0x0102) + Name (SCR3, 0x0102) + Name (GCR0, 0x46) + Name (GCR1, 0x46) + Name (GCR2, 0x46) + Name (GCR3, 0x46) + Name (GCR4, 0x46) + Name (PST0, 0x3C) + Name (PST1, 0x3C) + Name (PST2, 0x3C) + Name (PST3, 0x3C) + Name (PST4, 0x3C) + Name (LPMV, 0x03) + Name (PDBG, Zero) + Name (PDPM, One) + Name (PDBP, One) + Name (DLPO, Package (0x06) + { + One, + One, + One, + 0x19, + One, + One + }) + Name (BRQD, Zero) + Name (PSC1, Zero) + Name (PSC2, Zero) + Name (PSC3, Zero) + Name (PSA1, Zero) + Name (PSA2, Zero) + Name (PSA3, Zero) + Method (_INI, 0, NotSerialized) // _INI: Initialize + { + CRTT = DPCT /* \DPCT */ + ACTT = DPPT /* \DPPT */ + GCR0 = DGC0 /* \DGC0 */ + GCR1 = DGC1 /* \DGC1 */ + GCR2 = DGC2 /* \DGC2 */ + GCR3 = DGC3 /* \DGC3 */ + GCR4 = DGC4 /* \DGC4 */ + PST0 = DGP0 /* \DGP0 */ + PST1 = DGP1 /* \DGP1 */ + PST2 = DGP2 /* \DGP2 */ + PST3 = DGP3 /* \DGP3 */ + PST4 = DGP4 /* \DGP4 */ + SCR0 = DSC0 /* \DSC0 */ + SCR1 = DSC1 /* \DSC1 */ + SCR2 = DSC2 /* \DSC2 */ + SCR3 = DSC3 /* \DSC3 */ + LPMV = DLPM /* \DLPM */ + PDBG = DDBG /* \DDBG */ + Index (DLPO, One) = LPOE /* \LPOE */ + Index (DLPO, 0x02) = LPPS /* \LPPS */ + Index (DLPO, 0x03) = LPST /* \LPST */ + Index (DLPO, 0x04) = LPPC /* \LPPC */ + Index (DLPO, 0x05) = LPPF /* \LPPF */ + PDPM = DPME /* \DPME */ + } + + Scope (PCI0) + { + Method (_INI, 0, NotSerialized) // _INI: Initialize + { + OSYS = 0x07D0 + If (CondRefOf (\_OSI, Local0)) + { + If (_OSI ("Windows 2001")) + { + OSYS = 0x07D1 + } + + If (_OSI ("Windows 2001 SP1")) + { + OSYS = 0x07D1 + } + + If (_OSI ("Windows 2001 SP2")) + { + OSYS = 0x07D2 + } + + If (_OSI ("Windows 2006")) + { + OSYS = 0x07D6 + } + + If (_OSI ("Windows 2009")) + { + OSYS = 0x07D9 + } + + If (_OSI ("Windows 2012")) + { + OSYS = 0x07DC + } + + If (_OSI ("Windows 2013")) + { + OSYS = 0x07DD + } + } + } + + Method (NHPG, 0, Serialized) + { + } + + Method (NPME, 0, Serialized) + { + } + } + + Device (GPED) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT0002" /* Virtual GPIO Controller */) // _HID: Hardware ID + Name (_CID, "INT0002" /* Virtual GPIO Controller */) // _CID: Compatible ID + Name (_DDN, "Virtual GPIO controller") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (INST, One) + Name (XTMP, Zero) + OperationRegion (SCIS, SystemMemory, 0xFED030C0, 0x04) + Field (SCIS, DWordAcc, NoLock, Preserve) + { + LGBE, 1, + LHAD, 1, + LATA, 1, + LDIO, 1, + LARD, 1, + LIO1, 1, + LCEP, 1, + LANB, 1, + LHCI, 1, + LOTG, 1, + LECI, 1, + LHSI, 1 + } + + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("8b38b469-6f95-4b08-9b02-2defcc2d2c35"))) + { + If ((Arg2 == Zero)) + { + If ((Arg1 == One)) + { + Return (Buffer (One) + { + 0x03 /* . */ + }) + } + } + + If ((Arg2 == One)) + { + Return ((PMBS + 0x20)) + } + + Return (Zero) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000009, + } + }) + Return (RBUF) /* \_SB_.GPED._CRS.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_AEI, 0, NotSerialized) // _AEI: ACPI Event Interrupts + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Level, ActiveHigh, ExclusiveAndWake, PullDown, 0x0000, + "\\_SB.GPED", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0002 + } + }) + Return (RBUF) /* \_SB_.GPED._AEI.RBUF */ + } + + Method (_L02, 0, NotSerialized) // _Lxx: Level-Triggered GPE + { + If ((XHCI == Zero)) + { + If ((^^PCI0.EHC1.PMES == One)) + { + ^^PCI0.EHC1.PMEE = Zero + Local0 = ^^PCI0.EHC1.PMEE /* \_SB_.PCI0.EHC1.PMEE */ + Notify (^^PCI0.EHC1, 0x02) // Device Wake + } + } + Else + { + If ((SOCS > 0x05)) + { + XTMP = (^^PCI0.XHC1.PMCS & 0x8000) + If ((XTMP == 0x8000)) + { + Notify (^^PCI0.XHC1, 0x02) // Device Wake + } + } + Else + { + If ((SOCS > 0x02)) + { + XTMP = (^^PCI0.XHC1.PMCS & 0x8000) + If ((XTMP == 0x8000)) + { + ^^PCI0.XHC1.PMCH = 0x81 + Notify (^^PCI0.XHC1, 0x02) // Device Wake + } + } + Else + { + XTMP = (^^PCI0.XHC1.PMCS & 0x0103) + If ((XTMP == 0x0103)) + { + ^^PCI0.XHC1.PMCS = 0x0100 + Sleep (0x0A) + XTMP = (^^PCI0.XHC1.PMCS & 0x8000) + If ((XTMP == 0x8000)) + { + ^^PCI0.XHC1.PMCH = 0x81 + } + Else + { + ^^PCI0.XHC1.PMCS = 0x0103 + } + + Sleep (0x0A) + Notify (^^PCI0.XHC1, 0x02) // Device Wake + } + Else + { + ^^PCI0.XHC1.PMCH = 0x81 + Sleep (0x0A) + } + } + } + } + + If ((OTGM != Zero)) + { + If ((^^PCI0.OTG1.PMES == One)) + { + ADBG ("OTG wake") + ^^PCI0.OTG1.PMEE = Zero + ^^PCI0.OTG1.CPME = Zero + ^^PCI0.OTG1.U2EN = Zero + ^^PCI0.OTG1.U3EN = Zero + Notify (^^PCI0.OTG1, 0x02) // Device Wake + } + } + + If ((^^PCI0.SEC0.PMES == One)) + { + ^^PCI0.SEC0.PMEE = Zero + Local0 = ^^PCI0.SEC0.PMEE /* \_SB_.PCI0.SEC0.PMEE */ + Notify (^^PCI0.SEC0, 0x02) // Device Wake + } + } + } + + Device (GPO0) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _HID: Hardware ID + Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _CID: Compatible ID + Name (_DDN, "ValleyView General Purpose Input/Output (GPIO) controller") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xFED0C000, // Address Base + 0x00001000, // Address Length + ) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) + { + 0x00000031, + } + }) + Return (RBUF) /* \_SB_.GPO0._CRS.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBL = Arg1 + } + } + + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0002 + } + ), + CCU2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0003 + } + ), + CCU3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005F + } + ), + TCON, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0064 + } + ), + WWD3, 1 + } + } + + Device (GPO1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _HID: Hardware ID + Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _CID: Compatible ID + Name (_DDN, "ValleyView GPNCORE controller") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xFED0D000, // Address Base + 0x00001000, // Address Length + ) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) + { + 0x00000030, + } + }) + Return (RBUF) /* \_SB_.GPO1._CRS.RBUF */ + } + + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBL = Arg1 + } + } + + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x000F + } + ), + BST5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001A + } + ), + TCD3, 1 + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + } + + Device (GPO2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _HID: Hardware ID + Name (_CID, "INT33FC" /* Intel Baytrail GPIO Controller */) // _CID: Compatible ID + Name (_DDN, "ValleyView GPSUS controller") // _DDN: DOS Device Name + Name (_UID, 0x03) // _UID: Unique ID + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xFED0E000, // Address Base + 0x00001000, // Address Length + ) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) + { + 0x00000032, + } + }) + Return (RBUF) /* \_SB_.GPO2._CRS.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_AEI, 0, NotSerialized) // _AEI: ACPI Event Interrupts + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullUp, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullUp, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0002 + } + }) + Name (FBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, SharedAndWake, PullUp, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + }) + Return (FBUF) /* \_SB_.GPO2._AEI.FBUF */ + } + + Name (BMUX, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BMUX, Zero, BBBY) + CreateByteField (BMUX, 0x02, DDDT) + Method (_E12, 0, NotSerialized) // _Exx: Edge-Triggered GPE + { + If (((AVBL == One) && (^^GPO1.AVBL == One))) + { + If ((USID == One)) + { + ^^GPO1.BST5 = Zero + Sleep (0x05) + BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */ + DDDT &= 0x7F + ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */ + MOTG = One + ^^PCI0.XHC1.PWOF () + } + Else + { + BMUX = ^^I2C5.XP30 /* \_SB_.I2C5.XP30 */ + DDDT |= 0x80 + ^^I2C5.XP30 = BMUX /* \_SB_.GPO2.BMUX */ + Sleep (0x05) + ^^GPO1.BST5 = One + Sleep (0x05) + MOTG = Zero + ^^PCI0.XHC1.PWON () + } + } + } + + Name (BMBQ, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BMBQ, Zero, BBBQ) + CreateByteField (BMBQ, 0x02, DDBQ) + Method (BOST, 1, NotSerialized) + { + BMBQ = ^^I2C1.BQ01 /* \_SB_.I2C1.BQ01 */ + If ((Arg0 == One)) + { + DDBQ &= 0xCF + DDBQ |= 0x20 + } + Else + { + DDBQ &= 0xCF + DDBQ |= 0x10 + } + + ^^I2C1.BQ01 = BMBQ /* \_SB_.GPO2.BMBQ */ + } + + Name (BUFC, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BUFC, Zero, BYAT) + CreateByteField (BUFC, 0x02, DATA) + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBL = Arg1 + } + } + + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0C) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0014 + } + ), + WFD3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + ), + MOTG, 1, + Connection ( + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + ), + USID, 1 + } + } + + Device (PEPD) + { + Name (_HID, "INT3396" /* Standard Power Management Controller */) // _HID: Hardware ID + Name (_CID, EisaId ("PNP0D80") /* Windows-compatible System Power Management Controller */) // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Name (PEPP, Zero) + Name (DEVS, Package (0x01) + { + Zero + }) + Name (DEVX, Package (0x0E) + { + Package (0x02) + { + "\\_SB.PCI0.XHC1", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0.ISP0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.SEC0", + One + }, + + Package (0x02) + { + "\\_SB.I2C1", + One + }, + + Package (0x02) + { + "\\_SB.I2C2", + One + }, + + Package (0x02) + { + "\\_SB.I2C3", + One + }, + + Package (0x02) + { + "\\_SB.I2C4", + One + }, + + Package (0x02) + { + "\\_SB.I2C5", + One + }, + + Package (0x02) + { + "\\_SB.SDHA", + One + }, + + Package (0x02) + { + "\\_SB.SDHB", + One + }, + + Package (0x02) + { + "\\_SB.SDHC", + One + }, + + Package (0x02) + { + "\\_SB.URT1", + One + }, + + Package (0x02) + { + "\\_SB.URT2", + One + } + }) + Name (DEX1, Package (0x0D) + { + Package (0x02) + { + "\\_SB.PCI0.XHC1", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0.ISP0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.SEC0", + One + }, + + Package (0x02) + { + "\\_SB.I2C1", + One + }, + + Package (0x02) + { + "\\_SB.I2C2", + One + }, + + Package (0x02) + { + "\\_SB.I2C3", + One + }, + + Package (0x02) + { + "\\_SB.I2C4", + One + }, + + Package (0x02) + { + "\\_SB.SDHA", + One + }, + + Package (0x02) + { + "\\_SB.SDHB", + One + }, + + Package (0x02) + { + "\\_SB.SDHC", + One + }, + + Package (0x02) + { + "\\_SB.URT1", + One + }, + + Package (0x02) + { + "\\_SB.URT2", + One + } + }) + Name (DEX2, Package (0x0D) + { + Package (0x02) + { + "\\_SB.PCI0.XHC1", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.GFX0.ISP0", + One + }, + + Package (0x02) + { + "\\_SB.PCI0.SEC0", + One + }, + + Package (0x02) + { + "\\_SB.I2C1", + One + }, + + Package (0x02) + { + "\\_SB.I2C2", + One + }, + + Package (0x02) + { + "\\_SB.I2C3", + One + }, + + Package (0x02) + { + "\\_SB.I2C4", + One + }, + + Package (0x02) + { + "\\_SB.SDHA", + One + }, + + Package (0x02) + { + "\\_SB.SDHB", + One + }, + + Package (0x02) + { + "\\_SB.SDHD", + One + }, + + Package (0x02) + { + "\\_SB.URT1", + One + }, + + Package (0x02) + { + "\\_SB.URT2", + One + } + }) + Name (CDMP, Package (0x02) {}) + Name (DEVY, Package (0x13) + { + Package (0x03) + { + "\\_PR.CPU0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU1", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU2", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU3", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0.ISP0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C3", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C4", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C5", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.XHC1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + 0x03 + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.SEC0", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.LPEA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + Zero + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHB", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHC", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + } + }) + Name (DEY1, Package (0x12) + { + Package (0x03) + { + "\\_PR.CPU0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU1", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU2", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU3", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0.ISP0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C3", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C4", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.XHC1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + 0x03 + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.SEC0", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.LPEA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + Zero + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHB", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHC", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + } + }) + Name (DEY2, Package (0x12) + { + Package (0x03) + { + "\\_PR.CPU0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU1", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU2", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_PR.CPU3", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + Zero + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.GFX0.ISP0", + One, + Package (0x02) + { + Zero, + Package (0x02) + { + 0xFF, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C3", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.I2C4", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.XHC1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + 0x03 + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.PCI0.SEC0", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.LPEA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + Zero + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHA", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHB", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.SDHD", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT1", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + }, + + Package (0x03) + { + "\\_SB.URT2", + One, + Package (0x05) + { + Zero, + Package (0x02) + { + Zero, + Zero + }, + + Package (0x02) + { + One, + 0x03 + }, + + Package (0x02) + { + 0x02, + 0x03 + }, + + Package (0x02) + { + 0x03, + 0x03 + } + } + } + }) + Name (BCCD, Package (0x01) + { + Package (0x02) + { + "\\_SB.SDHA", + Package (0x01) + { + Package (0x03) + { + Package (0x05) + { + Zero, + 0x20, + Zero, + 0x03, + Ones + }, + + Package (0x03) + { + 0xFFFFFFFC, + Zero, + 0x04 + }, + + Zero + } + } + } + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("b8febfe0-baf8-454b-aecd-49fb91137b21"))) + { + If ((Arg2 == Zero)) + { + Return (Buffer (One) + { + 0x0F /* . */ + }) + } + + If ((Arg2 == One)) + { + PEPP = One + Return (0x0F) + } + + If ((Arg2 == 0x02)) + { + If ((Arg1 == Zero)) + { + Return (DEVS) /* \_SB_.PEPD.DEVS */ + } + + If ((Arg1 == One)) + { + If ((PMID == 0x02)) + { + Return (DEVX) /* \_SB_.PEPD.DEVX */ + } + Else + { + If ((PMID == 0x05)) + { + Return (DEX2) /* \_SB_.PEPD.DEX2 */ + } + + Return (DEX1) /* \_SB_.PEPD.DEX1 */ + } + } + } + + If ((Arg2 == 0x03)) + { + Index (CDMP, Zero) = "\\_SB.SDHA" + Index (CDMP, One) = EM1A /* \EM1A */ + Return (CDMP) /* \_SB_.PEPD.CDMP */ + } + } + + If ((Arg0 == ToUUID ("c4eb40a0-6cd2-11e2-bcfd-0800200c9a66"))) + { + If ((Arg2 == Zero)) + { + Return (Buffer (One) + { + 0x07 /* . */ + }) + } + + If ((Arg2 == One)) + { + If ((PMID == 0x02)) + { + Return (DEVY) /* \_SB_.PEPD.DEVY */ + } + Else + { + If ((PMID == 0x05)) + { + Return (DEY2) /* \_SB_.PEPD.DEY2 */ + } + + Return (DEY1) /* \_SB_.PEPD.DEY1 */ + } + } + + If ((Arg2 == 0x02)) + { + Local0 = EM1A /* \EM1A */ + Local0 += 0x84 + Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (DerefOf (Index (BCCD, Zero + )), One)), Zero)), Zero)), 0x04) = Local0 + Return (BCCD) /* \_SB_.PEPD.BCCD */ + } + } + + Return (One) + } + } + + Device (SDHA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */) // _HID: Hardware ID + Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) eMMC Controller - 80860F14") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBF1, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0A) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002D, + } + }) + Name (RBF2, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0B) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002C, + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBF1, \_SB.SDHA._Y0A._BAS, B0B1) // _BAS: Base Address + CreateDWordField (RBF1, \_SB.SDHA._Y0A._LEN, B0L1) // _LEN: Length + B0B1 = EM0A /* \EM0A */ + B0L1 = EM0L /* \EM0L */ + CreateDWordField (RBF2, \_SB.SDHA._Y0B._BAS, B0B2) // _BAS: Base Address + CreateDWordField (RBF2, \_SB.SDHA._Y0B._LEN, B0L2) // _LEN: Length + B0B2 = EM0A /* \EM0A */ + B0L2 = EM0L /* \EM0L */ + If ((EMVR == One)) + { + Return (RBF2) /* \_SB_.SDHA.RBF2 */ + } + + Return (RBF1) /* \_SB_.SDHA.RBF1 */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.SDHA.PSAT */ + If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One)))) + { + Sleep (0x02) + } + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.SDHA.PSAT */ + If (((SOCS < 0x02) || ((SOCS == 0x02) && (EMVR == One)))) + { + Sleep (0x02) + } + } + + OperationRegion (KEYS, SystemMemory, EM1A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + + Device (EMMD) + { + Name (_ADR, 0x08) // _ADR: Address + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + } + } + + Device (SDHB) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33BB" /* Intel Baytrail SD Host Controller */) // _HID: Hardware ID + Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) SDIO Controller - 80860F15") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (_HRV, 0x02) // _HRV: Hardware Revision + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + PEPD, + GPO2 + }) + Name (PSTS, Zero) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0C) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002E, + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.SDHB._Y0C._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.SDHB._Y0C._LEN, B0LN) // _LEN: Length + B0BA = SI0A /* \SI0A */ + B0LN = SI0L /* \SI0L */ + Return (RBUF) /* \_SB_.SDHB.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((STEP <= 0x04)) + { + _HRV = SDMD /* \SDMD */ + } + + If (((SI0A == Zero) || (SD2D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.SDHB.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.SDHB.PSAT */ + If ((PSTS == Zero)) + { + If ((^^GPO2.AVBL == One)) + { + ^^GPO2.WFD3 = One + PSTS = One + } + } + } + + OperationRegion (KEYS, SystemMemory, SI1A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (WLAN) + { + Name (_ADR, One) // _ADR: Address + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + GPO2 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake + { + Zero, + Zero + }) + Name (_S4W, 0x02) // _S4W: S4 Device Wake State + Name (_S0W, 0x02) // _S0W: S0 Device Wake State + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, ) + { + 0x00000045, + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0014 + } + }) + Return (RBUF) /* \_SB_.SDHB.WLAN._CRS.RBUF */ + } + + Method (_PS2, 0, NotSerialized) // _PS2: Power State 2 + { + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + } + } + + Device (WLA2) + { + Name (_ADR, 0x02) // _ADR: Address + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (NAM, Buffer (0x0F) + { + "\\_SB.SDHB.WLAN" + }) + Name (SPB, Buffer (0x0C) + { + /* 0000 */ 0x8E, 0x18, 0x00, 0x01, 0x00, 0xC0, 0x02, 0x00, /* ........ */ + /* 0008 */ 0x00, 0x01, 0x00, 0x00 /* .... */ + }) + Name (END, ResourceTemplate () + { + }) + Concatenate (SPB, NAM, Local0) + Concatenate (Local0, END, Local1) + Return (Local1) + } + } + + Device (RTLW) + { + Name (_ADR, One) // _ADR: Address + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + GPO2 + }) + Name (_HID, "RTL8723" /* Realtek Wireless Controller */) // _HID: Hardware ID + Name (_CID, "RTL8723" /* Realtek Wireless Controller */) // _CID: Compatible ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_RMV, 0, NotSerialized) // _RMV: Removal Status + { + Return (Zero) + } + + Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake + { + Zero, + Zero + }) + Name (_S4W, 0x02) // _S4W: S4 Device Wake State + Name (_S0W, 0x02) // _S0W: S0 Device Wake State + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x000F + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0014 + } + }) + Return (RBUF) /* \_SB_.SDHB.RTLW._CRS.RBUF */ + } + + Method (_PS2, 0, NotSerialized) // _PS2: Power State 2 + { + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + If ((^^^GPO2.AVBL == One)) + { + ^^^GPO2.WFD3 = Zero + PSTS = Zero + } + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + If ((PSTS == Zero)) + { + If ((^^^GPO2.AVBL == One)) + { + ^^^GPO2.WFD3 = One + PSTS = One + } + } + } + } + } + + Device (SDHC) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */) // _HID: Hardware ID + Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) SD Card Controller - 80860F16") // _DDN: DOS Device Name + Name (_UID, 0x03) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + PEPD, + GPO0 + }) + Name (TDEP, Package (0x04) + { + PEPD, + GPO0, + I2C5, + ^I2C5.PMI2 + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0D) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002F, + } + GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + }) + Name (ABUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0E) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002F, + } + GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0029 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.SDHC._Y0D._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.SDHC._Y0D._LEN, B0LN) // _LEN: Length + B0BA = SD0A /* \SD0A */ + B0LN = SD0L /* \SD0L */ + CreateDWordField (ABUF, \_SB.SDHC._Y0E._BAS, B0BX) // _BAS: Base Address + CreateDWordField (ABUF, \_SB.SDHC._Y0E._LEN, B0LX) // _LEN: Length + B0BX = SD0A /* \SD0A */ + B0LX = SD0L /* \SD0L */ + If ((OSSL & 0x80)) + { + Return (ABUF) /* \_SB_.SDHC.ABUF */ + } + + Return (RBUF) /* \_SB_.SDHC.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((SD0A == Zero) || (SD3D == One))) + { + Return (Zero) + } + + If ((PMID == 0x05)) + { + ADBG ("XPWR_DCOVE") + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + ADBG ("SD card-----ps3") + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.SDHC.PSAT */ + If (CondRefOf (\_SB.I2C5.PMI2, Local2)) + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LDO7 = Zero + If ((^^I2C5.PMI2.AVBG == One)) + { + ADBG ("SD card-----333ps3") + ^^I2C5.PMI2.GSDX = One + Sleep (0x1E) + } + } + } + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + ADBG ("SD card-----ps0") + If (CondRefOf (\_SB.I2C5.PMI2, Local2)) + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LDO7 = One + If ((^^I2C5.PMI2.AVBG == One)) + { + ADBG ("SD card-----000ps0") + ^^I2C5.PMI2.GSDX = One + Sleep (0x1E) + } + } + } + + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.SDHC.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, SD1A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + } + + Device (SDHD) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F14" /* Intel Baytrail SDIO/MMC Host Controller */) // _HID: Hardware ID + Name (_CID, "PNP0D40" /* SDA Standard Compliant SD Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) SD Card Controller - 80860F16") // _DDN: DOS Device Name + Name (_UID, 0x03) // _UID: Unique ID + Name (_DEP, Package (0x04) // _DEP: Dependencies + { + PEPD, + GPO0, + I2C5, + ^I2C5.PMI1 + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y0F) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002F, + } + GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + }) + Name (ABUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y10) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002F, + } + GpioInt (Edge, ActiveBoth, SharedAndWake, PullNone, 0x2710, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + GpioIo (Shared, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0029 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.SDHD._Y0F._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.SDHD._Y0F._LEN, B0LN) // _LEN: Length + B0BA = SD0A /* \SD0A */ + B0LN = SD0L /* \SD0L */ + CreateDWordField (ABUF, \_SB.SDHD._Y10._BAS, B0BX) // _BAS: Base Address + CreateDWordField (ABUF, \_SB.SDHD._Y10._LEN, B0LX) // _LEN: Length + B0BX = SD0A /* \SD0A */ + B0LX = SD0L /* \SD0L */ + If ((OSSL & 0x80)) + { + Return (ABUF) /* \_SB_.SDHD.ABUF */ + } + + Return (RBUF) /* \_SB_.SDHD.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((SD0A == Zero) || (SD3D == One))) + { + Return (Zero) + } + + If ((PMID == 0x05)) + { + ADBG ("XPWR_DCOVE") + Return (0x0F) + } + + Return (Zero) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + ADBG ("SD card-----ps3 Xpower") + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.SDHD.PSAT */ + If (CondRefOf (\_SB.I2C5.PMI1, Local1)) + { + ADBG ("SD card-----1ps3 Xpower") + If ((^^I2C5.PMI1.AVBL == One)) + { + ADBG ("SD card-----2ps3 Xpower") + ^^I2C5.PMI1.GPI1 = Zero + If ((^^I2C5.PMI1.AVBG == One)) + { + ADBG ("SD card-----3ps3 Xpower") + ^^I2C5.PMI1.GSDX = One + Sleep (0x1E) + } + } + } + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + ADBG ("SD card-----ps0") + If (CondRefOf (\_SB.I2C5.PMI1, Local1)) + { + ADBG ("SD card-----1ps0 Xpower") + If ((^^I2C5.PMI1.AVBL == One)) + { + ADBG ("SD card-----2ps0 Xpower") + ^^I2C5.PMI1.GPI1 = One + If ((^^I2C5.PMI1.AVBG == One)) + { + ADBG ("SD card-----3ps0 Xpower") + ^^I2C5.PMI1.GSDX = One + Sleep (0x1E) + } + } + } + + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.SDHD.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, SD1A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + } + + Device (GDM1) + { + Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */) // _HID: Hardware ID + Name (_DDN, "Intel(R) DMA Controller #1 - INTL9C60") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00004000, // Address Length + _Y11) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002A, + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.GDM1._Y11._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.GDM1._Y11._LEN, B0LN) // _LEN: Length + B0BA = D10A /* \D10A */ + B0LN = D10L /* \D10L */ + Return (RBUF) /* \_SB_.GDM1.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((D10A == Zero) || (L10D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + } + + Device (GDM2) + { + Name (_HID, "INTL9C60" /* Intel Baytrail SOC DMA Controller */) // _HID: Hardware ID + Name (_DDN, "Intel(R) DMA Controller #2 - INTL9C60") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00004000, // Address Length + _Y12) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x0000002B, + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.GDM2._Y12._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.GDM2._Y12._LEN, B0LN) // _LEN: Length + B0BA = D20A /* \D20A */ + B0LN = D20L /* \D20L */ + Return (RBUF) /* \_SB_.GDM2.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((D20A == Zero) || (L20D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + } + + Device (PWM1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F09" /* Intel PWM Controller */) // _HID: Hardware ID + Name (_CID, "80860F09" /* Intel PWM Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) PWM Controller #1 - 80860F08") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y13) + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.PWM1._Y13._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.PWM1._Y13._LEN, B0LN) // _LEN: Length + B0BA = P10A /* \P10A */ + B0LN = P10L /* \P10L */ + Return (RBUF) /* \_SB_.PWM1.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((P10A == Zero) || (L11D == One))) + { + Return (Zero) + } + + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.PWM1.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.PWM1.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, P11A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + } + + Device (PWM2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F09" /* Intel PWM Controller */) // _HID: Hardware ID + Name (_CID, "80860F09" /* Intel PWM Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) PWM Controller #2 - 80860F09") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y14) + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.PWM2._Y14._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.PWM2._Y14._LEN, B0LN) // _LEN: Length + B0BA = P20A /* \P20A */ + B0LN = P20L /* \P20L */ + Return (RBUF) /* \_SB_.PWM2.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((P20A == Zero) || (L12D == One))) + { + Return (Zero) + } + + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.PWM2.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.PWM2.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, P21A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + } + + Device (URT1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F0A" /* Intel Atom UART Controller */) // _HID: Hardware ID + Name (_CID, "80860F0A" /* Intel Atom UART Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) HS-UART Controller #1 - 80860F0A") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y15) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000027, + } + FixedDMA (0x0002, 0x0002, Width32bit, ) + FixedDMA (0x0003, 0x0003, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.URT1._Y15._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.URT1._Y15._LEN, B0LN) // _LEN: Length + B0BA = U10A /* \U10A */ + B0LN = U10L /* \U10L */ + Return (RBUF) /* \_SB_.URT1.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((U10A == Zero) || (L13D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.URT1.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.URT1.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, U11A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (BTH0) + { + Name (_HID, "BCM2E3A") // _HID: Hardware ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne, + 0xFC, LittleEndian, ParityTypeNone, FlowControlNone, + 0x0020, 0x0020, "\\_SB.URT1", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, ,, ) + { + 0x00000046, + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0018 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0019 + } + }) + Return (UBUF) /* \_SB_.URT1.BTH0._CRS.UBUF */ + } + } + + Device (BTH1) + { + Name (_HID, "OBDA8723") // _HID: Hardware ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne, + 0xC0, LittleEndian, ParityTypeEven, FlowControlHardware, + 0x0020, 0x0020, "\\_SB.URT1", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0018 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0019 + } + GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + }) + Name (WBUF, ResourceTemplate () + { + UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne, + 0xC0, LittleEndian, ParityTypeEven, FlowControlHardware, + 0x0020, 0x0020, "\\_SB.URT1", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0019 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0018 + } + GpioInt (Edge, ActiveHigh, Exclusive, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + }) + If ((OSSL & 0x80)) + { + Return (UBUF) /* \_SB_.URT1.BTH1._CRS.UBUF */ + } + + Return (WBUF) /* \_SB_.URT1.BTH1._CRS.WBUF */ + } + } + } + + Device (URT2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F0A" /* Intel Atom UART Controller */) // _HID: Hardware ID + Name (_CID, "80860F0A" /* Intel Atom UART Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) HS-UART Controller #2 - 80860F0C") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y16) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000028, + } + FixedDMA (0x0004, 0x0004, Width32bit, ) + FixedDMA (0x0005, 0x0005, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.URT2._Y16._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.URT2._Y16._LEN, B0LN) // _LEN: Length + B0BA = U20A /* \U20A */ + B0LN = U20L /* \U20L */ + Return (RBUF) /* \_SB_.URT2.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((U20A == Zero) || (L14D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.URT2.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.URT2.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, U21A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (GPS0) + { + Name (_HID, "BCM4752") // _HID: Hardware ID + Name (_HRV, Zero) // _HRV: Hardware Revision + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne, + 0xFC, LittleEndian, ParityTypeNone, FlowControlHardware, + 0x0020, 0x0020, "\\_SB.URT2", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + }) + Return (UBUF) /* \_SB_.URT2.GPS0._CRS.UBUF */ + } + } + } + + Device (SPI1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F0E" /* Intel SPI Controller */) // _HID: Hardware ID + Name (_CID, "80860F0E" /* Intel SPI Controller */) // _CID: Compatible ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (_DDN, "Intel(R) SPI Controller - 80860F0E") // _DDN: DOS Device Name + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y17) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000029, + } + FixedDMA (0x0000, 0x0000, Width32bit, ) + FixedDMA (0x0001, 0x0001, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.SPI1._Y17._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.SPI1._Y17._LEN, B0LN) // _LEN: Length + B0BA = SP0A /* \SP0A */ + B0LN = SP0L /* \SP0L */ + Return (RBUF) /* \_SB_.SPI1.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((SP0A == Zero) || (L15D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.SPI1.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.SPI1.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, SP1A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (FPNT) + { + Name (_HID, "AUTH2750" /* AuthenTec AES2750 */) // _HID: Hardware ID + Name (_DDN, "AuthenTec AES2750") // _DDN: DOS Device Name + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + SpiSerialBus (0x0001, PolarityLow, FourWireMode, 0x08, + ControllerInitiated, 0x007A1200, ClockPolarityLow, + ClockPhaseSecond, "\\_SB.SPI1", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) + { + 0x00000048, + } + }) + Return (UBUF) /* \_SB_.SPI1.FPNT._CRS.UBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + } + } + + Device (NFC2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "NXP5442" /* NXP 5442 Near Field Communications Controller */) // _HID: Hardware ID + Name (_CID, "NXP5442" /* NXP 5442 Near Field Communications Controller */) // _CID: Compatible ID + Name (_DDN, "NXP NFC") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((NFCS == 0x02)) + { + Return (0x0F) + } + + Return (Zero) + } + } + + Device (I2C1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID + Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (_DDN, "Intel(R) I2C Controller #1 - 80860F41") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y18) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000020, + } + FixedDMA (0x0010, 0x0000, Width32bit, ) + FixedDMA (0x0011, 0x0001, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.I2C1._Y18._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.I2C1._Y18._LEN, B0LN) // _LEN: Length + B0BA = I10A /* \I10A */ + B0LN = I10L /* \I10L */ + Return (RBUF) /* \_SB_.I2C1.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((I10A == Zero) || (L21D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.I2C1.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.I2C1.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, I11A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + } + + Device (I2C2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID + Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (_DDN, "Intel(R) I2C Controller #2 - 80860F42") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y19) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000021, + } + FixedDMA (0x0012, 0x0002, Width32bit, ) + FixedDMA (0x0013, 0x0003, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.I2C2._Y19._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.I2C2._Y19._LEN, B0LN) // _LEN: Length + B0BA = I20A /* \I20A */ + B0LN = I20L /* \I20L */ + Return (RBUF) /* \_SB_.I2C2.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((I20A == Zero) || (L22D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.I2C2.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.I2C2.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, I21A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + PowerResource (CLK0, 0x00, 0x0000) + { + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (CKC0) /* \CKC0 */ + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + CKC0 = One + CKF0 = One + Sleep (0x20) + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + CKC0 = 0x02 + } + } + + PowerResource (CLK1, 0x00, 0x0000) + { + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (CKC1) /* \CKC1 */ + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + CKC1 = One + CKF1 = One + Sleep (0x20) + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + CKC1 = 0x02 + } + } + + Device (RTEK) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "10EC5640" /* Realtek I2S Audio Codec */) // _HID: Hardware ID + Name (_CID, "10EC5640" /* Realtek I2S Audio Codec */) // _CID: Compatible ID + Name (_DDN, "RTEK Codec Controller ") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (CHAN, Package (0x02) + { + One, + 0x017D7840 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x001C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0004 + } + }) + Return (SBUF) /* \_SB_.I2C2.RTEK._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + CKC3 = Zero + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + CKC3 = One + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_1, Zero) // _T_x: Emitted by ASL Compiler + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("a9240c44-f032-454d-80e5-7aeed80e9551"))) + { + CreateByteField (Arg3, Zero, FARG) + While (One) + { + _T_0 = Arg2 + If ((_T_0 == 0x03)) + { + While (One) + { + _T_1 = Arg3 + If ((_T_1 == Zero)) + { + Return (0x11) + } + Else + { + If ((_T_1 == 0x04)) + { + Return (Buffer (0x34) + { + /* 0000 */ 0x06, 0x00, 0x00, 0xCE, 0x1D, 0x00, 0x01, 0x00, /* ........ */ + /* 0008 */ 0x03, 0x40, 0xBB, 0x00, 0x40, 0x00, 0x01, 0x00, /* .@..@... */ + /* 0010 */ 0x01, 0x00, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, /* ....F... */ + /* 0018 */ 0x02, 0x00, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, /* ....E... */ + /* 0020 */ 0x01, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x01, 0x00, /* ........ */ + /* 0028 */ 0x00, 0x01, 0x0D, 0x00, 0x1D, 0x00, 0x01, 0x00, /* ........ */ + /* 0030 */ 0x86, 0x86, 0x01, 0x00 /* .... */ + }) + } + Else + { + Return (0x80000002) + } + } + + Break + } + } + + Break + } + } + + Return (0x80000002) + } + } + + Device (TTLV) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "10TI3100") // _HID: Hardware ID + Name (_CID, "10TI3100") // _CID: Compatible ID + Name (_DDN, "TI TLV320AIC3100 Codec Controller ") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (OBJ1, Package (0x0A) + { + One, + 0x017D7840, + One, + 0x97, + One, + 0x86, + One, + One, + 0x14, + 0xB3 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x0018, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.TTLV._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + + Method (_DIS, 0, NotSerialized) // _DIS: Disable Device + { + } + } + + Device (CAM1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33BE" /* Camera Sensor OV5693 */) // _HID: Hardware ID + Name (_CID, "INT33BE" /* Camera Sensor OV5693 */) // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "OV5693") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMIC + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28X, + P18X, + CLK0 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* i....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM1.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((RCAS == 0x02) && (PMID == One)) && (OSSL & 0x80 + ))) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM1._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT33BE") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("OV5693") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("12P2BA536") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0102) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return ("AD5823") + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x04001000) + } + + If ((Arg2 == 0x03)) + { + Return (0x04000C01) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001800) + } + + If ((Arg2 == 0x03)) + { + Return (0x01011501) + } + } + + Return (Zero) + } + } + + Device (CAM3) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INTCF1B") // _HID: Hardware ID + Name (_CID, "INTCF1B") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "Sony IMX134") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMIC + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28X, + P18X, + CLK0 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* i....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM3.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((RCAS == One) && (PMID == One)) && (OSSL & 0x80 + ))) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + I2cSerialBus (0x0054, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM3._CRS.SBUF */ + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + CKC0 = 0x02 + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + CKC0 = One + CKF0 = One + Sleep (0x05) + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INTCF1A") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("IMX175") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("13P2BA807") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0104) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (0x02) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (0x03) + } + + If ((Arg2 == 0x02)) + { + Return (0x04001000) + } + + If ((Arg2 == 0x03)) + { + Return (0x04000C01) + } + + If ((Arg2 == 0x04)) + { + Return (0x04005402) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001800) + } + } + + Return (Zero) + } + } + + Device (CAM2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT5648") // _HID: Hardware ID + Name (_CID, "INT5648") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "OV5648") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMI1 + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28X, + P18X, + CLK0 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* i....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM2.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM2._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT5648") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("OV5648") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("MTD5648") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0102) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return ("DW9714") + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x04003600) + } + + If ((Arg2 == 0x03)) + { + Return (0x04000C01) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001801) + } + + If ((Arg2 == 0x03)) + { + Return (0x1500) + } + } + + Return (Zero) + } + } + + Device (CAM4) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F8") // _HID: Hardware ID + Name (_CID, "INT33F8") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "GC2235") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMI1 + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28P, + P18P, + CLK0 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* i....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM4.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((RCAS == 0x03) && (PMID == 0x05)) && (OSSL & 0x80 + ))) + { + Return (Zero) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM4._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT33F8") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("GC2235") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("13P2BA807") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0101) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x02003C00) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001100) + } + + If ((Arg2 == 0x03)) + { + Return (0x1501) + } + } + + Return (Zero) + } + } + + Device (CAM5) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F8") // _HID: Hardware ID + Name (_CID, "INT33F8") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "GC2235") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMI1 + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28P, + P18P, + CLK1 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* a....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM5.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((FCAS == 0x02) && (PMID == 0x05)) && (OSSL & 0x80 + ))) + { + Return (0x0F) + } + + Return (0x0F) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM5._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT33F8") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("GC2235") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("GNDF130874") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0101) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (0x02) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x04003C00) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001200) + } + + If ((Arg2 == 0x03)) + { + Return (0x00011601) + } + } + + Return (Zero) + } + } + + Device (CAM6) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F8") // _HID: Hardware ID + Name (_CID, "INT33F8") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "GC2235") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMI2 + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28T, + P18T, + CLK0 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x69, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* i....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM6.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((RCAS == 0x03) && (PMID == 0x06)) && (OSSL & 0x80 + ))) + { + Return (Zero) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM6._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT33F8") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("GC2235") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("13P2BA807") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0101) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x02003C00) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001100) + } + + If ((Arg2 == 0x03)) + { + Return (0x01001501) + } + } + + Return (Zero) + } + } + + Device (CAM7) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F8") // _HID: Hardware ID + Name (_CID, "INT33F8") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "GC2235") // _DDN: DOS Device Name + Name (_UID, 0x02) // _UID: Unique ID + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^^I2C5.PMI2 + }) + Name (_PR0, Package (0x03) // _PR0: Power Resources for D0 + { + P28T, + P1XT, + CLK1 + }) + Name (PLDB, Package (0x01) + { + Buffer (0x14) + { + /* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ + /* 0008 */ 0x61, 0x0C, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, /* a....... */ + /* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF /* .... */ + } + }) + Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device + { + Return (PLDB) /* \_SB_.I2C2.CAM7.PLDB */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((((FCAS == 0x02) && (PMID == 0x06)) && (OSSL & 0x80 + ))) + { + Return (Zero) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + I2cSerialBus (0x003C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.CAM7._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INT33F8") + } + + If ((Arg0 == ToUUID ("3c62aaaa-d8e0-401a-84c3-fc05656fa28c"))) + { + Return ("GC2235") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("GNDF130874") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("918ab242-c37c-450a-9d0f-f47ab97c3dea"))) + { + Return (0x0101) + } + + If ((Arg0 == ToUUID ("ea3b7bd8-e09b-4239-ad6e-ed525f3f26ab"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("b65ac492-9e30-4d60-b5b2-f497c790d9cf"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("e770ab0f-2644-4bab-8628-d62f1683fb9d"))) + { + Return (0x02) + } + + If ((Arg0 == ToUUID ("1ea54ab2-cd84-48cc-9dd4-7f594ec3b015"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("8dbe2651-70c1-4c6f-ac87-a37cb46e4af6"))) + { + Return (One) + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x04003C00) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x02) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001200) + } + + If ((Arg2 == 0x03)) + { + Return (0x00011601) + } + } + + Return (Zero) + } + } + + Device (STRA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INTCF1C") // _HID: Hardware ID + Name (_CID, "INTCF1C") // _CID: Compatible ID + Name (_SUB, "INTL0000") // _SUB: Subsystem ID + Name (_DDN, "Flash LM3554") // _DDN: DOS Device Name + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0013 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0014 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0010 + } + I2cSerialBus (0x0053, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C2.STRA._CRS.SBUF */ + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("377ba76a-f390-4aff-ab38-9b1bf33a3015"))) + { + Return ("INTCF1C") + } + + If ((Arg0 == ToUUID ("822ace8f-2814-4174-a56b-5f029fe079ee"))) + { + Return ("LM3554") + } + + If ((Arg0 == ToUUID ("2959512a-028c-4646-b73d-4d1b5672fad8"))) + { + If ((BDID == 0x04)) + { + If ((FBID == 0x02)) + { + Return ("INTEL_FFRD") + } + + If ((FBID == 0x03)) + { + Return ("INTEL_FFRD") + } + } + + Return ("INTEL_RVP") + } + + If ((Arg0 == ToUUID ("75c9a639-5c8a-4a00-9f48-a9c3b5da789f"))) + { + Return (Zero) + } + + If ((Arg0 == ToUUID ("26257549-9271-4ca4-bb43-c4899d5a4881"))) + { + If ((Arg2 == One)) + { + Return (One) + } + + If ((Arg2 == 0x02)) + { + Return (0x04005300) + } + } + + If ((Arg0 == ToUUID ("79234640-9e10-4fea-a5c1-b5aa8b19756f"))) + { + If ((Arg2 == One)) + { + Return (0x04) + } + + If ((Arg2 == 0x02)) + { + Return (0x01001302) + } + + If ((Arg2 == 0x03)) + { + Return (0x01001403) + } + + If ((Arg2 == 0x04)) + { + Return (0x01001001) + } + + If ((Arg2 == 0x05)) + { + Return (0x01001104) + } + } + + Return (Zero) + } + } + + Device (TCS0) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "GODX0911") // _HID: Hardware ID + Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) // _CID: Compatible ID + Name (_S0W, Zero) // _S0W: S0 Device Wake State + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + GPO1, + I2C5 + }) + Method (_PS3, 0, Serialized) // _PS3: Power State 3 + { + If ((^^^I2C5.PMIC.AVBG == One)) {} + } + + Method (_PS0, 0, Serialized) // _PS0: Power State 0 + { + If ((^^^GPO1.AVBL == One)) + { + ^^^GPO1.TCD3 = Zero + } + + Sleep (0x05) + If ((^^^I2C5.PMIC.AVBG == One)) {} + Sleep (0x1E) + If ((^^^GPO1.AVBL == One)) + { + ^^^GPO1.TCD3 = One + } + + Sleep (0x78) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0044 + } + }) + Name (ABUF, ResourceTemplate () + { + I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0, + AddressingMode7Bit, "\\_SB.I2C2", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0044 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001A + } + }) + If ((OSSL && 0x80)) + { + Return (ABUF) /* \_SB_.I2C2.TCS0._CRS.ABUF */ + } + Else + { + Return (RBUF) /* \_SB_.I2C2.TCS0._CRS.RBUF */ + } + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_1, Zero) // _T_x: Emitted by ASL Compiler + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + Debug = "Method _DSM begin" + If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + While (One) + { + _T_1 = ToInteger (Arg1) + If ((_T_1 == One)) + { + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x03 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + + Break + } + } + Else + { + If ((_T_0 == One)) + { + Debug = "Method _DSM Function HID" + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Break + } + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL == 0x83)) + { + Return (0x0F) + } + + Return (Zero) + } + } + } + + Device (I2C3) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID + Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) I2C Controller #3 - 80860F43") // _DDN: DOS Device Name + Name (_UID, 0x03) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y1A) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000022, + } + FixedDMA (0x0014, 0x0004, Width32bit, ) + FixedDMA (0x0015, 0x0005, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.I2C3._Y1A._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.I2C3._Y1A._LEN, B0LN) // _LEN: Length + B0BA = I30A /* \I30A */ + B0LN = I30L /* \I30L */ + Return (RBUF) /* \_SB_.I2C3.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((I30A == Zero) || (L23D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.I2C3.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.I2C3.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, I31A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (STAC) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "STAC0303") // _HID: Hardware ID + Name (_CID, "INTACCL") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((ACCS == 0x02)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0019, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + }) + Return (RBUF) /* \_SB_.I2C3.STAC._CRS.RBUF */ + } + } + + Device (STMA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "STMA0303") // _HID: Hardware ID + Name (_CID, "INTMAGN") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((ACCS == 0x02)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x001E, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005F + } + GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x003A + } + }) + Return (RBUF) /* \_SB_.I2C3.STMA._CRS.RBUF */ + } + } + + Device (STGY) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "STGY0320") // _HID: Hardware ID + Name (_CID, "INTGYRO") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((GYRS == 0x02)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + GpioInt (Level, ActiveHigh, Exclusive, PullDown, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005E + } + }) + Return (RBUF) /* \_SB_.I2C3.STGY._CRS.RBUF */ + } + } + + Device (FUSI) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "FUSI0001") // _HID: Hardware ID + Name (_CID, "INTFUSI") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveHigh, Exclusive, PullDown, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0017 + } + GpioInt (Edge, ActiveLow, Exclusive, PullDown, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0006 + } + }) + Return (RBUF) /* \_SB_.I2C3.FUSI._CRS.RBUF */ + } + } + + Device (ALSW) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "JSA01212") // _HID: Hardware ID + Name (_CID, "INTLALS") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0044, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0006 + } + }) + Return (RBUF) /* \_SB_.I2C3.ALSW._CRS.RBUF */ + } + } + + Device (SPBA) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "KXCJ9000") // _HID: Hardware ID + Name (_CID, "INTACCL") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((ACCS == One)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x000F, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0017 + } + }) + Return (RBUF) /* \_SB_.I2C3.SPBA._CRS.RBUF */ + } + } + + Device (SPBM) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "CPAK8963") // _HID: Hardware ID + Name (_CID, "INTMAGN") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((ACCS == One)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0013, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + }) + Return (RBUF) /* \_SB_.I2C3.SPBM._CRS.RBUF */ + } + } + + Device (SPBG) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "BSBG0160") // _HID: Hardware ID + Name (_CID, "INTGYRO") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + If ((GYRS == One)) + { + Return (0x0F) + } + + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C3", + 0x00, ResourceConsumer, , + ) + }) + Return (RBUF) /* \_SB_.I2C3.SPBG._CRS.RBUF */ + } + } + + Device (SAR1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "SASX9500") // _HID: Hardware ID + Name (_CID, "INTSRCL") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, Exclusive, PullDown, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0013 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0014 + } + }) + Return (RBUF) /* \_SB_.I2C3.SAR1._CRS.RBUF */ + } + } + } + + Device (MDM) + { + Name (_HID, EisaId ("MCD0001")) // _HID: Hardware ID + Name (_CID, "MCD0001") // _CID: Compatible ID + Name (CPU, "ValleyView2") + Name (MDMN, "XMM_6260") + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0017 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001E + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001C + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001D + } + }) + Return (UBUF) /* \_SB_.MDM_._CRS.UBUF */ + } + } + + Device (I2C4) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID + Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) I2C Controller #4 - 80860F44") // _DDN: DOS Device Name + Name (_UID, 0x04) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y1B) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000023, + } + FixedDMA (0x0016, 0x0006, Width32bit, ) + FixedDMA (0x0017, 0x0007, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.I2C4._Y1B._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.I2C4._Y1B._LEN, B0LN) // _LEN: Length + B0BA = I40A /* \I40A */ + B0LN = I40L /* \I40L */ + Return (RBUF) /* \_SB_.I2C4.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((I40A == Zero) || (L24D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.I2C4.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.I2C4.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, I41A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Device (TCS0) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "GODX0911") // _HID: Hardware ID + Name (_CID, "PNP0C50" /* HID Protocol Device (I2C bus) */) // _CID: Compatible ID + Name (_S0W, Zero) // _S0W: S0 Device Wake State + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + GPO1, + I2C5 + }) + Method (_PS3, 0, Serialized) // _PS3: Power State 3 + { + If ((^^^I2C5.PMIC.AVBG == One)) {} + } + + Method (_PS0, 0, Serialized) // _PS0: Power State 0 + { + If ((^^^GPO1.AVBL == One)) + { + ^^^GPO1.TCD3 = Zero + } + + Sleep (0x05) + If ((^^^I2C5.PMIC.AVBG == One)) {} + Sleep (0x1E) + If ((^^^GPO1.AVBL == One)) + { + ^^^GPO1.TCD3 = One + } + + Sleep (0x78) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0, + AddressingMode7Bit, "\\_SB.I2C4", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0044 + } + }) + Name (ABUF, ResourceTemplate () + { + I2cSerialBus (0x0014, ControllerInitiated, 0x0019F0A0, + AddressingMode7Bit, "\\_SB.I2C4", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0044 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001A + } + }) + If ((OSSL && 0x80)) + { + Return (ABUF) /* \_SB_.I2C4.TCS0._CRS.ABUF */ + } + Else + { + Return (RBUF) /* \_SB_.I2C4.TCS0._CRS.RBUF */ + } + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_1, Zero) // _T_x: Emitted by ASL Compiler + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + Debug = "Method _DSM begin" + If ((Arg0 == ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */)) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + While (One) + { + _T_1 = ToInteger (Arg1) + If ((_T_1 == One)) + { + Debug = "Method _DSM Function Query" + Return (Buffer (One) + { + 0x03 /* . */ + }) + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + + Break + } + } + Else + { + If ((_T_0 == One)) + { + Debug = "Method _DSM Function HID" + Return (Zero) + } + Else + { + Return (Zero) + } + } + + Break + } + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL == 0x83)) + { + Return (Zero) + } + + Return (0x0F) + } + } + } + + Device (I2C5) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _HID: Hardware ID + Name (_CID, "80860F41" /* Intel Baytrail I2C Host Controller */) // _CID: Compatible ID + Name (_DDN, "Intel(R) I2C Controller #5 - 80860F45") // _DDN: DOS Device Name + Name (_UID, 0x05) // _UID: Unique ID + Method (_SEM, 0, NotSerialized) + { + If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06))) + { + ADBG ("$COVE") + Return (One) + } + Else + { + ADBG ("CCOVE") + Return (Zero) + } + } + + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + PEPD + }) + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0x00000000, // Address Base + 0x00001000, // Address Length + _Y1C) + Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, ) + { + 0x00000024, + } + FixedDMA (0x0018, 0x0000, Width32bit, ) + FixedDMA (0x0019, 0x0001, Width32bit, ) + }) + Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision + { + Return (SOCS) /* \SOCS */ + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + CreateDWordField (RBUF, \_SB.I2C5._Y1C._BAS, B0BA) // _BAS: Base Address + CreateDWordField (RBUF, \_SB.I2C5._Y1C._LEN, B0LN) // _LEN: Length + B0BA = I50A /* \I50A */ + B0LN = I50L /* \I50L */ + Return (RBUF) /* \_SB_.I2C5.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((I50A == Zero) || (L25D == One))) + { + Return (Zero) + } + + Return (0x0F) + } + + Method (_PS3, 0, NotSerialized) // _PS3: Power State 3 + { + If ((((PMID == 0x04) || (PMID == 0x05)) || (PMID == 0x06))) + { + Return (Zero) + } + + PSAT |= 0x03 + Local0 = PSAT /* \_SB_.I2C5.PSAT */ + } + + Method (_PS0, 0, NotSerialized) // _PS0: Power State 0 + { + PSAT &= 0xFFFFFFFC + Local0 = PSAT /* \_SB_.I2C5.PSAT */ + } + + OperationRegion (KEYS, SystemMemory, I51A, 0x0100) + Field (KEYS, DWordAcc, NoLock, WriteAsZeros) + { + Offset (0x84), + PSAT, 32 + } + + Name (XPMC, ResourceTemplate () + { + I2cSerialBus (0x0034, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C5", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (XSCG, GenericSerialBus, Zero, 0x0100) + Field (XSCG, BufferAcc, NoLock, Preserve) + { + Connection (XPMC), + AccessAs (BufferAcc, AttribByte), + XP00, 8 + } + + Field (XSCG, BufferAcc, NoLock, Preserve) + { + Connection (XPMC), + Offset (0x2C), + AccessAs (BufferAcc, AttribByte), + XP2C, 8, + XP2D, 8, + XP2E, 8, + XP2F, 8, + XP30, 8, + XP31, 8, + XP32, 8 + } + + Field (XSCG, BufferAcc, NoLock, Preserve) + { + Connection (XPMC), + Offset (0x2C), + AccessAs (BufferAcc, AttribBytes (0x0A)), + XPCG, 8 + } + } + + Scope (I2C5) + { + Device (PMI1) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F4" /* XPOWER PMIC Controller */) // _HID: Hardware ID + Name (_CID, "INT33F4" /* XPOWER PMIC Controller */) // _CID: Compatible ID + Name (_DDN, "XPOWER PMIC Controller") // _DDN: DOS Device Name + Name (_HRV, 0x02) // _HRV: Hardware Revision + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x0034, ControllerInitiated, 0x000F4240, + AddressingMode7Bit, "\\_SB.I2C5", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + }) + Return (SBUF) /* \_SB_.I2C5.PMI1._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMEN == Zero)) + { + Return (Zero) + } + + If ((PMID == 0x05)) + { + ADBG ("XPWR_DCOVE") + Return (0x0F) + } + + Return (Zero) + } + + OperationRegion (PMOP, 0x8D, Zero, 0x0100) + Field (PMOP, DWordAcc, NoLock, Preserve) + { + ALD1, 32, + ALD2, 32, + ALD3, 32, + DLD1, 32, + DLD2, 32, + DLD3, 32, + DLD4, 32, + ELD1, 32, + ELD2, 32, + ELD3, 32, + FLD1, 32, + FLD2, 32, + FLD3, 32, + BUC1, 32, + BUC2, 32, + BUC3, 32, + BUC4, 32, + BUC5, 32, + BUC6, 32, + GPI1, 32 + } + + OperationRegion (DPTF, 0x8C, Zero, 0x0100) + Field (DPTF, DWordAcc, NoLock, Preserve) + { + TMP0, 32, + AX00, 32, + AX01, 32, + TMP1, 32, + AX10, 32, + AX11, 32, + TMP2, 32, + AX20, 32, + AX21, 32, + TMP3, 32, + AX30, 32, + AX31, 32, + TMP4, 32, + AX40, 32, + AX41, 32, + TMP5, 32, + AX50, 32, + AX51, 32, + PEN0, 32, + PEN1, 32, + PEN2, 32, + PEN3, 32, + PEN4, 32, + PEN5, 32 + } + + Name (LPAT, Package (0x44) + { + 0x091B, + 0x3952, + 0x094D, + 0x2B69, + 0x097F, + 0x2135, + 0x09B1, + 0x19A7, + 0x09E3, + 0x13FE, + 0x0A15, + 0x0FB8, + 0x0A47, + 0x0C74, + 0x0A79, + 0x09EE, + 0x0AAB, + 0x07F9, + 0x0ADD, + 0x0674, + 0x0B0F, + 0x0540, + 0x0B41, + 0x044D, + 0x0B73, + 0x038A, + 0x0BA5, + 0x02EE, + 0x0BD7, + 0x0270, + 0x0C09, + 0x0209, + 0x0C3B, + 0x01B6, + 0x0C6D, + 0x0171, + 0x0C9F, + 0x0138, + 0x0CD1, + 0x0109, + 0x0D03, + 0xE2, + 0x0D35, + 0xC2, + 0x0D67, + 0xA7, + 0x0D99, + 0x90, + 0x0DCB, + 0x7D, + 0x0DFD, + 0x6D, + 0x0E2F, + 0x5F, + 0x0E61, + 0x53, + 0x0E93, + 0x49, + 0x0EC5, + 0x40, + 0x0EF7, + 0x39, + 0x0F29, + 0x32, + 0x0F5B, + 0x2D, + 0x0F8D, + 0x28 + }) + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0020 + } + ), + GMP0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0021 + } + ), + GX00, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0022 + } + ), + GX01, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0023 + } + ), + GMP1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0024 + } + ), + GX10, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0025 + } + ), + GX11, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + ), + GMP2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0027 + } + ), + GX20, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + ), + GX21, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0029 + } + ), + GMP3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002A + } + ), + GX30, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002B + } + ), + GX31, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002C + } + ), + GMP4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002D + } + ), + GX40, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002E + } + ), + GX41, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002F + } + ), + GMP5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0030 + } + ), + GX50, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0031 + } + ), + GX51, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0032 + } + ), + GEN0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0033 + } + ), + GEN1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0034 + } + ), + GEN2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0035 + } + ), + GEN3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0036 + } + ), + GEN4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0037 + } + ), + GEN5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0040 + } + ), + G28X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0048 + } + ), + G18X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0053 + } + ), + GSDX, 1 + } + + Name (AVBL, Zero) + Name (AVBD, Zero) + Name (AVBG, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBG = Arg1 + } + + If ((Arg0 == 0x8D)) + { + AVBL = Arg1 + } + + If ((Arg0 == 0x8C)) + { + AVBD = Arg1 + } + } + } + + Device (PMI2) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33F5" /* TI PMIC Controller */) // _HID: Hardware ID + Name (_CID, "INT33F5" /* TI PMIC Controller */) // _CID: Compatible ID + Name (_DDN, "TI PMIC Controller") // _DDN: DOS Device Name + Name (_HRV, 0x02) // _HRV: Hardware Revision + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240, + AddressingMode7Bit, "\\_SB.I2C5", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + }) + Return (SBUF) /* \_SB_.I2C5.PMI2._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMEN == Zero)) + { + Return (Zero) + } + + If ((PMID == 0x06)) + { + ADBG ("TI_DCOVE") + Return (0x0F) + } + + Return (Zero) + } + + OperationRegion (PMOP, 0x8D, Zero, 0x0100) + Field (PMOP, DWordAcc, NoLock, Preserve) + { + LDO1, 32, + LDO2, 32, + LDO3, 32, + LDO5, 32, + LDO6, 32, + LDO7, 32, + LDO8, 32, + LDO9, 32, + LD10, 32, + LD11, 32, + LD12, 32, + LD13, 32, + LD14, 32 + } + + OperationRegion (DPTF, 0x8C, Zero, 0x0100) + Field (DPTF, DWordAcc, NoLock, Preserve) + { + TMP0, 32, + AX00, 32, + AX01, 32, + TMP1, 32, + AX10, 32, + AX11, 32, + TMP2, 32, + AX20, 32, + AX21, 32, + TMP3, 32, + AX30, 32, + AX31, 32, + TMP4, 32, + AX40, 32, + AX41, 32, + TMP5, 32, + AX50, 32, + AX51, 32, + PEN0, 32, + PEN1, 32, + PEN2, 32, + PEN3, 32, + PEN4, 32, + PEN5, 32 + } + + Name (LPAT, Package (0x44) + { + 0x091B, + 0x03F1, + 0x094D, + 0x03EB, + 0x097F, + 0x03E4, + 0x09B1, + 0x03DA, + 0x09E3, + 0x03CE, + 0x0A15, + 0x03BE, + 0x0A47, + 0x03AA, + 0x0A79, + 0x0392, + 0x0AAB, + 0x0375, + 0x0ADD, + 0x0353, + 0x0B0F, + 0x032C, + 0x0B41, + 0x0300, + 0x0B73, + 0x02D0, + 0x0BA5, + 0x029D, + 0x0BD7, + 0x0268, + 0x0C09, + 0x0232, + 0x0C3B, + 0x01FD, + 0x0C6D, + 0x01C9, + 0x0C9F, + 0x0197, + 0x0CD1, + 0x0169, + 0x0D03, + 0x013E, + 0x0D35, + 0x0117, + 0x0D67, + 0xF5, + 0x0D99, + 0xD6, + 0x0DCB, + 0xBB, + 0x0DFD, + 0xA3, + 0x0E2F, + 0x8E, + 0x0E61, + 0x7C, + 0x0E93, + 0x6C, + 0x0EC5, + 0x5E, + 0x0EF7, + 0x53, + 0x0F29, + 0x48, + 0x0F5B, + 0x3F, + 0x0F8D, + 0x38 + }) + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0020 + } + ), + GMP0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0021 + } + ), + GX00, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0022 + } + ), + GX01, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0023 + } + ), + GMP1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0024 + } + ), + GX10, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0025 + } + ), + GX11, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + ), + GMP2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0027 + } + ), + GX20, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + ), + GX21, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0029 + } + ), + GMP3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002A + } + ), + GX30, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002B + } + ), + GX31, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002C + } + ), + GMP4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002D + } + ), + GX40, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002E + } + ), + GX41, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002F + } + ), + GMP5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0030 + } + ), + GX50, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0031 + } + ), + GX51, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0032 + } + ), + GEN0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0033 + } + ), + GEN1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0034 + } + ), + GEN2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0035 + } + ), + GEN3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0036 + } + ), + GEN4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0037 + } + ), + GEN5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0045 + } + ), + GSDX, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0047 + } + ), + G28X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0048 + } + ), + G18X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0049 + } + ), + G18U, 1 + } + + Name (AVBL, Zero) + Name (AVBD, Zero) + Name (AVBG, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBG = Arg1 + } + + If ((Arg0 == 0x8D)) + { + AVBL = Arg1 + } + + If ((Arg0 == 0x8C)) + { + AVBD = Arg1 + } + } + } + + Device (PMIF) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "DMY0001") // _HID: Hardware ID + Name (_CID, "DMY0001") // _CID: Compatible ID + Name (_DDN, "Dummy PMIC controller") // _DDN: DOS Device Name + Name (_HRV, Zero) // _HRV: Hardware Revision + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x005E, ControllerInitiated, 0x000F4240, + AddressingMode7Bit, "\\_SB.I2C5", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + }) + Return (SBUF) /* \_SB_.I2C5.PMIF._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMEN == Zero)) + { + Return (Zero) + } + + If ((PMID == 0xFE)) + { + ADBG ("DMPMIC") + Return (0x0F) + } + + Return (Zero) + } + } + + Device (PMIC) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "INT33FD" /* Intel Baytrail Power Management IC */) // _HID: Hardware ID + Name (_CID, "INT33FD" /* Intel Baytrail Power Management IC */) // _CID: Compatible ID + Name (_DDN, "PMIC GPIO Controller") // _DDN: DOS Device Name + Name (_HRV, 0x02) // _HRV: Hardware Revision + Name (_UID, One) // _UID: Unique ID + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x006E, ControllerInitiated, 0x000F4240, + AddressingMode7Bit, "\\_SB.I2C5", + 0x00, ResourceConsumer, , + ) + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) + { + 0x00000043, + } + }) + Return (SBUF) /* \_SB_.I2C5.PMIC._CRS.SBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMEN == Zero)) + { + Return (Zero) + } + + If ((PMID == One)) + { + ADBG ("CCPMIC") + Return (0x0F) + } + + Return (Zero) + } + + OperationRegion (DPTF, 0x8C, Zero, 0x0100) + Field (DPTF, DWordAcc, NoLock, Preserve) + { + TMP0, 32, + AX00, 32, + AX01, 32, + TMP1, 32, + AX10, 32, + AX11, 32, + TMP2, 32, + AX20, 32, + AX21, 32, + TMP3, 32, + AX30, 32, + AX31, 32, + TMP4, 32, + AX40, 32, + AX41, 32, + TMP5, 32, + AX50, 32, + AX51, 32, + PEN0, 32, + PEN1, 32, + PEN2, 32, + PEN3, 32, + PEN4, 32, + PEN5, 32 + } + + OperationRegion (PMOP, 0x8D, Zero, 0x0100) + Field (PMOP, DWordAcc, NoLock, Preserve) + { + VSYS, 32, + SYSX, 32, + SYSU, 32, + SYSS, 32, + V50S, 32, + HOST, 32, + VBUS, 32, + HDMI, 32, + S285, 32, + X285, 32, + V33A, 32, + V33S, 32, + V33U, 32, + V33I, 32, + V18A, 32, + REFQ, 32, + V12A, 32, + V18S, 32, + V18X, 32, + V18U, 32, + V12X, 32, + V12S, 32, + V10A, 32, + V10S, 32, + V10X, 32, + V105, 32 + } + + OperationRegion (GPOP, GeneralPurposeIo, Zero, 0x0100) + Field (GPOP, ByteAcc, NoLock, Preserve) + { + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0020 + } + ), + GMP0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0021 + } + ), + GX00, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0022 + } + ), + GX01, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0023 + } + ), + GMP1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0024 + } + ), + GX10, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0025 + } + ), + GX11, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0026 + } + ), + GMP2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0027 + } + ), + GX20, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + ), + GX21, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0029 + } + ), + GMP3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002A + } + ), + GX30, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002B + } + ), + GX31, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002C + } + ), + GMP4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002D + } + ), + GX40, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002E + } + ), + GX41, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x002F + } + ), + GMP5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0030 + } + ), + GX50, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0031 + } + ), + GX51, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0032 + } + ), + GEN0, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0033 + } + ), + GEN1, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0034 + } + ), + GEN2, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0035 + } + ), + GEN3, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0036 + } + ), + GEN4, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0037 + } + ), + GEN5, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0040 + } + ), + GSYS, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0041 + } + ), + GYSX, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0042 + } + ), + GYSU, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0043 + } + ), + GYSS, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0044 + } + ), + G50S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0045 + } + ), + GOST, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0046 + } + ), + GBUS, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0047 + } + ), + GDMI, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0048 + } + ), + G28S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0049 + } + ), + G28X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004A + } + ), + G33A, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004B + } + ), + G33S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004C + } + ), + G33U, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004D + } + ), + G33I, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004E + } + ), + G18A, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x004F + } + ), + GEFQ, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0050 + } + ), + G12A, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0051 + } + ), + G18S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0052 + } + ), + G18X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0053 + } + ), + G18U, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0054 + } + ), + G12X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0055 + } + ), + G12S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0056 + } + ), + G10A, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0057 + } + ), + G10S, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0058 + } + ), + G10X, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0059 + } + ), + G105, 1, + Connection ( + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005E + } + ), + FCOT, 1 + } + + Name (AVBL, Zero) + Name (AVBD, Zero) + Name (AVBG, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x08)) + { + AVBG = Arg1 + } + + If ((Arg0 == 0x8D)) + { + AVBL = Arg1 + } + + If ((Arg0 == 0x8C)) + { + AVBD = Arg1 + } + } + + Name (LPAT, Package (0x30) + { + 0x09E3, + 0x03D1, + 0x0A15, + 0x03C1, + 0x0A47, + 0x03AD, + 0x0A79, + 0x0395, + 0x0AAB, + 0x0377, + 0x0ADD, + 0x0355, + 0x0B0F, + 0x032D, + 0x0B41, + 0x0301, + 0x0B73, + 0x02D0, + 0x0BA5, + 0x029D, + 0x0BD7, + 0x0267, + 0x0C09, + 0x0231, + 0x0C3B, + 0x01FC, + 0x0C6D, + 0x01C8, + 0x0C9F, + 0x0197, + 0x0CD1, + 0x0165, + 0x0D03, + 0x013B, + 0x0D35, + 0x0115, + 0x0D67, + 0xF3, + 0x0D99, + 0xD4, + 0x0DCB, + 0xBA, + 0x0DFD, + 0xA2, + 0x0E2F, + 0x8C, + 0x0E93, + 0x6B + }) + } + } + + Scope (I2C1) + { + Device (IMP3) + { + Name (_ADR, Zero) // _ADR: Address + Name (_HID, "IMPJ0003") // _HID: Hardware ID + Name (_CID, "IMPJ0003") // _CID: Compatible ID + Name (_UID, One) // _UID: Unique ID + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PSSD == 0x02)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (SBUF, ResourceTemplate () + { + I2cSerialBus (0x006E, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + Return (SBUF) /* \_SB_.I2C1.IMP3._CRS.SBUF */ + } + } + } + + PowerResource (P28X, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMIC + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G28X = Zero + If ((^^I2C5.PMIC.AVBL == One)) + { + Return (^^I2C5.PMIC.X285) /* \_SB_.I2C5.PMIC.X285 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMIC.AVBL == One)) + { + ^^I2C5.PMIC.X285 = One + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G28X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMIC.AVBL == One)) + { + ^^I2C5.PMIC.X285 = Zero + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G28X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P18X, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMIC + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G18X = Zero + If ((^^I2C5.PMIC.AVBL == One)) + { + Return (^^I2C5.PMIC.V18X) /* \_SB_.I2C5.PMIC.V18X */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMIC.AVBL == One)) + { + ^^I2C5.PMIC.V18X = One + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G18X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMIC.AVBL == One)) + { + ^^I2C5.PMIC.V18X = Zero + If ((^^I2C5.PMIC.AVBG == One)) + { + ^^I2C5.PMIC.G18X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P28P, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMI1 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G28X = Zero + If ((^^I2C5.PMI1.AVBL == One)) + { + Return (^^I2C5.PMI1.ALD1) /* \_SB_.I2C5.PMI1.ALD1 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMI1.AVBL == One)) + { + ^^I2C5.PMI1.ALD1 = One + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G28X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMI1.AVBL == One)) + { + ^^I2C5.PMI1.ALD1 = Zero + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G28X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P18P, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMI1 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G18X = Zero + If ((^^I2C5.PMI1.AVBL == One)) + { + Return (^^I2C5.PMI1.ELD2) /* \_SB_.I2C5.PMI1.ELD2 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMI1.AVBL == One)) + { + ^^I2C5.PMI1.ELD2 = One + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G18X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMI1.AVBL == One)) + { + ^^I2C5.PMI1.ELD2 = Zero + If ((^^I2C5.PMI1.AVBG == One)) + { + ^^I2C5.PMI1.G18X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P28T, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMI2 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G28X = Zero + If ((^^I2C5.PMI2.AVBL == One)) + { + Return (^^I2C5.PMI2.LDO9) /* \_SB_.I2C5.PMI2.LDO9 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LDO9 = One + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G28X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LDO9 = Zero + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G28X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P18T, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMI2 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18X = Zero + If ((^^I2C5.PMI2.AVBL == One)) + { + Return (^^I2C5.PMI2.LD10) /* \_SB_.I2C5.PMI2.LD10 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LD10 = One + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18X = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LD10 = Zero + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18X = One + Sleep (0x1E) + } + } + } + } + + PowerResource (P1XT, 0x05, 0x0000) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + ^I2C5.PMI2 + }) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18U = Zero + If ((^^I2C5.PMI2.AVBL == One)) + { + Return (^^I2C5.PMI2.LD11) /* \_SB_.I2C5.PMI2.LD11 */ + } + } + + Return (Zero) + } + + Method (_ON, 0, NotSerialized) // _ON_: Power On + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LD11 = One + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18U = One + Sleep (0x1E) + } + } + } + + Method (_OFF, 0, NotSerialized) // _OFF: Power Off + { + If ((^^I2C5.PMI2.AVBL == One)) + { + ^^I2C5.PMI2.LD11 = Zero + If ((^^I2C5.PMI2.AVBG == One)) + { + ^^I2C5.PMI2.G18U = One + Sleep (0x1E) + } + } + } + } + + Device (TBAD) + { + Name (_HID, "INTCFD9" /* Intel Baytrail SOC GPIO Controller */) // _HID: Hardware ID + Name (_CID, "PNP0C40" /* Standard Button Controller */) // _CID: Compatible ID + Name (_DDN, "Keyboard less system - 5 Button Array Device") // _DDN: DOS Device Name + Name (_DEP, Package (0x04) // _DEP: Dependencies + { + GPO0, + GPO2, + I2C5, + ^I2C5.PMI1 + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0010 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.I2C5.PMIC", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0007 + } + }) + Name (ABUF, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005F + } + }) + Name (BBUF, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x005F + } + }) + Name (RBU0, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0010 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + }) + Name (ABU0, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + }) + Name (BBU0, ResourceTemplate () + { + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0016 + } + GpioInt (Edge, ActiveBoth, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0015 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0000 + } + GpioInt (Edge, ActiveBoth, Exclusive, PullDefault, 0x0000, + "\\_SB.GPO0", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0028 + } + }) + If ((PMID == 0x05)) + { + If ((OSSL & 0x80)) + { + Return (ABUF) /* \_SB_.TBAD._CRS.ABUF */ + } + Else + { + Return (ABU0) /* \_SB_.TBAD._CRS.ABU0 */ + } + } + + If ((PMID == 0x06)) + { + If ((OSSL & 0x80)) + { + Return (BBUF) /* \_SB_.TBAD._CRS.BBUF */ + } + Else + { + Return (BBU0) /* \_SB_.TBAD._CRS.BBU0 */ + } + } + + Return (RBUF) /* \_SB_.TBAD._CRS.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method + { + Name (_T_0, Zero) // _T_x: Emitted by ASL Compiler + If ((Arg0 == ToUUID ("dfbcf3c5-e7a5-44e6-9c1f-29c76f6e059c") /* Power Button Device */)) + { + While (One) + { + _T_0 = ToInteger (Arg2) + If ((_T_0 == Zero)) + { + Return (Buffer (One) + { + 0x03 /* . */ + }) + } + Else + { + If ((_T_0 == One)) + { + Return (0x07) + } + } + + Break + } + } + Else + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + + Return (Zero) + } + } + + Device (MBID) + { + Name (_HID, "INT33BD" /* Intel Baytrail Mailbox Device */) // _HID: Hardware ID + Name (_CID, "INT33BD" /* Intel Baytrail Mailbox Device */) // _CID: Compatible ID + Name (_HRV, 0x02) // _HRV: Hardware Revision + Name (_UID, One) // _UID: Unique ID + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xE00000D0, // Address Base + 0x0000000C, // Address Length + ) + }) + Return (RBUF) /* \_SB_.MBID._CRS.RBUF */ + } + + OperationRegion (REGS, 0x87, Zero, 0x30) + Field (REGS, DWordAcc, NoLock, Preserve) + { + PORT, 32, + REG, 32, + DATA, 32, + MASK, 32, + BE, 32, + OP, 32 + } + + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x87)) + { + AVBL = Arg1 + } + } + + Method (READ, 3, Serialized) + { + Local0 = 0xFFFFFFFF + If ((AVBL == One)) + { + OP = Zero + PORT = Arg0 + REG = Arg1 + BE = Arg2 + Local0 = DATA /* \_SB_.MBID.DATA */ + } + + Return (Local0) + } + + Method (WRIT, 4, Serialized) + { + If ((AVBL == One)) + { + OP = One + PORT = Arg0 + REG = Arg1 + BE = Arg2 + DATA = Arg3 + } + } + + Method (MODI, 5, Serialized) + { + If ((AVBL == One)) + { + OP = 0x02 + PORT = Arg0 + REG = Arg1 + BE = Arg2 + DATA = Arg3 + MASK = Arg4 + } + } + } + + Device (PAGD) + { + Name (_HID, "ACPI000C" /* Processor Aggregator Device */) // _HID: Hardware ID + Name (_CID, "ACPI000C" /* Processor Aggregator Device */) // _CID: Compatible ID + Name (IDCN, Zero) + Name (PURP, Package (0x02) + { + One, + Zero + }) + Method (_PUR, 0, Serialized) // _PUR: Processor Utilization Request + { + Index (PURP, One) = IDCN /* \_SB_.PAGD.IDCN */ + Return (PURP) /* \_SB_.PAGD.PURP */ + } + + Method (_OST, 3, Serialized) // _OST: OSPM Status Indication + { + Debug = "_OST is invoked" + } + } + } + + Name (PICM, Zero) + Device (MDM) + { + Name (_HID, EisaId ("MCD0001")) // _HID: Hardware ID + Name (_CID, "MCD0001") // _CID: Compatible ID + Name (CPU, "ValleyView2") + Name (MDMN, "XMM_6260") + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (UBUF, ResourceTemplate () + { + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0017 + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001E + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionInputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001C + } + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x001D + } + }) + Return (UBUF) /* \MDM_._CRS.UBUF */ + } + } + + Scope (_SB.I2C1) + { + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x09)) + { + AVBL = Arg1 + } + } + + Device (SMUX) + { + Name (_HID, "SMSC3750" /* SMSC 3750 USB MUX */) // _HID: Hardware ID + Name (_CID, "SMSC3750" /* SMSC 3750 USB MUX */) // _CID: Compatible ID + Name (_DDN, "SMSC 3750 USB MUX") // _DDN: DOS Device Name + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0001 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C1.SMUX.RBUF */ + } + } + + Name (MUXW, ResourceTemplate () + { + I2cSerialBus (0x0068, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (MUXO, GenericSerialBus, Zero, 0x10) + Field (MUXO, BufferAcc, NoLock, Preserve) + { + Connection (MUXW), + AccessAs (BufferAcc, AttribByte), + MSTA, 8 + } + + Field (MUXO, BufferAcc, NoLock, Preserve) + { + Connection (MUXW), + Offset (0x01), + AccessAs (BufferAcc, AttribByte), + MCON, 8 + } + + Field (MUXO, BufferAcc, NoLock, Preserve) + { + Connection (MUXW), + Offset (0x02), + AccessAs (BufferAcc, AttribByte), + MCHG, 8 + } + + Field (MUXO, BufferAcc, NoLock, Preserve) + { + Connection (MUXW), + Offset (0x03), + AccessAs (BufferAcc, AttribByte), + MCST, 8 + } + + Device (GPOE) + { + Name (_HID, "INBC0000" /* GPIO Expander */) // _HID: Hardware ID + Name (_CID, "INBC0000" /* GPIO Expander */) // _CID: Compatible ID + Name (_DDN, "GPIO Expander") // _DDN: DOS Device Name + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((OSSL & 0x80)) + { + Return (0x0F) + } + + Return (Zero) + } + + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C1.GPOE.RBUF */ + } + } + + Name (IOEX, ResourceTemplate () + { + I2cSerialBus (0x0023, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (IOXO, GenericSerialBus, Zero, 0x20) + Field (IOXO, BufferAcc, NoLock, Preserve) + { + Connection (IOEX), + Offset (0x01), + AccessAs (BufferAcc, AttribByte), + INR1, 8 + } + + Field (IOXO, BufferAcc, NoLock, Preserve) + { + Connection (IOEX), + Offset (0x05), + AccessAs (BufferAcc, AttribByte), + OUTR, 8 + } + + Field (IOXO, BufferAcc, NoLock, Preserve) + { + Connection (IOEX), + Offset (0x0D), + AccessAs (BufferAcc, AttribByte), + CONR, 8 + } + } + + Scope (_TZ) + { + ThermalZone (TZ00) + { + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + \_SB.I2C5, + \_SB.I2C5.PMIC + }) + Method (_TMP, 0, Serialized) // _TMP: Temperature + { + If ((\_SB.I2C5.PMIC.AVBG == One)) + { + \_SB.I2C5.PMIC.GMP2 = Zero + If ((\_SB.I2C5.PMIC.AVBD == One)) + { + Return (\_SB.I2C5.PMIC.TMP2) + } + } + + Return (0x0AAC) + } + } + } + + Scope (_SB.PCI0) + { + Device (PDRC) + { + Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Name (BUF0, ResourceTemplate () + { + Memory32Fixed (ReadWrite, + 0xE0000000, // Address Base + 0x10000000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED01000, // Address Base + 0x00001000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED03000, // Address Base + 0x00001000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED04000, // Address Base + 0x00001000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED0C000, // Address Base + 0x00004000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED08000, // Address Base + 0x00001000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFED1C000, // Address Base + 0x00001000, // Address Length + ) + Memory32Fixed (ReadOnly, + 0xFEE00000, // Address Base + 0x00100000, // Address Length + ) + Memory32Fixed (ReadWrite, + 0xFEF00000, // Address Base + 0x00100000, // Address Length + ) + }) + } + } + + Method (BRTN, 1, Serialized) + { + If (((DID1 & 0x0F00) == 0x0400)) + { + Notify (\_SB.PCI0.GFX0.DD01, Arg0) + } + + If (((DID2 & 0x0F00) == 0x0400)) + { + Notify (\_SB.PCI0.GFX0.DD02, Arg0) + } + + If (((DID3 & 0x0F00) == 0x0400)) + { + Notify (\_SB.PCI0.GFX0.DD03, Arg0) + } + + If (((DID4 & 0x0F00) == 0x0400)) + { + Notify (\_SB.PCI0.GFX0.DD04, Arg0) + } + + If (((DID5 & 0x0F00) == 0x0400)) + { + Notify (\_SB.PCI0.GFX0.DD05, Arg0) + } + + If (CondRefOf (NDN3)) + { + NDN3 (Arg0) + } + } + + Scope (_SB.I2C1) + { + Device (SMFG) + { + Name (_HID, "MAX17047" /* Fuel Gauge Controller */) // _HID: Hardware ID + Name (_CID, "MAX17047" /* Fuel Gauge Controller */) // _CID: Compatible ID + Name (_DDN, "Fuel Gauge Controller") // _DDN: DOS Device Name + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0036, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0012 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C1.SMFG.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((BDID == 0x06) && (OSSL & 0x80))) + { + Return (0x0F) + } + + Return (Zero) + } + } + + Device (SMCG) + { + Name (_HID, "SMB0349" /* Charger */) // _HID: Hardware ID + Name (_CID, "SMB0349" /* Charger */) // _CID: Compatible ID + Name (_DDN, "Charger") // _DDN: DOS Device Name + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0035, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0002 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C1.SMCG.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((BDID == 0x06) && (OSSL & 0x80))) + { + Return (0x0F) + } + + Return (Zero) + } + } + + Device (TBCG) + { + Name (_HID, "TBQ24296" /* Charger */) // _HID: Hardware ID + Name (_CID, "TBQ24296" /* Charger */) // _CID: Compatible ID + Name (_DDN, "Charger") // _DDN: DOS Device Name + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullDefault, 0x0000, + "\\_SB.GPO2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0002 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C1.TBCG.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (((BDID == 0x06) && (OSSL & 0x80))) + { + Return (0x0F) + } + + Return (Zero) + } + } + } + + Scope (_SB.I2C1) + { + Name (MXFG, ResourceTemplate () + { + I2cSerialBus (0x0036, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (DVFG, GenericSerialBus, Zero, 0x0100) + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x05), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG05, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x10), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG10, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x17), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG17, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x18), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG18, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x09), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG09, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x0A), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG0A, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x11), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG11, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG00, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x03), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG03, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x1D), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG1D, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x2B), + AccessAs (BufferAcc, AttribBytes (0x02)), + FG2B, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x08), + AccessAs (BufferAcc, AttribBytes (0x02)), + THRM, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x06), + AccessAs (BufferAcc, AttribBytes (0x02)), + SOCR, 8 + } + + Field (DVFG, BufferAcc, NoLock, Preserve) + { + Connection (MXFG), + Offset (0x1C), + AccessAs (BufferAcc, AttribBytes (0x02)), + MXCU, 8 + } + + Name (SMBC, ResourceTemplate () + { + I2cSerialBus (0x0035, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (DVBC, GenericSerialBus, Zero, 0x0100) + Field (DVBC, BufferAcc, NoLock, Preserve) + { + Connection (SMBC), + AccessAs (BufferAcc, AttribByte), + BC00, 8, + BC01, 8, + BC02, 8, + BC03, 8, + BC04, 8, + BC05, 8, + BC06, 8, + BC07, 8, + BC08, 8, + BC09, 8, + BC0A, 8, + BC0B, 8, + BC0C, 8, + BC0D, 8, + BC0E, 8, + BC0F, 8, + BC10, 8 + } + + Field (DVBC, BufferAcc, NoLock, Preserve) + { + Connection (SMBC), + Offset (0x3D), + AccessAs (BufferAcc, AttribByte), + BC3D, 8 + } + + Field (DVBC, BufferAcc, NoLock, Preserve) + { + Connection (SMBC), + Offset (0x30), + AccessAs (BufferAcc, AttribByte), + BC30, 8 + } + + Field (DVBC, BufferAcc, NoLock, Preserve) + { + Connection (SMBC), + Offset (0x3E), + AccessAs (BufferAcc, AttribByte), + BC3E, 8 + } + + Field (DVBC, BufferAcc, NoLock, Preserve) + { + Connection (SMBC), + Offset (0x35), + AccessAs (BufferAcc, AttribBytes (0x06)), + BC35, 8 + } + + Name (BQBC, ResourceTemplate () + { + I2cSerialBus (0x006B, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + }) + OperationRegion (DVBQ, GenericSerialBus, Zero, 0x20) + Field (DVBQ, BufferAcc, NoLock, Preserve) + { + Connection (BQBC), + AccessAs (BufferAcc, AttribByte), + BQ00, 8, + BQ01, 8, + BQ02, 8, + BQ03, 8, + BQ04, 8, + BQ05, 8, + BQ06, 8, + BQ07, 8, + BQ08, 8, + BQ09, 8, + BQ0A, 8 + } + + Device (BATC) + { + Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Name (FGDV, 0x0A) + Name (BCCC, 0x60) + Name (BCCE, One) + Name (BCCL, 0xFFFFFFFF) + Name (BCLP, 0x1004) + Name (DSCP, 0x132A) + Name (DSVO, 0x0ED8) + Name (RECT, 0x1004) + Name (BTPC, Zero) + Name (AVCU, Zero) + Name (ACMD, 0xFF) + Name (_DEP, Package (0x03) // _DEP: Dependencies + { + I2C1, + GPO2, + GPO0 + }) + Name (BUFF, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BUFF, Zero, BYAT) + CreateByteField (BUFF, 0x02, DATA) + Name (BUF1, Buffer (0x06) + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ...... */ + }) + CreateByteField (BUF1, Zero, BSTA) + CreateByteField (BUF1, One, BLEN) + CreateDWordField (BUF1, 0x02, DAT1) + Name (BUF2, Buffer (0x04) + { + 0x00, 0x00, 0x00, 0x00 /* .... */ + }) + CreateByteField (BUF2, Zero, BSTS) + CreateByteField (BUF2, One, SLEN) + CreateWordField (BUF2, 0x02, WRD1) + Name (INBU, Buffer (0x08) + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ........ */ + }) + CreateByteField (INBU, Zero, INST) + CreateByteField (INBU, One, INLN) + CreateByteField (INBU, 0x02, INT0) + CreateByteField (INBU, 0x03, INT1) + CreateByteField (INBU, 0x04, INT2) + CreateByteField (INBU, 0x05, INT3) + CreateByteField (INBU, 0x06, INT4) + CreateByteField (INBU, 0x07, INT5) + Method (CLIM, 0, NotSerialized) + { + BUFF = MSTA /* \_SB_.I2C1.MSTA */ + Local1 = 0x02 + Sleep (0x64) + ADBG ("CLIM") + ADBG (DATA) + If ((DATA & 0x10)) + { + If ((DATA & 0xE0)) + { + Local0 = (DATA & 0xE0) + If (((Local0 == 0xA0) || (Local0 == 0x60))) + { + ADBG ("CLIM----1") + Local1 = 0x02 + } + + If (((Local0 == 0x40) || (Local0 == 0x20))) + { + ADBG ("CLIM----2") + Local1 = 0x07 + } + + If ((Local0 == 0x80)) + { + ADBG ("CLIM----3") + Local1 = Zero + } + } + } + + Return (Local1) + } + + Name (BIXP, Package (0x14) + { + Zero, + One, + 0xFFFFFFFF, + 0xFFFFFFFF, + One, + 0xFFFFFFFF, + 0x0A, + 0x04, + Zero, + 0x00017318, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x88B8, + 0x61A8, + One, + One, + "SR Real Battery", + "123456789", + "LION", + "Intel SR 1" + }) + Name (BSTP, Package (0x04) + { + Zero, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Method (_BIX, 0, NotSerialized) // _BIX: Battery Information Extended + { + ADBG ("BIX") + If ((AVBL == One)) + { + BUF2 = FG10 /* \_SB_.I2C1.FG10 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 * 0x05) + Divide (Local2, FGDV, Local0, Local1) + Index (BIXP, 0x03) = Local1 + } + + BUF2 = FG17 /* \_SB_.I2C1.FG17 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Divide (Local1, 0x64, Local0, Local2) + Index (BIXP, 0x08) = Local2 + } + } + + Index (BIXP, 0x02) = DSCP /* \_SB_.I2C1.BATC.DSCP */ + Index (BIXP, 0x05) = DSVO /* \_SB_.I2C1.BATC.DSVO */ + Divide (DSCP, 0x0A, Local0, Local1) + Index (BIXP, 0x06) = Local1 + Divide (DSCP, 0x14, Local0, Local1) + Index (BIXP, 0x07) = Local1 + If ((ACMD == 0xFF)) + { + BUFF = INR1 /* \_SB_.I2C1.INR1 */ + If (((DATA & 0x20) == 0x20)) + { + ACMD = One + ADBG ("AC Mode") + } + Else + { + ACMD = Zero + ADBG ("Non-AC Mode") + } + } + + Return (BIXP) /* \_SB_.I2C1.BATC.BIXP */ + } + + Method (_BST, 0, NotSerialized) // _BST: Battery Status + { + If ((AVBL == One)) + { + ADBG ("BST") + BUFF = BQ09 /* \_SB_.I2C1.BQ09 */ + Local0 = (DATA & 0x80) + If ((Local0 == 0x80)) + { + BUFF = BQ05 /* \_SB_.I2C1.BQ05 */ + Local0 = (DATA & 0xCF) + DATA = Local0 + BQ05 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + + BUF2 = FG00 /* \_SB_.I2C1.FG00 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + } + + ADBG (Local1) + If ((Local1 != Zero)) + { + Local0 = (WRD1 & 0x02) + WRD1 = Local0 + FG00 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */ + } + + BUFF = BQ00 /* \_SB_.I2C1.BQ00 */ + Local0 = (DATA & 0x80) + If ((Local0 == 0x80)) + { + Local0 = (DATA & 0x7F) + DATA = Local0 + BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + BUFF = BQ07 /* \_SB_.I2C1.BQ07 */ + Local0 = (DATA | 0x80) + DATA = Local0 + BQ07 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + + BUFF = BQ08 /* \_SB_.I2C1.BQ08 */ + If ((BYAT != One)) + { + Local0 = (DATA >> 0x04) + Local0 &= 0x03 + If (((Local0 == One) || (Local0 == 0x02))) + { + Local1 = 0x02 + } + + If ((Local0 == Zero)) + { + Local1 = One + } + + If ((Local0 == 0x03)) + { + Local1 = Zero + } + + Index (BSTP, Zero) = Local1 + } + + BUF2 = FG0A /* \_SB_.I2C1.FG0A */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((Local1 & 0x8000)) + { + Local1 -= 0xFFFF + } + + Divide (Local1, FGDV, Local0, Local2) + Local1 = (Local2 * 0x9C) + Divide (Local1, 0x64, Local0, Local2) + Index (BSTP, One) = Local2 + } + + BUF2 = FG05 /* \_SB_.I2C1.FG05 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 * 0x05) + Divide (Local2, FGDV, Local0, Local1) + Index (BSTP, 0x02) = Local1 + } + + BUF2 = FG09 /* \_SB_.I2C1.FG09 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 >> 0x03) + Local1 = (Local2 * 0x0271) + Divide (Local1, 0x03E8, Local0, Local2) + Index (BSTP, 0x03) = Local2 + } + + BUFF = BQ01 /* \_SB_.I2C1.BQ01 */ + If ((BYAT != One)) + { + If ((BCCE == One)) + { + DATA |= 0x10 + BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + Else + { + DATA &= 0xEF + BQ01 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + + Local0 = DATA /* \_SB_.I2C1.BATC.DATA */ + ADBG ("Charger enable") + ADBG (Local0) + } + + BUFF = BQ02 /* \_SB_.I2C1.BQ02 */ + If ((BYAT != One)) + { + Local1 = BCCC /* \_SB_.I2C1.BATC.BCCC */ + Local0 = DATA /* \_SB_.I2C1.BATC.DATA */ + Local2 = (Local0 & 0xFC) + If ((Local2 != Local1)) + { + ADBG ("UPD CU From") + ADBG (DATA) + Local2 = (DATA & 0x03) + DATA = (Local2 | Local1) + BQ02 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + + Local1 = DATA /* \_SB_.I2C1.BATC.DATA */ + ADBG ("Fast Current") + ADBG (Local1) + } + + If ((ACMD != One)) + { + Local3 = CLIM () + ADBG (Local3) + BUFF = BQ00 /* \_SB_.I2C1.BQ00 */ + If ((BYAT != One)) + { + Local2 = (DATA & 0x07) + If ((Local2 != Local3)) + { + Local2 = (DATA & 0xF8) + DATA = (Local2 | Local3) + BQ00 = BUFF /* \_SB_.I2C1.BATC.BUFF */ + } + } + + Local1 = DATA /* \_SB_.I2C1.BATC.DATA */ + ADBG ("Input Current") + ADBG (Local1) + } + } + + Return (BSTP) /* \_SB_.I2C1.BATC.BSTP */ + } + + Method (INTC, 0, NotSerialized) + { + BUFF = BQ08 /* \_SB_.I2C1.BQ08 */ + If ((BYAT != One)) + { + Local1 = DATA /* \_SB_.I2C1.BATC.DATA */ + } + + Return (Local1) + } + + Method (INTF, 0, NotSerialized) + { + ADBG ("INTF") + BUF2 = FG00 /* \_SB_.I2C1.FG00 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + } + + Return (Local1) + } + + Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point + { + BTPC = Arg0 + ADBG ("BTP") + ADBG (Arg0) + If ((AVBL == One)) + { + DAT1 = Arg0 + BLEN = 0x04 + BUF2 = FG2B /* \_SB_.I2C1.FG2B */ + If ((BSTS != One)) + { + Local1 = (WRD1 & 0xFFFC) + WRD1 = Local1 + FG2B = BUF2 /* \_SB_.I2C1.BATC.BUF2 */ + } + + BUF2 = FG1D /* \_SB_.I2C1.FG1D */ + If ((BSTS != One)) + { + Local1 = (WRD1 & 0xFFFB) + Local2 = (Local1 | 0x4004) + WRD1 = Local2 + FG1D = BUF2 /* \_SB_.I2C1.BATC.BUF2 */ + } + + BUF2 = SOCR /* \_SB_.I2C1.SOCR */ + If ((BSTS != One)) + { + Local0 = (WRD1 >> 0x08) + Local1 = (Local0 & 0xFF) + } + + Local2 = (Local1 + One) + Local3 = (Local1 - One) + Local1 = (Local2 << 0x08) + Local2 = (Local1 | Local3) + WRD1 = Local2 + FG03 = BUF2 /* \_SB_.I2C1.BATC.BUF2 */ + } + } + + Method (_BTM, 1, NotSerialized) // _BTM: Battery Time + { + ADBG ("BTM") + If ((Arg0 > 0x7530)) + { + Return (Zero) + } + + If ((AVBL == One)) + { + BUF2 = FG11 /* \_SB_.I2C1.FG11 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((Arg0 == Zero)) + { + Local2 = (Local1 >> 0x05) + Local1 = (Local2 * 0x03) + Local2 = (Local1 * 0x3C) + Return (Local2) + } + + BUF2 = FG05 /* \_SB_.I2C1.FG05 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 * 0x05) + Divide (Local2, FGDV, Local0, Local1) + Local0 = (Local1 * 0x0E10) + Divide (Local0, Arg0, Local1, Local2) + Return (Local2) + } + } + } + + Return (0xFFFFFFFF) + } + + Method (_BCT, 1, NotSerialized) // _BCT: Battery Charge Time + { + ADBG ("BCT") + If (((Arg0 > 0x64) || (Arg0 < One))) + { + Return (Zero) + } + + If ((AVBL == One)) + { + BUF2 = FG05 /* \_SB_.I2C1.FG05 */ + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((BSTS != One)) + { + Local2 = (Local1 * 0x05) + Divide (Local2, FGDV, Local0, Local1) + RECT = Local1 + } + + BUF2 = FG10 /* \_SB_.I2C1.FG10 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 * 0x05) + Divide (Local2, FGDV, Local0, Local1) + BCLP = Local1 + } + + BUF2 = FG0A /* \_SB_.I2C1.FG0A */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((Local1 & 0x8000)) + { + Return (Zero) + } + } + + Local0 = (BCLP * Arg0) + Local0 -= RECT /* \_SB_.I2C1.BATC.RECT */ + Local0 *= 0x0E10 + Divide (Local0, Local1, Local2, Local3) + Return (Local3) + } + + Return (0xFFFFFFFF) + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */)) + { + If ((Arg2 == 0x02)) + { + If ((Arg1 == Zero)) + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + } + + Return (Zero) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMID == 0x05)) + { + Return (Zero) + } + + If ((PMID == 0x06)) + { + Return (Zero) + } + + If ((AVBL == One)) + { + BUF2 = FG05 /* \_SB_.I2C1.FG05 */ + If ((BSTS != Zero)) + { + Return (Zero) + } + } + + Return (0x1F) + } + + Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List + { + Return (_SB) /* \_SB_ */ + } + + Method (PSOC, 0, NotSerialized) + { + If ((AVBL == One)) + { + BUF2 = SOCR /* \_SB_.I2C1.SOCR */ + If ((BSTS != One)) + { + Local0 = (WRD1 >> 0x08) + Local1 = (Local0 & 0xFF) + } + + Return (Local1) + } + + Return (Zero) + } + + Method (PMAX, 0, NotSerialized) + { + If ((AVBL == One)) + { + BUF2 = MXCU /* \_SB_.I2C1.MXCU */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((Local1 & 0x8000)) + { + Local0 = (Local1 >> 0x08) + Local1 = (Local0 & 0xFF) + Local0 = (0xFFFF - Local1) + Local1 = (Local0 * 0x04) + } + Else + { + Local0 = (Local1 >> 0x08) + Local2 = (Local0 & 0xFF) + Local1 = (Local2 * 0x04) + } + + Divide (Local1, 0x0A, Local0, Local2) + Divide (Local2, FGDV, Local0, Local1) + Local2 = (Local1 * 0x03E8) + Local1 = (DSVO * Local2) + Return (Local1) + } + } + + Return (Zero) + } + + Method (VMIN, 0, NotSerialized) + { + Return (0x0DAC) + } + + Method (APWR, 0, NotSerialized) + { + Return (0x0365C040) + } + + Method (NPWR, 0, NotSerialized) + { + Local3 = APWR () + If ((AVBL == One)) + { + BUF2 = FG0A /* \_SB_.I2C1.FG0A */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + If ((Local1 & 0x8000)) + { + Local1 -= 0xFFFF + } + + Divide (Local1, FGDV, Local0, Local2) + Local1 = (Local2 * 0x9C) + Divide (Local1, 0x64, Local0, Local2) + AVCU = Local2 + BUF2 = FG09 /* \_SB_.I2C1.FG09 */ + If ((BSTS != One)) + { + Local1 = WRD1 /* \_SB_.I2C1.BATC.WRD1 */ + Local2 = (Local1 >> 0x03) + Local1 = (Local2 * 0x0271) + Divide (Local1, 0x03E8, Local0, Local2) + } + + Local1 = (Local2 * AVCU) /* \_SB_.I2C1.BATC.AVCU */ + Local0 = (Local3 - Local1) + Return (Local0) + } + } + + Return (Local0) + } + + Method (PSRC, 0, NotSerialized) + { + If ((AVBL == One)) + { + BUFF = BQ08 /* \_SB_.I2C1.BQ08 */ + If ((BYAT != One)) + { + Local0 = DATA /* \_SB_.I2C1.BATC.DATA */ + Local0 = (DATA >> 0x06) + Local0 &= 0x03 + Return (Local0) + } + } + + Return (One) + } + + Method (CTYP, 0, NotSerialized) + { + Return (0x02) + } + + Method (ARTG, 0, NotSerialized) + { + Return (0x0365C040) + } + } + } + + Scope (_SB) + { + Device (ADP1) + { + Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID + Method (_PSR, 0, NotSerialized) // _PSR: Power Source + { + If ((^^GPO2.USID == Zero)) + { + Return (Zero) + } + + If ((PMID == One)) + { + If (CondRefOf (\_SB.I2C1.BATC, Local1)) + { + Local0 = ^^I2C1.BATC.PSRC () + If ((Local0 == Zero)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + + Return (One) + } + + If ((PMID == 0x05)) + { + If (CondRefOf (\_SB.I2C5.BMBT, Local1)) + { + Local0 = ^^I2C5.BMBT.PSRC () + If ((Local0 == Zero)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + } + + If ((PMID == 0x06)) + { + If (CondRefOf (\_SB.I2C5.TIBT, Local1)) + { + Local0 = ^^I2C5.TIBT.PSRC () + If ((Local0 == Zero)) + { + Return (Zero) + } + Else + { + Return (One) + } + } + } + + Return (One) + } + + Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List + { + Return (_SB) /* \_SB_ */ + } + } + } + + Scope (_SB.I2C5) + { + Device (BMDR) + { + Name (_HID, "INT33FE" /* XPOWER Battery Device */) // _HID: Hardware ID + Name (_CID, "INT33FE" /* XPOWER Battery Device */) // _CID: Compatible ID + Name (_DDN, "XPOWER Battery Device") // _DDN: DOS Device Name + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + PMI1 + }) + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000, + "\\_SB.I2C5.PMI1", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C5.BMDR.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMID == 0x05)) + { + Return (0x0F) + } + + Return (Zero) + } + + OperationRegion (BMOP, 0x9E, Zero, 0x0100) + Field (BMOP, DWordAcc, NoLock, Preserve) + { + SOC, 32, + FCCP, 32, + CHST, 32, + RMCP, 32, + VOLT, 32, + BATP, 32, + SRP0, 32, + STYP, 32, + CHGC, 32, + STPC, 32, + GADC, 32, + TTEM, 32, + TTCH, 32, + CYCL, 32, + BTP, 32, + DPCU, 32, + DSCP, 32 + } + + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x9E)) + { + AVBL = Arg1 + } + } + + Name (CHTP, Zero) + Method (SBTP, 0, NotSerialized) + { + ADBG ("SBTP") + ADBG ("XP00") + Name (BMUX, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BMUX, Zero, BBBY) + CreateByteField (BMUX, 0x02, DDDT) + BMUX = XP00 /* \_SB_.I2C5.XP00 */ + ADBG (BMUX) + If ((BBBY != One)) + { + If ((DDDT && 0x20)) + { + ADBG ("vbus on 2C") + BMUX = XP2C /* \_SB_.I2C5.XP2C */ + If ((BBBY != One)) + { + Local1 = 0x14 + While (((DDDT && 0x04) && (Local1 != Zero))) + { + Sleep (0x64) + BMUX = XP2C /* \_SB_.I2C5.XP2C */ + DDDT &= 0x04 + Local1 -= One + } + + If ((Local1 == Zero)) + { + ADBG ("timeout") + CHTP = Zero + } + Else + { + ADBG ("Det ok") + BMUX = XP2F /* \_SB_.I2C5.XP2F */ + Local0 = (DDDT >> 0x05) + CHTP = Local0 + } + } + Else + { + ADBG ("2C r Fail") + CHTP = Zero + } + } + Else + { + ADBG ("VBUS OFF") + CHTP = Zero + } + } + Else + { + ADBG ("00readFail") + CHTP = Zero + } + + ADBG (CHTP) + If (CondRefOf (\_SB.I2C5.BMBT, Local1)) + { + Notify (ADP1, 0x80) // Status Change + Notify (BMBT, 0x80) // Status Change + Notify (BMBT, 0x81) // Information Change + If (CondRefOf (\_SB.DPTF, Local3)) + { + Notify (DPTF, 0x86) // Device-Specific + Notify (TCHG, 0x80) // Status Change + } + + Notify (ADP1, 0x80) // Status Change + Return (One) + } + + Return (Zero) + } + + Method (PTYP, 0, NotSerialized) + { + ADBG ("PTYP") + Local0 = (PMID | 0x80) + Return (Local0) + } + } + + Device (TIDR) + { + Name (_HID, "INT33FE" /* XPOWER Battery Device */) // _HID: Hardware ID + Name (_CID, "INT33FE" /* XPOWER Battery Device */) // _CID: Compatible ID + Name (_DDN, "TI PMIC Battery Device") // _DDN: DOS Device Name + Name (_DEP, Package (0x02) // _DEP: Dependencies + { + I2C5, + PMI2 + }) + Name (RBUF, ResourceTemplate () + { + I2cSerialBus (0x006B, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + I2cSerialBus (0x0068, ControllerInitiated, 0x000186A0, + AddressingMode7Bit, "\\_SB.I2C1", + 0x00, ResourceConsumer, , + ) + GpioInt (Level, ActiveLow, Exclusive, PullNone, 0x0000, + "\\_SB.I2C5.PMI2", 0x00, ResourceConsumer, , + ) + { // Pin list + 0x0011 + } + }) + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Return (RBUF) /* \_SB_.I2C5.TIDR.RBUF */ + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMID == 0x06)) + { + Return (0x0F) + } + + Return (Zero) + } + + OperationRegion (BMOP, 0x9E, Zero, 0x0100) + Field (BMOP, DWordAcc, NoLock, Preserve) + { + SOC, 32, + FCCP, 32, + CHST, 32, + RMCP, 32, + VOLT, 32, + BATP, 32, + SRP0, 32, + STYP, 32, + CHGC, 32, + STPC, 32, + GADC, 32, + TTEM, 32, + TTCH, 32, + CYCL, 32, + BTP, 32, + DPCU, 32, + DSCP, 32 + } + + Name (AVBL, Zero) + Method (_REG, 2, NotSerialized) // _REG: Region Availability + { + If ((Arg0 == 0x9E)) + { + AVBL = Arg1 + } + } + + Method (SBTP, 0, NotSerialized) + { + ADBG ("SBTP") + If (CondRefOf (\_SB.I2C5.TIBT, Local1)) + { + Notify (ADP1, 0x80) // Status Change + Notify (TIBT, 0x80) // Status Change + Notify (TIBT, 0x81) // Information Change + If (CondRefOf (\_SB.DPTF, Local3)) + { + Notify (DPTF, 0x86) // Device-Specific + Notify (TCHG, 0x80) // Status Change + } + + Return (One) + } + + Return (Zero) + } + + Method (PTYP, 0, NotSerialized) + { + ADBG ("PTYP") + Local0 = (PMID | 0x80) + Return (Local0) + } + } + + Device (BMBT) + { + Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Name (BCCE, One) + Name (OTGS, Zero) + Name (CHPR, One) + Name (FGDV, 0x0A) + Name (BCCC, 0x07) + Name (BCIL, 0x65) + Name (BCVF, 0x93) + Name (BCFV, 0xED) + Name (BCCH, 0x38) + Name (BCST, 0x05) + Name (BCPE, 0x74) + Name (BCCL, 0xFFFFFFFF) + Name (BCLP, 0x1004) + Name (DSCP, 0x1300) + Name (DSVO, 0x0EA6) + Name (BTPC, Zero) + Name (AVCU, Zero) + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Name (BUFF, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BUFF, Zero, BYAT) + CreateByteField (BUFF, 0x02, DATA) + Name (BUF1, Buffer (0x06) + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ...... */ + }) + CreateByteField (BUF1, Zero, BSTA) + CreateByteField (BUF1, One, BLEN) + CreateDWordField (BUF1, 0x02, DAT1) + Name (BUF2, Buffer (0x04) + { + 0x00, 0x00, 0x00, 0x00 /* .... */ + }) + CreateByteField (BUF2, Zero, BSTS) + CreateByteField (BUF2, One, SLEN) + CreateWordField (BUF2, 0x02, WRD1) + Name (BIXP, Package (0x14) + { + Zero, + One, + 0xFFFFFFFF, + 0xFFFFFFFF, + One, + 0xFFFFFFFF, + 0x0A, + 0x04, + Zero, + 0x00017318, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x88B8, + 0x61A8, + One, + One, + "SR Real Battery", + "123456789", + "LION", + "Intel SR 1" + }) + Name (BSTP, Package (0x04) + { + Zero, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Method (_BIX, 0, NotSerialized) // _BIX: Battery Information Extended + { + ADBG ("BIX") + If ((^^BMDR.AVBL == One)) + { + Index (BIXP, 0x03) = ^^BMDR.FCCP /* \_SB_.I2C5.BMDR.FCCP */ + Index (BIXP, 0x08) = ^^BMDR.CYCL /* \_SB_.I2C5.BMDR.CYCL */ + Index (BIXP, 0x02) = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */ + DSCP = ^^BMDR.DSCP /* \_SB_.I2C5.BMDR.DSCP */ + } + + Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.BMBT.DSVO */ + Divide (DSCP, 0x0A, Local0, Local1) + Index (BIXP, 0x06) = Local1 + Divide (DSCP, 0x14, Local0, Local1) + Index (BIXP, 0x07) = Local1 + Return (BIXP) /* \_SB_.I2C5.BMBT.BIXP */ + } + + Method (_BST, 0, NotSerialized) // _BST: Battery Status + { + If ((^^BMDR.AVBL == One)) + { + ADBG ("BST") + Local0 = ^^BMDR.CHST /* \_SB_.I2C5.BMDR.CHST */ + Local0 &= 0x0F + If ((Local0 == 0x02)) + { + Local1 = 0x02 + } + + If ((Local0 == One)) + { + Local1 = One + } + + If ((Local0 == 0x08)) + { + Local1 = Zero + } + + Index (BSTP, Zero) = Local1 + Index (BSTP, One) = ^^BMDR.CHGC /* \_SB_.I2C5.BMDR.CHGC */ + Index (BSTP, 0x02) = ^^BMDR.RMCP /* \_SB_.I2C5.BMDR.RMCP */ + Index (BSTP, 0x03) = ^^BMDR.VOLT /* \_SB_.I2C5.BMDR.VOLT */ + ^^BMDR.DPCU = BCCC /* \_SB_.I2C5.BMBT.BCCC */ + } + + Return (BSTP) /* \_SB_.I2C5.BMBT.BSTP */ + } + + Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point + { + BTPC = Arg0 + ADBG ("BTP") + ADBG (Arg0) + If ((^^BMDR.AVBL == One)) + { + ^^BMDR.BTP = Arg0 + } + } + + Method (_BTM, 1, NotSerialized) // _BTM: Battery Time + { + ADBG ("BTM") + If ((Arg0 > 0x7530)) + { + Return (Zero) + } + + Return (0xFFFFFFFF) + } + + Method (_BCT, 1, NotSerialized) // _BCT: Battery Charge Time + { + ADBG ("BCT") + If (((Arg0 > 0x64) || (Arg0 < One))) + { + Return (Zero) + } + + Return (0xFFFFFFFF) + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */)) + { + If ((Arg2 == 0x02)) + { + If ((Arg1 == Zero)) + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + } + + Return (Zero) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMID == 0x05)) + { + Return (0x1F) + } + + Return (Zero) + } + + Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List + { + Return (_SB) /* \_SB_ */ + } + + Method (PSOC, 0, NotSerialized) + { + ADBG ("PSOC") + If ((^^BMDR.AVBL == One)) + { + Local1 = ^^BMDR.SOC /* \_SB_.I2C5.BMDR.SOC_ */ + Return (Local1) + } + + Return (Zero) + } + + Method (PMAX, 0, NotSerialized) + { + Return (Zero) + } + + Method (VMIN, 0, NotSerialized) + { + Return (0x0E10) + } + + Method (APWR, 0, NotSerialized) + { + Return (0x00FC3A50) + } + + Method (NPWR, 0, NotSerialized) + { + Local3 = APWR () + Return (Zero) + } + + Method (PSRC, 0, NotSerialized) + { + If ((^^BMDR.AVBL == One)) + { + Local0 = ^^BMDR.CHTP /* \_SB_.I2C5.BMDR.CHTP */ + If ((Local0 == Zero)) + { + Return (Zero) + } + + If ((Local0 == One)) + { + Return (One) + } + + If ((Local0 == 0x02)) + { + Return (0x02) + } + + If ((Local0 == 0x03)) + { + Return (0x03) + } + + If ((Local0 == 0x04)) + { + Return (0x04) + } + + If ((Local0 == 0x05)) + { + Return (0x05) + } + + Return (Zero) + } + + Return (One) + } + + Method (CTYP, 0, NotSerialized) + { + Return (0x02) + } + + Method (ARTG, 0, NotSerialized) + { + Return (APWR ()) + } + } + + Device (TIBT) + { + Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID + Name (_UID, One) // _UID: Unique ID + Name (BCCE, One) + Name (OTGS, Zero) + Name (CHPR, One) + Name (FGDV, 0x0A) + Name (BCCC, 0x80) + Name (BCIL, 0x65) + Name (BCVF, 0x93) + Name (BCFV, 0xED) + Name (BCCH, 0x38) + Name (BCST, 0x05) + Name (BCPE, 0x74) + Name (BCCL, 0xFFFFFFFF) + Name (BCLP, 0x1004) + Name (DSCP, 0x1300) + Name (DSVO, 0x0EA6) + Name (BTPC, Zero) + Name (AVCU, Zero) + Name (_DEP, Package (0x01) // _DEP: Dependencies + { + I2C5 + }) + Name (BUFF, Buffer (0x03) + { + 0x00, 0x01, 0x00 /* ... */ + }) + CreateByteField (BUFF, Zero, BYAT) + CreateByteField (BUFF, 0x02, DATA) + Name (BUF1, Buffer (0x06) + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* ...... */ + }) + CreateByteField (BUF1, Zero, BSTA) + CreateByteField (BUF1, One, BLEN) + CreateDWordField (BUF1, 0x02, DAT1) + Name (BUF2, Buffer (0x04) + { + 0x00, 0x00, 0x00, 0x00 /* .... */ + }) + CreateByteField (BUF2, Zero, BSTS) + CreateByteField (BUF2, One, SLEN) + CreateWordField (BUF2, 0x02, WRD1) + Name (BIXP, Package (0x14) + { + Zero, + One, + 0xFFFFFFFF, + 0xFFFFFFFF, + One, + 0xFFFFFFFF, + 0x0A, + 0x04, + Zero, + 0x00017318, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x88B8, + 0x61A8, + One, + One, + "SR Real Battery", + "123456789", + "LION", + "Intel SR 1" + }) + Name (BSTP, Package (0x04) + { + Zero, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF + }) + Method (_BIX, 0, NotSerialized) // _BIX: Battery Information Extended + { + ADBG ("BIX") + If ((^^TIDR.AVBL == One)) + { + Index (BIXP, 0x03) = ^^TIDR.FCCP /* \_SB_.I2C5.TIDR.FCCP */ + Index (BIXP, 0x08) = ^^TIDR.CYCL /* \_SB_.I2C5.TIDR.CYCL */ + Index (BIXP, 0x02) = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */ + DSCP = ^^TIDR.DSCP /* \_SB_.I2C5.TIDR.DSCP */ + } + + Index (BIXP, 0x05) = DSVO /* \_SB_.I2C5.TIBT.DSVO */ + Divide (DSCP, 0x0A, Local0, Local1) + Index (BIXP, 0x06) = Local1 + Divide (DSCP, 0x14, Local0, Local1) + Index (BIXP, 0x07) = Local1 + Return (BIXP) /* \_SB_.I2C5.TIBT.BIXP */ + } + + Method (_BST, 0, NotSerialized) // _BST: Battery Status + { + If ((^^TIDR.AVBL == One)) + { + ADBG ("BST") + Local0 = ^^TIDR.CHST /* \_SB_.I2C5.TIDR.CHST */ + Local0 &= 0x0F + If ((Local0 == 0x02)) + { + Local1 = 0x02 + } + + If ((Local0 == One)) + { + Local1 = One + } + + If ((Local0 == 0x08)) + { + Local1 = Zero + } + + Index (BSTP, Zero) = Local1 + Index (BSTP, One) = ^^TIDR.CHGC /* \_SB_.I2C5.TIDR.CHGC */ + Index (BSTP, 0x02) = ^^TIDR.RMCP /* \_SB_.I2C5.TIDR.RMCP */ + Index (BSTP, 0x03) = ^^TIDR.VOLT /* \_SB_.I2C5.TIDR.VOLT */ + ^^TIDR.DPCU = BCCC /* \_SB_.I2C5.TIBT.BCCC */ + } + + Return (BSTP) /* \_SB_.I2C5.TIBT.BSTP */ + } + + Method (_BTP, 1, NotSerialized) // _BTP: Battery Trip Point + { + BTPC = Arg0 + ADBG ("BTP") + ADBG (Arg0) + If ((^^TIDR.AVBL == One)) + { + ^^TIDR.BTP = Arg0 + } + } + + Method (_BTM, 1, NotSerialized) // _BTM: Battery Time + { + ADBG ("BTM") + If ((Arg0 > 0x7530)) + { + Return (Zero) + } + + Return (0xFFFFFFFF) + } + + Method (_BCT, 1, NotSerialized) // _BCT: Battery Charge Time + { + ADBG ("BCT") + If (((Arg0 > 0x64) || (Arg0 < One))) + { + Return (Zero) + } + + Return (0xFFFFFFFF) + } + + Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method + { + If ((Arg0 == ToUUID ("4c2067e3-887d-475c-9720-4af1d3ed602e") /* Battery Thermal Limit */)) + { + If ((Arg2 == 0x02)) + { + If ((Arg1 == Zero)) + { + Return (Buffer (One) + { + 0x00 /* . */ + }) + } + } + } + + Return (Zero) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + If ((PMID == 0x06)) + { + Return (0x1F) + } + + Return (Zero) + } + + Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List + { + Return (_SB) /* \_SB_ */ + } + + Method (PSOC, 0, NotSerialized) + { + ADBG ("PSOC") + If ((^^TIDR.AVBL == One)) + { + Local1 = ^^TIDR.SOC /* \_SB_.I2C5.TIDR.SOC_ */ + Return (Local1) + } + + Return (Zero) + } + + Method (PMAX, 0, NotSerialized) + { + Return (Zero) + } + + Method (VMIN, 0, NotSerialized) + { + Return (0x0DAC) + } + + Method (APWR, 0, NotSerialized) + { + Return (0x0365C040) + } + + Method (NPWR, 0, NotSerialized) + { + Local3 = APWR () + Return (Zero) + } + + Method (PSRC, 0, NotSerialized) + { + If ((^^TIDR.AVBL == One)) + { + Local0 = ^^TIDR.STYP /* \_SB_.I2C5.TIDR.STYP */ + If ((Local0 == Zero)) + { + Return (Zero) + } + + If ((Local0 == One)) + { + Return (One) + } + + If ((Local0 == 0x02)) + { + Return (0x02) + } + + If ((Local0 == 0x03)) + { + Return (0x03) + } + + If ((Local0 == 0x04)) + { + Return (0x04) + } + + If ((Local0 == 0x05)) + { + Return (0x05) + } + } + + Return (One) + } + + Method (CTYP, 0, NotSerialized) + { + Return (0x02) + } + + Method (ARTG, 0, NotSerialized) + { + Return (0x0365C040) + } + } + } +} + -- 2.1.4