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