2 * Copyright (C) 2007-2009 coresystems GmbH
3 * Copyright (C) 2013 Google Inc.
4 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
6 * Modified from coreboot src/soc/intel/baytrail/acpi/lpc.asl
8 * SPDX-License-Identifier: GPL-2.0+
11 /* Intel LPC Bus Device - 0:1f.0 */
15 /* Intel Legacy Block */
16 OperationRegion(ILBS, SystemMemory, ILB_BASE_ADDRESS, ILB_BASE_SIZE)
17 Field(ILBS, AnyAcc, NoLock, Preserve) {
36 Name(_ADR, 0x001f0000)
38 OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
39 Field(LPC0, AnyAcc, NoLock, Preserve) {
47 #include <asm/acpi/irqlinks.asl>
52 Name(_HID, EISAID("INT0800"))
53 Name(_CRS, ResourceTemplate()
55 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
59 /* 8259 Interrupt Controller */
62 Name(_HID, EISAID("PNP0000"))
63 Name(_CRS, ResourceTemplate()
65 IO(Decode16, 0x20, 0x20, 0x01, 0x02)
66 IO(Decode16, 0x24, 0x24, 0x01, 0x02)
67 IO(Decode16, 0x28, 0x28, 0x01, 0x02)
68 IO(Decode16, 0x2c, 0x2c, 0x01, 0x02)
69 IO(Decode16, 0x30, 0x30, 0x01, 0x02)
70 IO(Decode16, 0x34, 0x34, 0x01, 0x02)
71 IO(Decode16, 0x38, 0x38, 0x01, 0x02)
72 IO(Decode16, 0x3c, 0x3c, 0x01, 0x02)
73 IO(Decode16, 0xa0, 0xa0, 0x01, 0x02)
74 IO(Decode16, 0xa4, 0xa4, 0x01, 0x02)
75 IO(Decode16, 0xa8, 0xa8, 0x01, 0x02)
76 IO(Decode16, 0xac, 0xac, 0x01, 0x02)
77 IO(Decode16, 0xb0, 0xb0, 0x01, 0x02)
78 IO(Decode16, 0xb4, 0xb4, 0x01, 0x02)
79 IO(Decode16, 0xb8, 0xb8, 0x01, 0x02)
80 IO(Decode16, 0xbc, 0xbc, 0x01, 0x02)
81 IO(Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
89 Name(_HID, EISAID("PNP0100"))
90 Name(_CRS, ResourceTemplate()
92 IO(Decode16, 0x40, 0x40, 0x01, 0x04)
93 IO(Decode16, 0x50, 0x50, 0x10, 0x04)
101 Name(_HID, EISAID("PNP0103"))
102 Name(_CID, 0x010CD041)
103 Name(_CRS, ResourceTemplate()
105 Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, HPET_BASE_SIZE)
117 Name(_HID, EISAID("PNP0501"))
120 Method(_STA, 0, Serialized)
122 If (LEqual(IURE, 1)) {
133 Method(_DIS, 0, Serialized)
140 Method(_CRS, 0, Serialized)
142 Name(BUF0, ResourceTemplate()
144 IO(Decode16, 0x03f8, 0x03f8, 0x01, 0x08)
148 Name(BUF1, ResourceTemplate()
150 IO(Decode16, 0x03f8, 0x03f8, 0x01, 0x08)
154 If (LLessEqual(SRID, 0x04)) {
162 /* Real Time Clock */
165 Name(_HID, EISAID("PNP0B00"))
166 Name(_CRS, ResourceTemplate()
168 IO(Decode16, 0x70, 0x70, 1, 8)
170 * Disable as Windows doesn't like it, and systems
171 * don't seem to use it
173 /* IRQNoFlags() { 8 } */
177 /* LPC device: Resource consumption */
180 Name(_HID, EISAID("PNP0C02"))
183 Name(RBUF, ResourceTemplate()
185 IO(Decode16, 0x61, 0x61, 0x1, 0x01) /* NMI Status */
186 IO(Decode16, 0x63, 0x63, 0x1, 0x01) /* CPU Reserved */
187 IO(Decode16, 0x65, 0x65, 0x1, 0x01) /* CPU Reserved */
188 IO(Decode16, 0x67, 0x67, 0x1, 0x01) /* CPU Reserved */
189 IO(Decode16, 0x80, 0x80, 0x1, 0x01) /* Port 80 Post */
190 IO(Decode16, 0x92, 0x92, 0x1, 0x01) /* CPU Reserved */
191 IO(Decode16, 0xb2, 0xb2, 0x1, 0x02) /* SWSMI */
194 Method(_CRS, 0, NotSerialized)