]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
39665bee AS |
2 | /* |
3 | * Copyright (c) 2017 Intel Corporation | |
4 | * | |
5 | * Partially based on southcluster.asl for other x86 platforms | |
39665bee AS |
6 | */ |
7 | ||
8 | Device (PCI0) | |
9 | { | |
10 | Name (_HID, EISAID("PNP0A08")) /* PCIe */ | |
11 | Name (_CID, EISAID("PNP0A03")) /* PCI */ | |
12 | ||
03f78868 AS |
13 | Name (_ADR, Zero) |
14 | Name (_BBN, Zero) | |
39665bee AS |
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 | ||
0c6352ec AS |
69 | /* Device Resource Consumption */ |
70 | Device (PDRC) | |
71 | { | |
72 | Name (_HID, EISAID("PNP0C02")) | |
73 | Name (_UID, One) | |
74 | ||
75 | Name (PDRS, ResourceTemplate() | |
76 | { | |
77 | Memory32Fixed(ReadWrite, MCFG_BASE_ADDRESS, MCFG_BASE_SIZE) | |
78 | }) | |
79 | ||
80 | Method (_CRS, 0, Serialized) | |
81 | { | |
82 | Return (PDRS) | |
83 | } | |
84 | } | |
85 | ||
39665bee AS |
86 | Method (_OSC, 4) |
87 | { | |
88 | /* Check for proper GUID */ | |
89 | If (LEqual(Arg0, ToUUID("33db4d5b-1ff7-401c-9657-7441c03dd766"))) { | |
90 | /* Let OS control everything */ | |
91 | Return (Arg3) | |
92 | } Else { | |
93 | /* Unrecognized UUID */ | |
94 | CreateDWordField(Arg3, 0, CDW1) | |
95 | Or(CDW1, 4, CDW1) | |
96 | Return (Arg3) | |
97 | } | |
98 | } | |
99 | ||
100 | Device (SDHC) | |
101 | { | |
102 | Name (_ADR, 0x00010003) | |
103 | Name (_DEP, Package (0x01) | |
104 | { | |
105 | GPIO | |
106 | }) | |
107 | Name (PSTS, Zero) | |
108 | ||
109 | Method (_STA) | |
110 | { | |
111 | Return (STA_VISIBLE) | |
112 | } | |
113 | ||
114 | Method (_PS3, 0, NotSerialized) | |
115 | { | |
116 | } | |
117 | ||
118 | Method (_PS0, 0, NotSerialized) | |
119 | { | |
120 | If (PSTS == Zero) | |
121 | { | |
122 | If (^^GPIO.AVBL == One) | |
123 | { | |
124 | ^^GPIO.WFD3 = One | |
125 | PSTS = One | |
126 | } | |
127 | } | |
128 | } | |
129 | ||
130 | /* BCM43340 */ | |
131 | Device (BRC1) | |
132 | { | |
133 | Name (_ADR, 0x01) | |
134 | Name (_DEP, Package (0x01) | |
135 | { | |
136 | GPIO | |
137 | }) | |
138 | ||
139 | Method (_STA) | |
140 | { | |
141 | Return (STA_VISIBLE) | |
142 | } | |
143 | ||
144 | Method (_RMV, 0, NotSerialized) | |
145 | { | |
146 | Return (Zero) | |
147 | } | |
148 | ||
149 | Method (_PS3, 0, NotSerialized) | |
150 | { | |
151 | If (^^^GPIO.AVBL == One) | |
152 | { | |
153 | ^^^GPIO.WFD3 = Zero | |
154 | PSTS = Zero | |
155 | } | |
156 | } | |
157 | ||
158 | Method (_PS0, 0, NotSerialized) | |
159 | { | |
160 | If (PSTS == Zero) | |
161 | { | |
162 | If (^^^GPIO.AVBL == One) | |
163 | { | |
164 | ^^^GPIO.WFD3 = One | |
165 | PSTS = One | |
166 | } | |
167 | } | |
168 | } | |
169 | } | |
170 | ||
171 | Device (BRC2) | |
172 | { | |
173 | Name (_ADR, 0x02) | |
174 | Method (_STA, 0, NotSerialized) | |
175 | { | |
176 | Return (STA_VISIBLE) | |
177 | } | |
178 | ||
179 | Method (_RMV, 0, NotSerialized) | |
180 | { | |
181 | Return (Zero) | |
182 | } | |
183 | } | |
184 | } | |
185 | ||
186 | Device (SPI5) | |
187 | { | |
188 | Name (_ADR, 0x00070001) | |
189 | Name (RBUF, ResourceTemplate() | |
190 | { | |
191 | GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, | |
d08953e0 | 192 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 110 } |
39665bee | 193 | GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, |
d08953e0 | 194 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 111 } |
39665bee | 195 | GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, |
d08953e0 | 196 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 112 } |
39665bee | 197 | GpioIo(Exclusive, PullUp, 0, 0, IoRestrictionOutputOnly, |
d08953e0 | 198 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 113 } |
1d2825aa AS |
199 | |
200 | FixedDMA(0x000d, 0x0002, Width32bit, ) | |
201 | FixedDMA(0x000c, 0x0003, Width32bit, ) | |
39665bee AS |
202 | }) |
203 | ||
204 | Method (_CRS, 0, NotSerialized) | |
205 | { | |
206 | Return (RBUF) | |
207 | } | |
208 | ||
209 | /* | |
210 | * See | |
211 | * http://www.kernel.org/doc/Documentation/acpi/gpio-properties.txt | |
212 | * for more information about GPIO bindings. | |
213 | */ | |
214 | Name (_DSD, Package () { | |
215 | ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), | |
216 | Package () { | |
217 | Package () { | |
218 | "cs-gpios", Package () { | |
219 | ^SPI5, 0, 0, 0, | |
220 | ^SPI5, 1, 0, 0, | |
221 | ^SPI5, 2, 0, 0, | |
222 | ^SPI5, 3, 0, 0, | |
223 | }, | |
224 | }, | |
225 | } | |
226 | }) | |
227 | ||
228 | Method (_STA, 0, NotSerialized) | |
229 | { | |
230 | Return (STA_VISIBLE) | |
231 | } | |
232 | } | |
233 | ||
234 | Device (I2C1) | |
235 | { | |
236 | Name (_ADR, 0x00080000) | |
237 | ||
238 | Method (_STA, 0, NotSerialized) | |
239 | { | |
240 | Return (STA_VISIBLE) | |
241 | } | |
c652dd15 | 242 | |
d0f7ab53 AS |
243 | Name (SSCN, Package () |
244 | { | |
245 | 0x02F8, 0x037B, Zero, | |
246 | }) | |
247 | ||
248 | Name (FMCN, Package () | |
249 | { | |
250 | 0x0087, 0x010A, Zero, | |
251 | }) | |
252 | ||
253 | Name (HSCN, Package () | |
254 | { | |
255 | 0x0008, 0x0020, Zero, | |
256 | }) | |
257 | ||
c652dd15 AS |
258 | Name (RBUF, ResourceTemplate() |
259 | { | |
260 | FixedDMA(0x0009, 0x0000, Width32bit, ) | |
261 | FixedDMA(0x0008, 0x0001, Width32bit, ) | |
262 | }) | |
263 | ||
264 | Method (_CRS, 0, NotSerialized) | |
265 | { | |
266 | Return (RBUF) | |
267 | } | |
39665bee AS |
268 | } |
269 | ||
f7ce2d6e GS |
270 | Device (I2C6) |
271 | { | |
272 | Name (_ADR, 0x00090001) | |
273 | ||
274 | Method (_STA, 0, NotSerialized) | |
275 | { | |
276 | Return (STA_VISIBLE) | |
277 | } | |
d0f7ab53 AS |
278 | |
279 | Name (SSCN, Package () | |
280 | { | |
281 | 0x02F8, 0x037B, Zero, | |
282 | }) | |
283 | ||
284 | Name (FMCN, Package () | |
285 | { | |
286 | 0x0087, 0x010A, Zero, | |
287 | }) | |
288 | ||
289 | Name (HSCN, Package () | |
290 | { | |
291 | 0x0008, 0x0020, Zero, | |
292 | }) | |
f7ce2d6e GS |
293 | } |
294 | ||
39665bee AS |
295 | Device (GPIO) |
296 | { | |
297 | Name (_ADR, 0x000c0000) | |
298 | ||
299 | Method (_STA) | |
300 | { | |
301 | Return (STA_VISIBLE) | |
302 | } | |
303 | ||
304 | Name (AVBL, Zero) | |
305 | Method (_REG, 2, NotSerialized) | |
306 | { | |
307 | If (Arg0 == 0x08) | |
308 | { | |
309 | AVBL = Arg1 | |
310 | } | |
311 | } | |
312 | ||
313 | OperationRegion (GPOP, GeneralPurposeIo, 0, 1) | |
314 | Field (GPOP, ByteAcc, NoLock, Preserve) | |
315 | { | |
316 | Connection ( | |
317 | GpioIo(Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, | |
d08953e0 | 318 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 96 } |
39665bee AS |
319 | ), |
320 | WFD3, 1, | |
321 | } | |
322 | } | |
323 | ||
4d073fa8 AS |
324 | Device (DWC3) |
325 | { | |
326 | Name (_ADR, 0x00110000) | |
327 | Name (_DEP, Package () | |
328 | { | |
329 | ^IPC1.PMIC | |
330 | }) | |
331 | ||
332 | Method (_STA, 0, NotSerialized) | |
333 | { | |
334 | Return (STA_VISIBLE) | |
335 | } | |
336 | ||
337 | Device (RHUB) | |
338 | { | |
339 | Name (_ADR, Zero) | |
340 | ||
d8177a94 AS |
341 | Name (PCKG, Package () { |
342 | Buffer (0x14) {} | |
343 | }) | |
344 | ||
4d073fa8 AS |
345 | /* GPLD: Generate Port Location Data (PLD) */ |
346 | Method (GPLD, 1, Serialized) { | |
4d073fa8 AS |
347 | /* REV: Revision 0x02 for ACPI 5.0 */ |
348 | CreateField (DerefOf (Index (PCKG, Zero)), Zero, 0x07, REV) | |
349 | Store (0x0002, REV) | |
350 | ||
351 | /* VISI: Port visibility to user per port */ | |
352 | CreateField (DerefOf (Index (PCKG, Zero)), 0x40, One, VISI) | |
353 | Store (Arg0, VISI) | |
354 | ||
355 | /* VOFF: Vertical offset is not supplied */ | |
356 | CreateField (DerefOf (Index (PCKG, Zero)), 0x80, 0x10, VOFF) | |
357 | Store (0xFFFF, VOFF) | |
358 | ||
359 | /* HOFF: Horizontal offset is not supplied */ | |
360 | CreateField (DerefOf (Index (PCKG, Zero)), 0x90, 0x10, HOFF) | |
361 | Store (0xFFFF, HOFF) | |
362 | ||
363 | Return (PCKG) | |
364 | } | |
365 | ||
366 | Device (HS01) { Name (_ADR, 1) } | |
367 | Device (SS01) { Name (_ADR, 2) } | |
368 | } | |
369 | } | |
370 | ||
39665bee AS |
371 | Device (PWM0) |
372 | { | |
373 | Name (_ADR, 0x00170000) | |
374 | ||
375 | Method (_STA, 0, NotSerialized) | |
376 | { | |
377 | Return (STA_VISIBLE) | |
378 | } | |
379 | } | |
5d8c4ebd AS |
380 | |
381 | Device (HSU0) | |
382 | { | |
383 | Name (_ADR, 0x00040001) | |
384 | ||
385 | Method (_STA, 0, NotSerialized) | |
386 | { | |
387 | Return (STA_VISIBLE) | |
388 | } | |
389 | ||
390 | Device (BTH0) | |
391 | { | |
392 | Name (_HID, "BCM2E95") | |
393 | Name (_DEP, Package () | |
394 | { | |
395 | GPIO, | |
396 | HSU0 | |
397 | }) | |
398 | ||
399 | Method (_STA, 0, NotSerialized) | |
400 | { | |
401 | Return (STA_VISIBLE) | |
402 | } | |
403 | ||
d8177a94 AS |
404 | Name (RBUF, ResourceTemplate() |
405 | { | |
406 | UartSerialBus(0x0001C200, DataBitsEight, StopBitsOne, | |
407 | 0xFC, LittleEndian, ParityTypeNone, FlowControlHardware, | |
408 | 0x20, 0x20, "\\_SB.PCI0.HSU0", 0, ResourceConsumer, , ) | |
409 | GpioInt(Level, ActiveHigh, Exclusive, PullNone, 0, | |
410 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 185 } | |
411 | GpioIo(Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, | |
412 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 184 } | |
413 | GpioIo(Exclusive, PullDefault, 0, 0, IoRestrictionOutputOnly, | |
414 | "\\_SB.PCI0.GPIO", 0, ResourceConsumer, , ) { 71 } | |
415 | }) | |
416 | ||
3ffb33d6 | 417 | Method (_CRS, 0, Serialized) |
5d8c4ebd | 418 | { |
5d8c4ebd AS |
419 | Return (RBUF) |
420 | } | |
421 | ||
422 | Name (_DSD, Package () { | |
423 | ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), | |
424 | Package () { | |
425 | Package () { "host-wakeup-gpios", Package () { ^BTH0, 0, 0, 0 } }, | |
426 | Package () { "device-wakeup-gpios", Package () { ^BTH0, 1, 0, 0 } }, | |
427 | Package () { "shutdown-gpios", Package () { ^BTH0, 2, 0, 0 } }, | |
428 | } | |
429 | }) | |
430 | } | |
431 | } | |
24b56e2b AS |
432 | |
433 | Device (IPC1) | |
434 | { | |
435 | Name (_ADR, 0x00130000) | |
436 | ||
437 | Method (_STA, 0, NotSerialized) | |
438 | { | |
439 | Return (STA_VISIBLE) | |
440 | } | |
441 | ||
442 | Device (PMIC) | |
443 | { | |
444 | Name (_ADR, Zero) | |
445 | Name (_HID, "INTC100E") | |
446 | Name (_CID, "INTC100E") | |
447 | Name (_DDN, "Basin Cove PMIC") | |
448 | Name (_DEP, Package () | |
449 | { | |
450 | IPC1 | |
451 | }) | |
452 | ||
453 | Method (_STA, 0, NotSerialized) | |
454 | { | |
455 | Return (STA_VISIBLE) | |
456 | } | |
457 | ||
d8177a94 AS |
458 | Name (RBUF, ResourceTemplate() |
459 | { | |
460 | /* | |
461 | * Shadow registers in SRAM for PMIC: | |
462 | * SRAM PMIC register | |
463 | * -------------------- | |
464 | * 0x00- Unknown | |
465 | * 0x03 THRMIRQ (0x04) | |
466 | * 0x04 BCUIRQ (0x05) | |
467 | * 0x05 ADCIRQ (0x06) | |
468 | * 0x06 CHGRIRQ0 (0x07) | |
469 | * 0x07 CHGRIRQ1 (0x08) | |
470 | * 0x08- Unknown | |
471 | * 0x0a PBSTATUS (0x27) | |
472 | * 0x0b- Unknown | |
473 | */ | |
474 | Memory32Fixed(ReadWrite, 0xFFFFF610, 0x00000010) | |
475 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 30 } | |
476 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 23 } | |
477 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 52 } | |
478 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 51 } | |
479 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 50 } | |
480 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 27 } | |
481 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 49 } | |
482 | }) | |
483 | ||
24b56e2b AS |
484 | Method (_CRS, 0, Serialized) |
485 | { | |
24b56e2b AS |
486 | Return (RBUF) |
487 | } | |
488 | ||
489 | OperationRegion (PMOP, 0x8D, Zero, 0x0100) | |
490 | Field (PMOP, DWordAcc, NoLock, Preserve) | |
491 | { | |
492 | SEL1, 32, | |
493 | SEL2, 32, | |
494 | VCCL, 32, | |
495 | VNNL, 32, | |
496 | AONL, 32, | |
497 | CNTC, 32, | |
498 | CNTN, 32, | |
499 | AONN, 32, | |
500 | CNT1, 32, | |
501 | CNT2, 32, | |
502 | CNT3, 32, | |
503 | FLEX, 32, | |
504 | PRG1, 32, | |
505 | PRG2, 32, | |
506 | PRG3, 32, | |
507 | VLDO, 32, | |
508 | } | |
509 | ||
510 | Name (AVBL, Zero) | |
511 | Method (_REG, 2, NotSerialized) | |
512 | { | |
513 | If ((Arg0 == 0x8D)) | |
514 | { | |
515 | AVBL = Arg1 | |
516 | } | |
517 | } | |
518 | } | |
519 | } | |
e3be52ce AS |
520 | |
521 | Device (GDMA) | |
522 | { | |
523 | Name (_ADR, 0x00150000) | |
524 | Name (_HID, "808611A2") | |
525 | Name (_UID, Zero) | |
526 | ||
527 | Method (_STA, 0, NotSerialized) | |
528 | { | |
529 | Return (STA_VISIBLE) | |
530 | } | |
531 | ||
d8177a94 AS |
532 | Name (RBUF, ResourceTemplate () |
533 | { | |
534 | Memory32Fixed(ReadWrite, 0xFF192000, 0x00001000) | |
535 | Interrupt(ResourceConsumer, Level, ActiveHigh, Shared, ,, ) { 32 } | |
536 | }) | |
537 | ||
e3be52ce AS |
538 | Method (_CRS, 0, Serialized) |
539 | { | |
e3be52ce AS |
540 | Return (RBUF) |
541 | } | |
542 | } | |
39665bee AS |
543 | } |
544 | ||
545 | Device (FLIS) | |
546 | { | |
1602d215 | 547 | Name (_HID, "INTC1002") |
39665bee AS |
548 | Name (_DDN, "Intel Merrifield Family-Level Interface Shim") |
549 | Name (RBUF, ResourceTemplate() | |
550 | { | |
73af0601 | 551 | Memory32Fixed(ReadWrite, 0xFF0C0000, 0x00008000) |
39665bee AS |
552 | PinGroup("spi5", ResourceProducer, ) { 90, 91, 92, 93, 94, 95, 96 } |
553 | PinGroup("uart0", ResourceProducer, ) { 115, 116, 117, 118 } | |
554 | PinGroup("uart1", ResourceProducer, ) { 119, 120, 121, 122 } | |
555 | PinGroup("uart2", ResourceProducer, ) { 123, 124, 125, 126 } | |
556 | PinGroup("pwm0", ResourceProducer, ) { 144 } | |
557 | PinGroup("pwm1", ResourceProducer, ) { 145 } | |
558 | PinGroup("pwm2", ResourceProducer, ) { 132 } | |
559 | PinGroup("pwm3", ResourceProducer, ) { 133 } | |
560 | }) | |
561 | ||
562 | Method (_CRS, 0, NotSerialized) | |
563 | { | |
564 | Return (RBUF) | |
565 | } | |
566 | ||
39665bee AS |
567 | Method (_STA, 0, NotSerialized) |
568 | { | |
569 | Return (STA_VISIBLE) | |
570 | } | |
571 | } |