1 /* SPDX-License-Identifier: GPL-2.0-only */
5 // Intel LPC Bus Device - 0:1f.0
11 OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
12 Field (LPC0, AnyAcc, NoLock, Preserve)
16 Offset (0x60), // Interrupt Routing Registers
27 Offset (0x80), // IO Decode Ranges
32 #include <southbridge/intel/common/acpi/irqlinks.asl>
34 #include "acpi/ec.asl"
36 Device (DMAC) // DMA Controller
38 Name(_HID, EISAID("PNP0200"))
39 Name(_CRS, ResourceTemplate()
41 IO (Decode16, 0x00, 0x00, 0x01, 0x20)
42 IO (Decode16, 0x81, 0x81, 0x01, 0x11)
43 IO (Decode16, 0x93, 0x93, 0x01, 0x0d)
44 IO (Decode16, 0xc0, 0xc0, 0x01, 0x20)
45 DMA (Compatibility, NotBusMaster, Transfer8_16) { 4 }
49 Device (FWH) // Firmware Hub
51 Name (_HID, EISAID("INT0800"))
52 Name (_CRS, ResourceTemplate()
54 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
60 Name (_HID, EISAID("PNP0103"))
61 Name (_CID, 0x010CD041)
63 Name(BUF0, ResourceTemplate()
65 Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, 0x400, FED0)
68 Method (_STA, 0) // Device Status
73 Method (_CRS, 0, Serialized) // Current resources
76 CreateDWordField(BUF0, \_SB.PCI0.LPCB.HPET.FED0._BAS, HPT0)
78 HPT0 = HPET_BASE_ADDRESS + 0x1000
82 HPT0 = HPET_BASE_ADDRESS + 0x2000
86 HPT0 = HPET_BASE_ADDRESS + 0x3000
94 Device(PIC) // 8259 Interrupt Controller
96 Name(_HID,EISAID("PNP0000"))
97 Name(_CRS, ResourceTemplate()
99 IO (Decode16, 0x20, 0x20, 0x01, 0x02)
100 IO (Decode16, 0x24, 0x24, 0x01, 0x02)
101 IO (Decode16, 0x28, 0x28, 0x01, 0x02)
102 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02)
103 IO (Decode16, 0x30, 0x30, 0x01, 0x02)
104 IO (Decode16, 0x34, 0x34, 0x01, 0x02)
105 IO (Decode16, 0x38, 0x38, 0x01, 0x02)
106 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02)
107 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02)
108 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02)
109 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02)
110 IO (Decode16, 0xac, 0xac, 0x01, 0x02)
111 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02)
112 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02)
113 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02)
114 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02)
115 IO (Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
122 Name (_HID, EISAID("PNP0C04"))
123 Name (_CRS, ResourceTemplate()
125 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
130 Device(LDRC) // LPC device: Resource consumption
132 Name (_HID, EISAID("PNP0C02"))
134 Name (_CRS, ResourceTemplate()
136 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
137 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
138 IO (Decode16, 0x61, 0x61, 0x1, 0x01) // NMI Status
139 IO (Decode16, 0x63, 0x63, 0x1, 0x01) // CPU Reserved
140 IO (Decode16, 0x65, 0x65, 0x1, 0x01) // CPU Reserved
141 IO (Decode16, 0x67, 0x67, 0x1, 0x01) // CPU Reserved
142 IO (Decode16, 0x80, 0x80, 0x1, 0x01) // Port 80 Post
143 IO (Decode16, 0x92, 0x92, 0x1, 0x01) // CPU Reserved
144 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI
145 IO (Decode16, DEFAULT_PMBASE, DEFAULT_PMBASE, 0x1, 0x80) // ICH ACPI
146 IO (Decode16, DEFAULT_GPIOBASE, DEFAULT_GPIOBASE, 0x1, 0x40) // ICH GPIO
150 Device (RTC) // Real Time Clock
152 Name (_HID, EISAID("PNP0B00"))
153 Name (_CRS, ResourceTemplate()
155 IO (Decode16, 0x70, 0x70, 1, 8)
159 Device (TIMR) // Intel 8254 timer
161 Name(_HID, EISAID("PNP0100"))
162 Name(_CRS, ResourceTemplate()
164 IO (Decode16, 0x40, 0x40, 0x01, 0x04)
165 IO (Decode16, 0x50, 0x50, 0x10, 0x04)
170 #include "acpi/superio.asl"
172 Device (PS2K) // Keyboard
174 Name(_HID, EISAID("PNP0303"))
175 Name(_CID, EISAID("PNP030B"))
177 Name(_CRS, ResourceTemplate()
179 IO (Decode16, 0x60, 0x60, 0x01, 0x01)
180 IO (Decode16, 0x64, 0x64, 0x01, 0x01)
181 IRQ (Edge, ActiveHigh, Exclusive) { 0x01 } // IRQ 1
190 Device (PS2M) // Mouse
192 Name(_HID, EISAID("PNP0F13"))
193 Name(_CRS, ResourceTemplate()
195 IRQ (Edge, ActiveHigh, Exclusive) { 0x0c } // IRQ 12