1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Copyright (C) 2007-2009 coresystems GmbH
4 * Copyright (C) 2013 Google Inc.
5 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
7 * Modified from coreboot src/soc/intel/baytrail/acpi/lpc.asl
10 /* Intel LPC Bus Device - 0:1f.0 */
14 /* Intel Legacy Block */
15 OperationRegion(ILBS, SystemMemory, ILB_BASE_ADDRESS, ILB_BASE_SIZE)
16 Field(ILBS, AnyAcc, NoLock, Preserve) {
35 Name(_ADR, 0x001f0000)
37 OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
38 Field(LPC0, AnyAcc, NoLock, Preserve) {
46 #include <asm/acpi/irqlinks.asl>
51 Name(_HID, EISAID("INT0800"))
52 Name(_CRS, ResourceTemplate()
54 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
58 /* 8259 Interrupt Controller */
61 Name(_HID, EISAID("PNP0000"))
62 Name(_CRS, ResourceTemplate()
64 IO(Decode16, 0x20, 0x20, 0x01, 0x02)
65 IO(Decode16, 0x24, 0x24, 0x01, 0x02)
66 IO(Decode16, 0x28, 0x28, 0x01, 0x02)
67 IO(Decode16, 0x2c, 0x2c, 0x01, 0x02)
68 IO(Decode16, 0x30, 0x30, 0x01, 0x02)
69 IO(Decode16, 0x34, 0x34, 0x01, 0x02)
70 IO(Decode16, 0x38, 0x38, 0x01, 0x02)
71 IO(Decode16, 0x3c, 0x3c, 0x01, 0x02)
72 IO(Decode16, 0xa0, 0xa0, 0x01, 0x02)
73 IO(Decode16, 0xa4, 0xa4, 0x01, 0x02)
74 IO(Decode16, 0xa8, 0xa8, 0x01, 0x02)
75 IO(Decode16, 0xac, 0xac, 0x01, 0x02)
76 IO(Decode16, 0xb0, 0xb0, 0x01, 0x02)
77 IO(Decode16, 0xb4, 0xb4, 0x01, 0x02)
78 IO(Decode16, 0xb8, 0xb8, 0x01, 0x02)
79 IO(Decode16, 0xbc, 0xbc, 0x01, 0x02)
80 IO(Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
88 Name(_HID, EISAID("PNP0100"))
89 Name(_CRS, ResourceTemplate()
91 IO(Decode16, 0x40, 0x40, 0x01, 0x04)
92 IO(Decode16, 0x50, 0x50, 0x10, 0x04)
100 Name(_HID, EISAID("PNP0103"))
101 Name(_CID, 0x010CD041)
102 Name(_CRS, ResourceTemplate()
104 Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, HPET_BASE_SIZE)
116 Name(_HID, EISAID("PNP0501"))
119 Method(_STA, 0, Serialized)
121 If (LEqual(IURE, 1)) {
132 Method(_DIS, 0, Serialized)
139 Name(BUF0, ResourceTemplate()
141 IO(Decode16, 0x03f8, 0x03f8, 0x01, 0x08)
145 Name(BUF1, ResourceTemplate()
147 IO(Decode16, 0x03f8, 0x03f8, 0x01, 0x08)
151 Method(_CRS, 0, Serialized)
153 If (LLessEqual(SRID, 0x04)) {
161 /* Real Time Clock */
164 Name(_HID, EISAID("PNP0B00"))
165 Name(_CRS, ResourceTemplate()
167 IO(Decode16, 0x70, 0x70, 1, 8)
169 * Disable as Windows doesn't like it, and systems
170 * don't seem to use it
172 /* IRQNoFlags() { 8 } */
176 /* LPC device: Resource consumption */
179 Name(_HID, EISAID("PNP0C02"))
182 Name(RBUF, ResourceTemplate()
184 IO(Decode16, 0x61, 0x61, 0x1, 0x01) /* NMI Status */
185 IO(Decode16, 0x63, 0x63, 0x1, 0x01) /* CPU Reserved */
186 IO(Decode16, 0x65, 0x65, 0x1, 0x01) /* CPU Reserved */
187 IO(Decode16, 0x67, 0x67, 0x1, 0x01) /* CPU Reserved */
188 IO(Decode16, 0x80, 0x80, 0x1, 0x01) /* Port 80 Post */
189 IO(Decode16, 0x92, 0x92, 0x1, 0x01) /* CPU Reserved */
190 IO(Decode16, 0xb2, 0xb2, 0x1, 0x02) /* SWSMI */
193 Method(_CRS, 0, NotSerialized)