1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2007-2009 coresystems GmbH 4 * Copyright (C) 2014 Google Inc. 5 * Copyright (C) 2015 Intel Corporation. 6 */ 7 8/* Intel LPC/eSPI Bus Device - 0:1f.0 */ 9#include <asm/arch/iomap.h> 10 11Device (LPCB) 12{ 13 Name (_ADR, 0x001f0000) 14 Name (_DDN, "LPC Bus Device") 15 16 /* DMA Controller */ 17 Device (DMAC) 18 { 19 Name (_HID, EISAID("PNP0200")) 20 Name (_CRS, ResourceTemplate() 21 { 22 IO (Decode16, 0x00, 0x00, 0x01, 0x20) 23 IO (Decode16, 0x81, 0x81, 0x01, 0x11) 24 IO (Decode16, 0x93, 0x93, 0x01, 0x0d) 25 IO (Decode16, 0xc0, 0xc0, 0x01, 0x20) 26 DMA (Compatibility, NotBusMaster, Transfer8_16) { 4 } 27 }) 28 } 29 30 /* Firmware Hub */ 31 Device (FWH) 32 { 33 Name (_HID, EISAID ("INT0800")) 34 Name (_DDN, "Firmware Hub") 35 Name (_CRS, ResourceTemplate () 36 { 37 Memory32Fixed (ReadOnly, 0xff000000, 0x01000000) 38 }) 39 } 40 41 /* High Precision Event Timer */ 42 Device (HPET) 43 { 44 Name (_HID, EISAID ("PNP0103")) 45 Name (_CID, 0x010CD041) 46 Name (_DDN, "High Precision Event Timer") 47 Name (_CRS, ResourceTemplate () 48 { 49 Memory32Fixed (ReadWrite, HPET_BASE_ADDRESS, 0x400) 50 }) 51 Method (_STA, 0) 52 { 53 Return (0xF) 54 } 55 } 56 57 /* FPU */ 58 Device(MATH) 59 { 60 Name (_HID, EISAID("PNP0C04")) 61 Name (_CRS, ResourceTemplate() 62 { 63 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01) 64 IRQNoFlags() { 13 } 65 }) 66 } 67 68 /* AT Interrupt Controller */ 69 Device (PIC) 70 { 71 Name (_HID, EISAID ("PNP0000")) 72 Name (_DDN, "8259 Interrupt Controller") 73 Name (_CRS, ResourceTemplate() 74 { 75 IO (Decode16, 0x20, 0x20, 0x01, 0x02) 76 IO (Decode16, 0x24, 0x24, 0x01, 0x02) 77 IO (Decode16, 0x28, 0x28, 0x01, 0x02) 78 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02) 79 IO (Decode16, 0x30, 0x30, 0x01, 0x02) 80 IO (Decode16, 0x34, 0x34, 0x01, 0x02) 81 IO (Decode16, 0x38, 0x38, 0x01, 0x02) 82 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02) 83 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02) 84 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02) 85 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02) 86 IO (Decode16, 0xac, 0xac, 0x01, 0x02) 87 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02) 88 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02) 89 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02) 90 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02) 91 IO (Decode16, 0x4d0, 0x4d0, 0x01, 0x02) 92 IRQNoFlags () { 2 } 93 }) 94 } 95 96 /* LPC device: Resource consumption */ 97 Device (LDRC) 98 { 99 Name (_HID, EISAID ("PNP0C02")) 100 Name (_UID, 2) 101 Name (_DDN, "Legacy Device Resources") 102 Name (_CRS, ResourceTemplate () 103 { 104 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO 105 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO 106 IO (Decode16, 0x61, 0x61, 0x1, 0x01) // NMI Status 107 IO (Decode16, 0x63, 0x63, 0x1, 0x01) // CPU Reserved 108 IO (Decode16, 0x65, 0x65, 0x1, 0x01) // CPU Reserved 109 IO (Decode16, 0x67, 0x67, 0x1, 0x01) // CPU Reserved 110 IO (Decode16, 0x80, 0x80, 0x1, 0x01) // Port 80 Post 111 IO (Decode16, 0x92, 0x92, 0x1, 0x01) // CPU Reserved 112 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI 113 IO (Decode16, ACPI_BASE_ADDRESS, ACPI_BASE_ADDRESS, 114 0x1, 0xff) 115 }) 116 } 117 118 /* Real Time Clock Device */ 119 Device (RTC) 120 { 121 Name (_HID, EISAID ("PNP0B00")) 122 Name (_DDN, "Real Time Clock") 123 Name (_CRS, ResourceTemplate () 124 { 125 IO (Decode16, 0x70, 0x70, 1, 8) 126 }) 127 } 128 129 /* Timer */ 130 Device (TIMR) 131 { 132 Name (_HID, EISAID ("PNP0100")) 133 Name (_DDN, "8254 Timer") 134 Name (_CRS, ResourceTemplate () 135 { 136 IO (Decode16, 0x40, 0x40, 0x01, 0x04) 137 IO (Decode16, 0x50, 0x50, 0x10, 0x04) 138 IRQNoFlags () {0} 139 }) 140 } 141} 142