blob: 3c35089665fae27377a2feb68ff9d37c9b3308b0 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Andy Shevchenko286e77f2017-10-03 14:55:07 +03002/*
3 * Copyright (c) 2017 Intel Corporation
4 *
5 * Partially based on southcluster.asl for other x86 platforms
Andy Shevchenko286e77f2017-10-03 14:55:07 +03006 */
7
8Device (PCI0)
9{
10 Name (_HID, EISAID("PNP0A08")) /* PCIe */
11 Name (_CID, EISAID("PNP0A03")) /* PCI */
12
13 Name (_ADR, 0)
14 Name (_BBN, 0)
15
16 Name (MCRS, ResourceTemplate()
17 {
18 /* Bus Numbers */
19 WordBusNumber(ResourceProducer, MinFixed, MaxFixed, PosDecode,
20 0x0000, 0x0000, 0x00ff, 0x0000, 0x0100, , , PB00)
21
22 /* IO Region 0 */
23 WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
24 0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8, , , PI00)
25
26 /* PCI Config Space */
27 IO(Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008)
28
29 /* IO Region 1 */
30 WordIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
31 0x0000, 0x0d00, 0xffff, 0x0000, 0xf300, , , PI01)
32
33 /* GPIO Low Memory Region */
34 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed,
35 Cacheable, ReadWrite,
36 0x00000000, 0x000ddcc0, 0x000ddccf, 0x00000000,
37 0x00000010, , , GP00)
38
39 /* PSH Memory Region 0 */
40 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed,
41 Cacheable, ReadWrite,
42 0x00000000, 0x04819000, 0x04898fff, 0x00000000,
43 0x00080000, , , PSH0)
44
45 /* PSH Memory Region 1 */
46 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed,
47 Cacheable, ReadWrite,
48 0x00000000, 0x04919000, 0x04920fff, 0x00000000,
49 0x00008000, , , PSH1)
50
51 /* SST Memory Region */
52 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed,
53 Cacheable, ReadWrite,
54 0x00000000, 0x05e00000, 0x05ffffff, 0x00000000,
55 0x00200000, , , SST0)
56
57 /* PCI Memory Region */
58 DWordMemory(ResourceProducer, PosDecode, MinFixed, MaxFixed,
59 Cacheable, ReadWrite,
60 0x00000000, 0x80000000, 0xffffffff, 0x00000000,
61 0x80000000, , , PMEM)
62 })
63
64 Method (_CRS, 0, Serialized)
65 {
66 Return (MCRS)
67 }
68
69 Method (_OSC, 4)
70 {
71 /* Check for proper GUID */
72 If (LEqual(Arg0, ToUUID("33db4d5b-1ff7-401c-9657-7441c03dd766"))) {
73 /* Let OS control everything */
74 Return (Arg3)
75 } Else {
76 /* Unrecognized UUID */
77 CreateDWordField(Arg3, 0, CDW1)
78 Or(CDW1, 4, CDW1)
79 Return (Arg3)
80 }
81 }
82
83 Device (SDHC)
84 {
85 Name (_ADR, 0x00010003)
86 Name (_DEP, Package (0x01)
87 {
88 GPIO
89 })
90 Name (PSTS, Zero)
91
92 Method (_STA)
93 {
94 Return (STA_VISIBLE)
95 }
96
97 Method (_PS3, 0, NotSerialized)
98 {
99 }
100
101 Method (_PS0, 0, NotSerialized)
102 {
103 If (PSTS == Zero)
104 {
105 If (^^GPIO.AVBL == One)
106 {
107 ^^GPIO.WFD3 = One
108 PSTS = One
109 }
110 }
111 }
112
113 /* BCM43340 */
114 Device (BRC1)
115 {
116 Name (_ADR, 0x01)
117 Name (_DEP, Package (0x01)
118 {
119 GPIO
120 })
121
122 Method (_STA)
123 {
124 Return (STA_VISIBLE)
125 }
126
127 Method (_RMV, 0, NotSerialized)
128 {
129 Return (Zero)
130 }
131
132 Method (_PS3, 0, NotSerialized)
133 {
134 If (^^^GPIO.AVBL == One)
135 {
136 ^^^GPIO.WFD3 = Zero
137 PSTS = Zero
138 }
139 }
140
141 Method (_PS0, 0, NotSerialized)
142 {
143 If (PSTS == Zero)
144 {
145 If (^^^GPIO.AVBL == One)
146 {
147 ^^^GPIO.WFD3 = One
148 PSTS = One
149 }
150 }
151 }
152 }
153
154 Device (BRC2)
155 {
156 Name (_ADR, 0x02)
157 Method (_STA, 0, NotSerialized)
158 {
159 Return (STA_VISIBLE)
160 }
161
162 Method (_RMV, 0, NotSerialized)
163 {
164 Return (Zero)
165 }
166 }
167 }
168
169 Device (SPI5)
170 {
171 Name (_ADR, 0x00070001)
172 Name (RBUF, ResourceTemplate()
173 {
174 GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly,
Andy Shevchenko7ec92432018-01-04 18:40:12 +0200175 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 110 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300176 GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly,
Andy Shevchenko7ec92432018-01-04 18:40:12 +0200177 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 111 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300178 GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly,
Andy Shevchenko7ec92432018-01-04 18:40:12 +0200179 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 112 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300180 GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly,
Andy Shevchenko7ec92432018-01-04 18:40:12 +0200181 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 113 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300182 })
183
184 Method (_CRS, 0, NotSerialized)
185 {
186 Return (RBUF)
187 }
188
189 /*
190 * See
191 * http://www.kernel.org/doc/Documentation/acpi/gpio-properties.txt
192 * for more information about GPIO bindings.
193 */
194 Name (_DSD, Package () {
195 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
196 Package () {
197 Package () {
198 "cs-gpios", Package () {
199 ^SPI5, 0, 0, 0,
200 ^SPI5, 1, 0, 0,
201 ^SPI5, 2, 0, 0,
202 ^SPI5, 3, 0, 0,
203 },
204 },
205 }
206 })
207
208 Method (_STA, 0, NotSerialized)
209 {
210 Return (STA_VISIBLE)
211 }
212 }
213
214 Device (I2C1)
215 {
216 Name (_ADR, 0x00080000)
217
218 Method (_STA, 0, NotSerialized)
219 {
220 Return (STA_VISIBLE)
221 }
222 }
223
224 Device (GPIO)
225 {
226 Name (_ADR, 0x000c0000)
227
228 Method (_STA)
229 {
230 Return (STA_VISIBLE)
231 }
232
233 Name (AVBL, Zero)
234 Method (_REG, 2, NotSerialized)
235 {
236 If (Arg0 == 0x08)
237 {
238 AVBL = Arg1
239 }
240 }
241
242 OperationRegion (GPOP, GeneralPurposeIo, 0, 1)
243 Field (GPOP, ByteAcc, NoLock, Preserve)
244 {
245 Connection (
246 GpioIo(Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly,
Andy Shevchenko7ec92432018-01-04 18:40:12 +0200247 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 96 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300248 ),
249 WFD3, 1,
250 }
251 }
252
253 Device (PWM0)
254 {
255 Name (_ADR, 0x00170000)
256
257 Method (_STA, 0, NotSerialized)
258 {
259 Return (STA_VISIBLE)
260 }
261 }
Andy Shevchenko565b4ca2018-01-04 18:40:13 +0200262
263 Device (HSU0)
264 {
265 Name (_ADR, 0x00040001)
266
267 Method (_STA, 0, NotSerialized)
268 {
269 Return (STA_VISIBLE)
270 }
271
272 Device (BTH0)
273 {
274 Name (_HID, "BCM2E95")
275 Name (_DEP, Package ()
276 {
277 GPIO,
278 HSU0
279 })
280
281 Method (_STA, 0, NotSerialized)
282 {
283 Return (STA_VISIBLE)
284 }
285
Andy Shevchenko6b07d362018-01-10 18:07:26 +0200286 Method (_CRS, 0, Serialized)
Andy Shevchenko565b4ca2018-01-04 18:40:13 +0200287 {
288 Name (RBUF, ResourceTemplate ()
289 {
290 UartSerialBus (0x0001C200, DataBitsEight, StopBitsOne,
291 0xFC, LittleEndian, ParityTypeNone, FlowControlHardware,
292 0x20, 0x20, "\\_SB.PCI0.HSU0", 0, ResourceConsumer, , )
293 GpioInt (Level, ActiveHigh, Exclusive, PullNone, 0,
294 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 185 }
295 GpioIo (Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly,
296 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 184 }
297 GpioIo (Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly,
298 "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 71 }
299 })
300 Return (RBUF)
301 }
302
303 Name (_DSD, Package () {
304 ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
305 Package () {
306 Package () { "host-wakeup-gpios", Package () { ^BTH0, 0, 0, 0 } },
307 Package () { "device-wakeup-gpios", Package () { ^BTH0, 1, 0, 0 } },
308 Package () { "shutdown-gpios", Package () { ^BTH0, 2, 0, 0 } },
309 }
310 })
311 }
312 }
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300313}
314
315Device (FLIS)
316{
Andy Shevchenko42574572017-12-12 19:02:42 +0200317 Name (_HID, "INTC1002")
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300318 Name (_DDN, "Intel Merrifield Family-Level Interface Shim")
319 Name (RBUF, ResourceTemplate()
320 {
321 Memory32Fixed(ReadWrite, 0xFF0C0000, 0x00008000, )
322 PinGroup("spi5", ResourceProducer, ) { 90, 91, 92, 93, 94, 95, 96 }
323 PinGroup("uart0", ResourceProducer, ) { 115, 116, 117, 118 }
324 PinGroup("uart1", ResourceProducer, ) { 119, 120, 121, 122 }
325 PinGroup("uart2", ResourceProducer, ) { 123, 124, 125, 126 }
326 PinGroup("pwm0", ResourceProducer, ) { 144 }
327 PinGroup("pwm1", ResourceProducer, ) { 145 }
328 PinGroup("pwm2", ResourceProducer, ) { 132 }
329 PinGroup("pwm3", ResourceProducer, ) { 133 }
330 })
331
332 Method (_CRS, 0, NotSerialized)
333 {
334 Return (RBUF)
335 }
336
Andy Shevchenko286e77f2017-10-03 14:55:07 +0300337 Method (_STA, 0, NotSerialized)
338 {
339 Return (STA_VISIBLE)
340 }
341}