1/* 2 * Copyright (C) 2007-2009 coresystems GmbH 3 * Copyright (C) 2013 Google Inc. 4 * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com> 5 * 6 * Modified from coreboot src/soc/intel/baytrail/acpi/lpc.asl 7 * 8 * SPDX-License-Identifier: GPL-2.0+ 9 */ 10 11/* Intel LPC Bus Device - 0:1f.0 */ 12 13Device (LPCB) 14{ 15 Name(_ADR, 0x001f0000) 16 17 #include "irqlinks.asl" 18 19 /* Firmware Hub */ 20 Device (FWH) 21 { 22 Name(_HID, EISAID("INT0800")) 23 Name(_CRS, ResourceTemplate() 24 { 25 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000) 26 }) 27 } 28 29 /* 8259 Interrupt Controller */ 30 Device (PIC) 31 { 32 Name(_HID, EISAID("PNP0000")) 33 Name(_CRS, ResourceTemplate() 34 { 35 IO(Decode16, 0x20, 0x20, 0x01, 0x02) 36 IO(Decode16, 0x24, 0x24, 0x01, 0x02) 37 IO(Decode16, 0x28, 0x28, 0x01, 0x02) 38 IO(Decode16, 0x2c, 0x2c, 0x01, 0x02) 39 IO(Decode16, 0x30, 0x30, 0x01, 0x02) 40 IO(Decode16, 0x34, 0x34, 0x01, 0x02) 41 IO(Decode16, 0x38, 0x38, 0x01, 0x02) 42 IO(Decode16, 0x3c, 0x3c, 0x01, 0x02) 43 IO(Decode16, 0xa0, 0xa0, 0x01, 0x02) 44 IO(Decode16, 0xa4, 0xa4, 0x01, 0x02) 45 IO(Decode16, 0xa8, 0xa8, 0x01, 0x02) 46 IO(Decode16, 0xac, 0xac, 0x01, 0x02) 47 IO(Decode16, 0xb0, 0xb0, 0x01, 0x02) 48 IO(Decode16, 0xb4, 0xb4, 0x01, 0x02) 49 IO(Decode16, 0xb8, 0xb8, 0x01, 0x02) 50 IO(Decode16, 0xbc, 0xbc, 0x01, 0x02) 51 IO(Decode16, 0x4d0, 0x4d0, 0x01, 0x02) 52 IRQNoFlags () { 2 } 53 }) 54 } 55 56 /* 8254 timer */ 57 Device (TIMR) 58 { 59 Name(_HID, EISAID("PNP0100")) 60 Name(_CRS, ResourceTemplate() 61 { 62 IO(Decode16, 0x40, 0x40, 0x01, 0x04) 63 IO(Decode16, 0x50, 0x50, 0x10, 0x04) 64 IRQNoFlags() { 0 } 65 }) 66 } 67 68 /* HPET */ 69 Device (HPET) 70 { 71 Name(_HID, EISAID("PNP0103")) 72 Name(_CID, 0x010CD041) 73 Name(_CRS, ResourceTemplate() 74 { 75 Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, HPET_BASE_SIZE) 76 }) 77 78 Method(_STA) 79 { 80 Return (STA_VISIBLE) 81 } 82 } 83 84 /* Real Time Clock */ 85 Device (RTC) 86 { 87 Name(_HID, EISAID("PNP0B00")) 88 Name(_CRS, ResourceTemplate() 89 { 90 IO(Decode16, 0x70, 0x70, 1, 8) 91 /* 92 * Disable as Windows doesn't like it, and systems 93 * don't seem to use it 94 */ 95 /* IRQNoFlags() { 8 } */ 96 }) 97 } 98 99 /* LPC device: Resource consumption */ 100 Device (LDRC) 101 { 102 Name(_HID, EISAID("PNP0C02")) 103 Name(_UID, 2) 104 105 Name(RBUF, ResourceTemplate() 106 { 107 IO(Decode16, 0x61, 0x61, 0x1, 0x01) /* NMI Status */ 108 IO(Decode16, 0x63, 0x63, 0x1, 0x01) /* CPU Reserved */ 109 IO(Decode16, 0x65, 0x65, 0x1, 0x01) /* CPU Reserved */ 110 IO(Decode16, 0x67, 0x67, 0x1, 0x01) /* CPU Reserved */ 111 IO(Decode16, 0x80, 0x80, 0x1, 0x01) /* Port 80 Post */ 112 IO(Decode16, 0x92, 0x92, 0x1, 0x01) /* CPU Reserved */ 113 IO(Decode16, 0xb2, 0xb2, 0x1, 0x02) /* SWSMI */ 114 }) 115 116 Method(_CRS, 0, NotSerialized) 117 { 118 Return (RBUF) 119 } 120 } 121} 122