1 /**************************************************************************;
4 ;* Intel Corporation - ACPI Reference Code for the Baytrail *;
5 ;* Family of Customer Reference Boards. *;
8 ;* Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved *;
10 ; SPDX-License-Identifier: BSD-2-Clause-Patent
14 ;**************************************************************************/
20 // Define VLV ABASE I/O as an ACPI operating region. The base address
21 // can be found in Device 31, Registers 40-43h.
23 OperationRegion(PMIO, SystemIo, \PMBS, 0x46)
24 Field(PMIO, ByteAcc, NoLock, Preserve)
27 PWBS, 1, // Power Button Status
30 PMEB, 1, // PME_B0_STS
31 Offset(0x42), // General Purpose Control
35 Field(PMIO, ByteAcc, NoLock, WriteAsZeros)
37 Offset(0x20), // GPE0 Status
39 PSCI, 1, // PUNIT SCI Status
40 SCIS, 1 // GUNIT SCI Status
46 // Define a Memory Region that will allow access to the PMC
47 // Register Block. Note that in the Intel Reference Solution, the PMC
48 // will get fixed up dynamically during POST.
50 OperationRegion(PMCR, SystemMemory, \PFDR, 0x04)// PMC Function Disable Register
51 Field(PMCR,DWordAcc,Lock,Preserve)
53 Offset(0x00), // Function Disable Register
54 L10D, 1, // (0) LPIO1 DMA Disable
55 L11D, 1, // (1) LPIO1 PWM #1 Disable
56 L12D, 1, // (2) LPIO1 PWM #2 Disable
57 L13D, 1, // (3) LPIO1 HS-UART #1 Disable
58 L14D, 1, // (4) LPIO1 HS-UART #2 Disable
59 L15D, 1, // (5) LPIO1 SPI Disable
60 , 2, // (6:7) Reserved
61 SD1D, 1, // (8) SCC SDIO #1 Disable
62 SD2D, 1, // (9) SCC SDIO #2 Disable
63 SD3D, 1, // (10) SCC SDIO #3 Disable
65 HDAD, 1, // (12) Azalia Disable
66 LPED, 1, // (13) LPE Disable
67 OTGD, 1, // (14) USB OTG Disable
68 , 1, // (15) USH Disable
71 , 1, // (18) USB Disable
72 , 1, // (19) SEC Disable
73 RP1D, 1, // (20) Root Port 0 Disable
74 RP2D, 1, // (21) Root Port 1 Disable
75 RP3D, 1, // (22) Root Port 2 Disable
76 RP4D, 1, // (23) Root Port 3 Disable
77 L20D, 1, // (24) LPIO2 DMA Disable
78 L21D, 1, // (25) LPIO2 I2C #1 Disable
79 L22D, 1, // (26) LPIO2 I2C #2 Disable
80 L23D, 1, // (27) LPIO2 I2C #3 Disable
81 L24D, 1, // (28) LPIO2 I2C #4 Disable
82 L25D, 1, // (29) LPIO2 I2C #5 Disable
83 L26D, 1, // (30) LPIO2 I2C #6 Disable
84 L27D, 1 // (31) LPIO2 I2C #7 Disable
88 OperationRegion(CLKC, SystemMemory, \PCLK, 0x18)// PMC CLK CTL Registers
89 Field(CLKC,DWordAcc,Lock,Preserve)
91 Offset(0x00), // PLT_CLK_CTL_0
95 Offset(0x04), // PLT_CLK_CTL_1
99 Offset(0x08), // PLT_CLK_CTL_2
103 Offset(0x0C), // PLT_CLK_CTL_3
107 Offset(0x10), // PLT_CLK_CTL_4
111 Offset(0x14), // PLT_CLK_CTL_5
123 Name (_HID, "80860F28")
124 Name (_CID, "80860F28")
125 //Name (_CLS, Package (3) {0x04, 0x01, 0x00})
126 Name (_DDN, "Intel(R) Low Power Audio Controller - 80860F28")
127 Name (_SUB, "80867270")
129 Name (_DEP, Package() {\_SB.I2C2.RTEK})
130 Name(_PR0,Package() {PLPE})
132 Method (_STA, 0x0, NotSerialized)
134 If (LAnd(LAnd(LEqual(LPEE, 2), LEqual(LPED, 0)), LEqual(OSEL, 0)))
144 Method (_DIS, 0x0, NotSerialized)
146 //Add a dummy disable function
149 Name (RBUF, ResourceTemplate ()
151 Memory32Fixed (ReadWrite, 0xFE400000, 0x00200000, BAR0) // MMIO 1 - LPE MMIO
152 Memory32Fixed (ReadWrite, 0xFE830000, 0x00001000, BAR1) // MMIO 2 - Shadowed PCI Config Space
153 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00100000, BAR2) // LPE Memory Bar Allocate during post
154 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {24}
155 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {25}
156 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {26}
157 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {27}
158 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {28}
159 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {29}
160 GpioInt(Edge, ActiveBoth, ExclusiveAndWake, PullNone, 0,"\\_SB.GPO2") {28} // Audio jack interrupt
164 Method (_CRS, 0x0, NotSerialized)
166 CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
168 CreateDwordField(^RBUF, ^BAR1._BAS, B1BA)
170 CreateDwordField(^RBUF, ^BAR2._BAS, B2BA)
175 OperationRegion (KEYS, SystemMemory, LPE1, 0x100)
176 Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
182 PowerResource(PLPE, 0, 0) // Power Resource for LPEA
186 Return (1) // Power Resource is always available.
191 And(PSAT, 0xfffffffC, PSAT)
192 OR(PSAT, 0X00000000, PSAT)
197 OR(PSAT, 0x00000003, PSAT)
198 OR(PSAT, 0X00000000, PSAT)
201 } // End "Low Power Engine Audio"
206 Name (_HID, "LPE0F28") // _HID: Hardware ID
207 Name (_CID, "LPE0F28") // _CID: Compatible ID
208 Name (_DDN, "Intel(R) SST Audio - LPE0F28") // _DDN: DOS Device Name
209 Name (_SUB, "80867270")
211 Name (_DEP, Package() {\_SB.I2C2.RTEK})
212 Name(_PR0,Package() {PLPE})
214 Method (_STA, 0x0, NotSerialized)
216 If (LAnd(LAnd(LEqual(LPEE, 2), LEqual(LPED, 0)), LEqual(OSEL, 1)))
226 Method (_DIS, 0x0, NotSerialized)
228 //Add a dummy disable function
231 Name (RBUF, ResourceTemplate ()
233 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00100000, BAR2) // LPE Memory Bar Allocate during post
234 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00000100, SHIM)
235 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00001000, MBOX)
236 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00014000, IRAM)
237 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00028000, DRAM)
238 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {29}
239 Memory32Fixed (ReadWrite, 0xFE830000, 0x00001000, BAR1) // MMIO 2 - Shadowed PCI Config Space
243 Method (_CRS, 0x0, NotSerialized)
245 CreateDwordField(^RBUF, ^SHIM._BAS, SHBA)
246 Add(LPE0, 0x140000, SHBA)
247 CreateDwordField(^RBUF, ^MBOX._BAS, MBBA)
248 Add(LPE0, 0x144000, MBBA)
249 CreateDwordField(^RBUF, ^IRAM._BAS, IRBA)
250 Add(LPE0, 0xC0000, IRBA)
251 CreateDwordField(^RBUF, ^DRAM._BAS, DRBA)
252 Add(LPE0, 0x100000, DRBA)
253 CreateDwordField(^RBUF, ^BAR1._BAS, B1BA)
255 CreateDwordField(^RBUF, ^BAR2._BAS, B2BA)
260 OperationRegion (KEYS, SystemMemory, LPE1, 0x100)
261 Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
267 PowerResource(PLPE, 0, 0) // Power Resource for LPEA
271 Return (1) // Power Resource is always available.
276 And(PSAT, 0xfffffffC, PSAT)
277 OR(PSAT, 0X00000000, PSAT)
282 OR(PSAT, 0x00000003, PSAT)
283 OR(PSAT, 0X00000000, PSAT)
289 Name (_ADR, Zero) // _ADR: Address
290 Name (_HID, "DMA0F28") // _HID: Hardware ID
291 Name (_CID, "DMA0F28") // _CID: Compatible ID
292 Name (_DDN, "Intel(R) Audio DMA0 - DMA0F28") // _DDN: DOS Device Name
293 Name (_UID, One) // _UID: Unique ID
294 Name (RBUF, ResourceTemplate ()
296 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00001000, DMA0) // LPE BASE + LPE DMA0 offset
297 Memory32Fixed (ReadWrite, 0x55AA55AA, 0x00001000, SHIM) // LPE BASE + LPE SHIM offset
298 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {24}
301 Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
303 CreateDwordField(^RBUF, ^DMA0._BAS, D0BA)
304 Add(LPE0, 0x98000, D0BA)
305 CreateDwordField(^RBUF, ^SHIM._BAS, SHBA)
306 Add(LPE0, 0x140000, SHBA)
310 } // End "Low Power Engine Audio" for Android
317 // Serial ATA Host Controller - Device 19, Function 0
322 Name(_ADR,0x00130000)
324 // SATA Methods pulled in via SSDT.
327 OperationRegion(SATR, PCI_Config, 0x74,0x4)
328 Field(SATR,WordAcc,NoLock,Preserve)
330 Offset(0x00), // 0x74, PMCR
337 Method (_STA, 0x0, NotSerialized)
348 // For eMMC 4.41 PCI mode in order to present non-removable device under Windows environment
352 Name(_ADR,0x00100000)
353 OperationRegion(SDIO, PCI_Config, 0x84,0x4)
354 Field(SDIO,WordAcc,NoLock,Preserve)
356 Offset(0x00), // 0x84, PMCR
363 Method (_STA, 0x0, NotSerialized)
365 If (LAnd(LEqual(PCIM, 1), LEqual(SD1D, 0)))
381 Name (_ADR, 0x00000008)
382 Method(_RMV, 0x0, NotSerialized)
390 // For eMMC 4.5 PCI mode in order to present non-removable device under Windows environment
394 Name(_ADR,0x00170000)
395 OperationRegion(SDIO, PCI_Config, 0x84,0x4)
396 Field(SDIO,WordAcc,NoLock,Preserve)
398 Offset(0x00), // 0x84, PMCR
405 Method (_STA, 0x0, NotSerialized)
407 If (LAnd(LEqual(PCIM, 1), LEqual(HSID, 0)))
423 Name (_ADR, 0x00000008)
424 Method(_RMV, 0x0, NotSerialized)
431 // For SD Host Controller (Bus 0x00 : Dev 0x12 : Func 0x00) PCI mode in order to present non-removable device under Windows environment
435 Name(_ADR,0x00120000)
437 Method (_STA, 0x0, NotSerialized)
440 // PCIM>> 0:ACPI mode 1:PCI mode
442 If (LEqual(PCIM, 0)) {
447 // If device is disabled.
459 Name (_ADR, 0x00000008)
460 Method(_RMV, 0x0, NotSerialized)
462 // SDRM = 0 non-removable;
473 // xHCI Controller - Device 20, Function 0
474 include("PchXhci.asl")
477 // High Definition Audio Controller - Device 27, Function 0
481 Name(_ADR, 0x001B0000)
482 include("PchAudio.asl")
484 Method (_STA, 0x0, NotSerialized)
496 } // end "High Definition Audio Controller"
505 Name(_ADR, 0x001C0000)
506 include("PchPcie.asl")
507 Name(_PRW, Package() {9, 4})
511 If(PICM) { Return(AR04) }// APIC mode
512 Return (PR04) // PIC Mode
514 } // end "PCIE Root Port #1"
521 Name(_ADR, 0x001C0001)
522 include("PchPcie.asl")
523 Name(_PRW, Package() {9, 4})
527 If(PICM) { Return(AR05) }// APIC mode
528 Return (PR05) // PIC Mode
531 } // end "PCIE Root Port #2"
538 Name(_ADR, 0x001C0002)
539 include("PchPcie.asl")
540 Name(_PRW, Package() {9, 4})
543 If(PICM) { Return(AR06) }// APIC mode
544 Return (PR06) // PIC Mode
547 } // end "PCIE Root Port #3"
554 Name(_ADR, 0x001C0003)
555 include("PchPcie.asl")
556 Name(_PRW, Package() {9, 4})
559 If(PICM) { Return(AR07) }// APIC mode
560 Return (PR07) // PIC Mode
563 } // end "PCIE Root Port #4"
569 // Dummy power resource for USB D3 cold support
571 PowerResource(USBC, 0, 0)
573 Method(_STA) { Return (0xF) }
579 // EHCI Controller - Device 29, Function 0
583 Name(_ADR, 0x001D0000)
584 Name(_DEP, Package(0x1)
588 include("PchEhci.asl")
589 Name(_PRW, Package() {0x0D, 4})
591 OperationRegion(USBR, PCI_Config, 0x54,0x4)
592 Field(USBR,WordAcc,NoLock,Preserve)
594 Offset(0x00), // 0x54, PMCR
601 Method (_STA, 0x0, NotSerialized)
603 If(LEqual(XHCI, 0)) //XHCI is not present. It means EHCI is there
612 Method (_RMV, 0, NotSerialized)
617 // Create a dummy PR3 method to indicate to the PCI driver
618 // that the device is capable of D3 cold
620 Method(_PR3, 0x0, NotSerialized)
622 return (Package() {\_SB.USBC})
625 } // end "EHCI Controller"
628 // SMBus Controller - Device 31, Function 3
632 Name(_ADR,0x001F0003)
633 Include("PchSmb.asl")
638 Name (_ADR, 0x001a0000) // Device 0x1a, Function 0
639 Name(_DEP, Package(0x1)
645 OperationRegion (PMEB, PCI_Config, 0x84, 0x04) //PMECTRLSTATUS
646 Field (PMEB, WordAcc, NoLock, Preserve)
649 PMEE, 1, //bit8 PMEENABLE
651 PMES, 1 //bit15 PMESTATUS
654 // Arg0 -- integer that contains the device wake capability control (0-disable 1- enable)
655 // Arg1 -- integer that contains target system state (0-4)
656 // Arg2 -- integer that contains the target device state
657 Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake
661 Method (_CRS, 0, NotSerialized)
663 Name (RBUF, ResourceTemplate ()
665 Memory32Fixed (ReadWrite, 0x1e000000, 0x2000000)
672 Return (ResourceTemplate() {})
677 If (LNotEqual(PAVP, 0))
685 } // End scope (\_SB.PCI0)