blob: 494fd244aa2c1de740b3ad04d8c91f47e73893cd [file] [log] [blame]
Angel Ponsba38f372020-04-05 15:46:45 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Lee Leahy77ff0b12015-05-05 15:07:29 -07002
3Device (LPEA)
4{
Lee Leahy32471722015-04-20 15:20:28 -07005 Name (_HID, "808622A8")
6 Name (_CID, "808622A8")
Lee Leahy77ff0b12015-05-05 15:07:29 -07007 Name (_UID, 1)
Lee Leahy32471722015-04-20 15:20:28 -07008 Name (_DDN, "Intel(R) Low Power Audio Controller - 808622A8")
Lee Leahy77ff0b12015-05-05 15:07:29 -07009 Name (_PR0, Package () { PLPE })
10
11 Name (RBUF, ResourceTemplate()
12 {
13 Memory32Fixed (ReadWrite, 0, 0x00200000, BAR0)
14 Memory32Fixed (ReadWrite, 0, 0x00001000, BAR1)
Matt DeVillier83ef07a2018-01-21 16:37:24 -060015 Memory32Fixed (ReadWrite, 0, 0x00200000, BAR2)
Lee Leahy77ff0b12015-05-05 15:07:29 -070016 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
17 {
18 LPE_DMA0_IRQ
19 }
20 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
21 {
22 LPE_DMA1_IRQ
23 }
24 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
25 {
26 LPE_SSP0_IRQ
27 }
28 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
29 {
30 LPE_SSP1_IRQ
31 }
32 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
33 {
34 LPE_SSP2_IRQ
35 }
36 Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive,,,)
37 {
38 LPE_IPC2HOST_IRQ
39 }
40 })
41
42 Method (_CRS)
43 {
44 /* Update BAR0 from NVS */
45 CreateDwordField (^RBUF, ^BAR0._BAS, BAS0)
Felix Singer84e61232022-12-12 07:39:15 +010046 BAS0 = \LPB0
Lee Leahy77ff0b12015-05-05 15:07:29 -070047
48 /* Update BAR1 from NVS */
49 CreateDwordField (^RBUF, ^BAR1._BAS, BAS1)
Felix Singer84e61232022-12-12 07:39:15 +010050 BAS1 = \LPB1
Lee Leahy77ff0b12015-05-05 15:07:29 -070051
52 /* Update LPE FW from NVS */
53 CreateDwordField (^RBUF, ^BAR2._BAS, BAS2)
Felix Singer84e61232022-12-12 07:39:15 +010054 BAS2 = \LPFW
Lee Leahy77ff0b12015-05-05 15:07:29 -070055
56 /* Append any Mainboard defined GPIOs */
Martin Roth10f7f502015-12-08 15:26:03 -070057 If (CondRefOf (^GBUF)) {
Lee Leahy77ff0b12015-05-05 15:07:29 -070058 ConcatenateResTemplate (^RBUF, ^GBUF, Local1)
59 Return (Local1)
60 }
61
62 Return (^RBUF)
63 }
64
65 Method (_STA)
66 {
Felix Singeredec4d92022-12-11 21:25:32 +010067 If (\LPEN == 1) {
Lee Leahy77ff0b12015-05-05 15:07:29 -070068 Return (0xF)
69 } Else {
70 Return (0x0)
71 }
72 }
73
74 OperationRegion (KEYS, SystemMemory, LPB1, 0x100)
75 Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
76 {
77 Offset (0x84),
78 PSAT, 32,
79 }
80
81 PowerResource (PLPE, 0, 0)
82 {
83 Method (_STA)
84 {
85 Return (1)
86 }
87
88 Method (_OFF)
89 {
Felix Singer86bc2e72022-12-16 04:40:39 +010090 PSAT |= 3
91 PSAT |= 0
Lee Leahy77ff0b12015-05-05 15:07:29 -070092 }
93
94 Method (_ON)
95 {
96 And (PSAT, 0xfffffffc, PSAT)
Felix Singer86bc2e72022-12-16 04:40:39 +010097 PSAT |= 0
Lee Leahy77ff0b12015-05-05 15:07:29 -070098 }
99 }
100}