1/** @file 2Legacy resource template 3 4Copyright (c) 2013-2015 Intel Corporation. 5 6This program and the accompanying materials 7are licensed and made available under the terms and conditions of the BSD License 8which accompanies this distribution. The full text of the license may be found at 9http://opensource.org/licenses/bsd-license.php 10 11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14**/ 15 16#ifndef LPC_DEV_ASI 17#define LPC_DEV_ASI 18 19Device(RTC) 20{ 21 Name(_HID,EISAID("PNP0B00")) 22 Name(BUF0,ResourceTemplate() { 23 IO(Decode16,0x70,0x70,0x01,0x04) 24 IO(Decode16,0x74,0x74,0x01,0x04) 25 }) 26 Name(BUF1,ResourceTemplate() { 27 IO(Decode16,0x70,0x70,0x01,0x04) 28 IO(Decode16,0x74,0x74,0x01,0x04) 29 IRQNoFlags(){8} 30 }) 31 Method(_CRS,0,Serialized) 32 { 33 If (HPEA) 34 { 35 return (BUF0) 36 } 37 Else 38 { 39 return (BUF1) 40 } 41 } 42} 43 44Device(PIC) 45{ 46 Name(_HID,EISAID("PNP0000")) 47 48 Name(_CRS,ResourceTemplate() { 49 IO(Decode16,0x20,0x20,0x01,0x1E) // length of 1Eh includes all aliases 50 IO(Decode16,0xA0,0xA0,0x01,0x1E) 51 IO(Decode16,0x4D0,0x4D0,0x01,0x02) 52 }) 53} 54 55Device(TMR) 56{ 57 Name(_HID,EISAID("PNP0100")) 58 59 Name(BUF0,ResourceTemplate() { 60 IO(Decode16,0x40,0x40,0x01,0x04) 61 IO(Decode16,0x50,0x50,0x01,0x04) // alias 62 }) 63 Name(BUF1,ResourceTemplate() { 64 IO(Decode16,0x40,0x40,0x01,0x04) 65 IO(Decode16,0x50,0x50,0x01,0x04) // alias 66 IRQNoFlags(){0} 67 }) 68 Method(_CRS,0,Serialized) 69 { 70 If (HPEA) 71 { 72 return (BUF0) 73 } 74 Else 75 { 76 return (BUF1) 77 } 78 } 79} 80 81Device(SPKR) 82{ 83 Name(_HID,EISAID("PNP0800")) 84 85 Name(_CRS,ResourceTemplate() { 86 IO(Decode16,0x61,0x61,0x01,0x01) 87 }) 88} 89 90Device(XTRA) // all "PNP0C02" devices- pieces that don't fit anywhere else 91{ 92 Name(_HID,EISAID("PNP0C02")) // Generic motherboard devices 93 94 Name(CRS, 95 ResourceTemplate() 96 { 97 IO(Decode16,0x2E,0x2E,0x01,0x02) 98 IO(Decode16,0x4E,0x2E,0x01,0x02) 99 IO(Decode16,0x63,0x61,0x01,0x01) 100 IO(Decode16,0x65,0x61,0x01,0x01) 101 IO(Decode16,0x67,0x61,0x01,0x01) 102 IO(Decode16,0x80,0x80,0x01,0x01) 103 IO(Decode16,0x84,0x84,0x01,0x04) 104 IO(Decode16,0x88,0x88,0x01,0x01) 105 IO(Decode16,0x8c,0x8c,0x01,0x03) 106 IO(Decode16,0x92,0x92,0x01,0x01) 107 108 IO( 109 Decode16, 110 0, 111 0, 112 0x01, 113 0x10, 114 FIX1 115 ) 116 117 IO( 118 Decode16, 119 0, 120 0, 121 0x01, 122 0x10, 123 FIX2 124 ) 125 126 IO( 127 Decode16, 128 0, 129 0, 130 0x01, 131 0x40, 132 FIX3 133 ) 134 135 IO( 136 Decode16, 137 0, 138 0, 139 0x01, 140 0x40, 141 FIX5 142 ) 143 144 IO( 145 Decode16, 146 0, 147 0, 148 0x01, 149 0x40, 150 FIX6 151 ) 152 153 } 154 ) 155 156 Method (_CRS, 0, NotSerialized) { 157 CreateWordField (CRS, ^FIX1._MIN, MBR0) 158 Store(\P1BB, MBR0) 159 CreateWordField (CRS, ^FIX1._MAX, MBR1) 160 Store(\P1BB, MBR1) 161 CreateWordField (CRS, ^FIX2._MIN, MBR2) 162 Store(\PBAB, MBR2) 163 CreateWordField (CRS, ^FIX2._MAX, MBR3) 164 Store(\PBAB, MBR3) 165 CreateWordField (CRS, ^FIX3._MIN, MBR4) 166 Store(\GP0B, MBR4) 167 CreateWordField (CRS, ^FIX3._MAX, MBR5) 168 Store(\GP0B, MBR5) 169 CreateWordField (CRS, ^FIX5._MIN, MBR8) 170 Store(\SMBB, MBR8) 171 CreateWordField (CRS, ^FIX5._MAX, MBR9) 172 Store(\SMBB, MBR9) 173 CreateWordField (CRS, ^FIX6._MIN, MBRA) 174 Store(\WDTB, MBRA) 175 CreateWordField (CRS, ^FIX6._MAX, MBRB) 176 Store(\WDTB, MBRB) 177 return (CRS) 178 } 179} 180 181Device(LGIO) // Legacy GPIO. 182{ 183 Name(_HID, "INT3488") 184 Name(_CID, "INT3488") 185 186 Name(CRS, 187 ResourceTemplate() 188 { 189 IO( 190 Decode16, 191 0, 192 0, 193 0x01, 194 0x48, 195 FIX4 196 ) 197 } 198 ) 199 200 Method (_CRS, 0, NotSerialized) { 201 CreateWordField (CRS, ^FIX4._MIN, MBR6) 202 Store(\GPAB, MBR6) 203 CreateWordField (CRS, ^FIX4._MAX, MBR7) 204 Store(\GPAB, MBR7) 205 return (CRS) 206 } 207} 208 209Device(HPET) // High Performance Event Timer 210{ 211 Name(_HID,EISAID("PNP0103")) 212 213 Name(BUF0,ResourceTemplate() 214 { 215 IRQNoFlags() {0} 216 IRQNoFlags() {8} 217 Memory32Fixed(ReadOnly, 0, 0, FIX1) 218 }) 219 220 Method(_STA,0) 221 { 222 // Show this Device only if the OS is WINXP or beyond. 223 224 If(LGreaterEqual(OSTP,WINDOWS_XP)) 225 { 226 If(HPEA) 227 { 228 Return(0x000F) // Enabled, do Display. 229 } 230 } 231 Else 232 { 233 // OS = WIN98, WINME, or WIN2000. 234 235 If(HPEA) 236 { 237 Return(0x000B) // Enabled, don't Display. 238 } 239 } 240 241 Return(0x0000) // Return Nothing. 242 } 243 244 Method(_CRS,0,Serialized) 245 { 246 CreateDWordField (BUF0, ^FIX1._BAS, MBR0) 247 Store(\HPTB, MBR0) 248 CreateDWordField (BUF0, ^FIX1._LEN, MBR1) 249 Store(\HPTS, MBR1) 250 Return(BUF0) 251 } 252} 253 254#endif 255