trunk/src/emu/machine/lpc-acpi.c
| r0 | r241983 | |
| 1 | #include "lpc-acpi.h" |
| 2 | |
| 3 | const device_type LPC_ACPI = &device_creator<lpc_acpi_device>; |
| 4 | |
| 5 | DEVICE_ADDRESS_MAP_START(map, 32, lpc_acpi_device) |
| 6 | AM_RANGE(0x00, 0x03) AM_READWRITE16(pm1_sts_r, pm1_sts_w, 0x0000ffff) |
| 7 | AM_RANGE(0x00, 0x03) AM_READWRITE16(pm1_en_r, pm1_en_w, 0xffff0000) |
| 8 | AM_RANGE(0x04, 0x07) AM_READWRITE (pm1_cnt_r, pm1_cnt_w) |
| 9 | AM_RANGE(0x08, 0x0b) AM_READ (pm1_tmr_r) |
| 10 | AM_RANGE(0x10, 0x13) AM_READWRITE (proc_cnt_r, proc_cnt_w) |
| 11 | AM_RANGE(0x14, 0x17) AM_READ8 (lv2_r, 0x000000ff) |
| 12 | AM_RANGE(0x28, 0x2b) AM_READWRITE (gpe0_sts_r, gpe0_sts_w) |
| 13 | AM_RANGE(0x2c, 0x2f) AM_READWRITE (gpe0_en_r, gpe0_en_w) |
| 14 | AM_RANGE(0x30, 0x33) AM_READWRITE (smi_en_r, smi_en_w) |
| 15 | AM_RANGE(0x34, 0x37) AM_READWRITE (smi_sts_r, smi_sts_w) |
| 16 | AM_RANGE(0x38, 0x3b) AM_READWRITE16(alt_gp_smi_en_r, alt_gp_smi_en_w, 0x0000ffff) |
| 17 | AM_RANGE(0x38, 0x3b) AM_READWRITE16(alt_gp_smi_sts_r, alt_gp_smi_sts_w, 0xffff0000) |
| 18 | AM_RANGE(0x44, 0x47) AM_READWRITE16(devact_sts_r, devact_sts_w, 0x0000ffff) |
| 19 | AM_RANGE(0x48, 0x4b) AM_READWRITE16(devtrap_en_r, devtrap_en_w, 0x0000ffff) |
| 20 | AM_RANGE(0x4c, 0x4f) AM_READ16 (bus_addr_track_r, 0x0000ffff) |
| 21 | AM_RANGE(0x4c, 0x4f) AM_READ8 (bus_cyc_track_r, 0x00ff0000) |
| 22 | |
| 23 | AM_RANGE(0x60, 0x63) AM_READWRITE8 (tco_rld_r, tco_rld_w, 0x000000ff) |
| 24 | AM_RANGE(0x60, 0x63) AM_READWRITE8 (tco_tmr_r, tco_tmr_w, 0x0000ff00) |
| 25 | AM_RANGE(0x60, 0x63) AM_READWRITE8 (tco_dat_in_r, tco_dat_in_w, 0x00ff0000) |
| 26 | AM_RANGE(0x60, 0x63) AM_READWRITE8 (tco_dat_out_r, tco_dat_out_w, 0xff000000) |
| 27 | AM_RANGE(0x64, 0x67) AM_READWRITE16(tco1_sts_r, tco1_sts_w, 0x0000ffff) |
| 28 | AM_RANGE(0x64, 0x67) AM_READWRITE16(tco2_sts_r, tco2_sts_w, 0xffff0000) |
| 29 | AM_RANGE(0x68, 0x6b) AM_READWRITE16(tco1_cnt_r, tco1_cnt_w, 0x0000ffff) |
| 30 | AM_RANGE(0x68, 0x6b) AM_READWRITE16(tco2_cnt_r, tco2_cnt_w, 0xffff0000) |
| 31 | AM_RANGE(0x6c, 0x6f) AM_READWRITE8 (tco_message1_r, tco_message1_w, 0x000000ff) |
| 32 | AM_RANGE(0x6c, 0x6f) AM_READWRITE8 (tco_message2_r, tco_message2_w, 0x0000ff00) |
| 33 | AM_RANGE(0x6c, 0x6f) AM_READWRITE8 (tco_wdstatus_r, tco_wdstatus_w, 0x00ff0000) |
| 34 | AM_RANGE(0x70, 0x73) AM_READWRITE8 (sw_irq_gen_r, sw_irq_gen_w, 0x000000ff) |
| 35 | ADDRESS_MAP_END |
| 36 | |
| 37 | lpc_acpi_device::lpc_acpi_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 38 | : lpc_device(mconfig, LPC_ACPI, "LPC ACPI", tag, owner, clock, "lpc_acpi", __FILE__) |
| 39 | { |
| 40 | } |
| 41 | |
| 42 | void lpc_acpi_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 43 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space) |
| 44 | { |
| 45 | io_space->install_device(io_offset, io_window_end, *this, &lpc_acpi_device::map); |
| 46 | } |
| 47 | |
| 48 | void lpc_acpi_device::device_start() |
| 49 | { |
| 50 | } |
| 51 | |
| 52 | void lpc_acpi_device::device_reset() |
| 53 | { |
| 54 | pm1_sts = 0; |
| 55 | pm1_en = 0; |
| 56 | pm1_cnt = 0; |
| 57 | proc_cnt = 0; |
| 58 | gpe0_sts = 0; |
| 59 | gpe0_en = 0; |
| 60 | smi_en = 0; |
| 61 | smi_sts = 0; |
| 62 | alt_gp_smi_en = 0; |
| 63 | alt_gp_smi_sts = 0; |
| 64 | devact_sts = 0; |
| 65 | devtrap_en = 0; |
| 66 | |
| 67 | tco_rld = 0; |
| 68 | tco_tmr = 0; |
| 69 | tco_dat_in = 0; |
| 70 | tco_dat_out = 0; |
| 71 | tco1_sts = 0; |
| 72 | tco2_sts = 0; |
| 73 | tco1_cnt = 0; |
| 74 | tco2_cnt = 0; |
| 75 | tco_message1 = 0; |
| 76 | tco_message2 = 0; |
| 77 | tco_wdstatus = 0; |
| 78 | sw_irq_gen = 0; |
| 79 | } |
| 80 | |
| 81 | READ16_MEMBER( lpc_acpi_device::pm1_sts_r) |
| 82 | { |
| 83 | return pm1_sts; |
| 84 | } |
| 85 | |
| 86 | WRITE16_MEMBER(lpc_acpi_device::pm1_sts_w) |
| 87 | { |
| 88 | pm1_sts &= ~data; |
| 89 | logerror("%s: pm1_sts = %04x\n", tag(), pm1_sts); |
| 90 | } |
| 91 | |
| 92 | READ16_MEMBER( lpc_acpi_device::pm1_en_r) |
| 93 | { |
| 94 | return pm1_en; |
| 95 | } |
| 96 | |
| 97 | WRITE16_MEMBER(lpc_acpi_device::pm1_en_w) |
| 98 | { |
| 99 | COMBINE_DATA(&pm1_en); |
| 100 | logerror("%s: pm1_en = %04x\n", tag(), pm1_en); |
| 101 | } |
| 102 | |
| 103 | READ32_MEMBER( lpc_acpi_device::pm1_cnt_r) |
| 104 | { |
| 105 | return pm1_cnt; |
| 106 | } |
| 107 | |
| 108 | WRITE32_MEMBER(lpc_acpi_device::pm1_cnt_w) |
| 109 | { |
| 110 | COMBINE_DATA(&pm1_cnt); |
| 111 | logerror("%s: pm1_cnt = %08x\n", tag(), pm1_cnt); |
| 112 | } |
| 113 | |
| 114 | READ32_MEMBER(lpc_acpi_device::pm1_tmr_r) |
| 115 | { |
| 116 | return machine().time().as_ticks(3579545) & 0xffffff; |
| 117 | } |
| 118 | |
| 119 | READ32_MEMBER( lpc_acpi_device::proc_cnt_r) |
| 120 | { |
| 121 | return proc_cnt; |
| 122 | } |
| 123 | |
| 124 | WRITE32_MEMBER(lpc_acpi_device::proc_cnt_w) |
| 125 | { |
| 126 | COMBINE_DATA(&proc_cnt); |
| 127 | logerror("%s: proc_cnt = %08x\n", tag(), proc_cnt); |
| 128 | } |
| 129 | |
| 130 | READ8_MEMBER( lpc_acpi_device::lv2_r) |
| 131 | { |
| 132 | return 0x00; |
| 133 | } |
| 134 | |
| 135 | READ32_MEMBER( lpc_acpi_device::gpe0_sts_r) |
| 136 | { |
| 137 | return gpe0_sts; |
| 138 | } |
| 139 | |
| 140 | WRITE32_MEMBER(lpc_acpi_device::gpe0_sts_w) |
| 141 | { |
| 142 | COMBINE_DATA(&gpe0_sts); |
| 143 | logerror("%s: gpe0_sts = %08x\n", tag(), gpe0_sts); |
| 144 | } |
| 145 | |
| 146 | READ32_MEMBER( lpc_acpi_device::gpe0_en_r) |
| 147 | { |
| 148 | return gpe0_en; |
| 149 | } |
| 150 | |
| 151 | WRITE32_MEMBER(lpc_acpi_device::gpe0_en_w) |
| 152 | { |
| 153 | COMBINE_DATA(&gpe0_en); |
| 154 | logerror("%s: gpe0_en = %08x\n", tag(), gpe0_en); |
| 155 | } |
| 156 | |
| 157 | READ32_MEMBER( lpc_acpi_device::smi_en_r) |
| 158 | { |
| 159 | return smi_en; |
| 160 | } |
| 161 | |
| 162 | WRITE32_MEMBER(lpc_acpi_device::smi_en_w) |
| 163 | { |
| 164 | COMBINE_DATA(&smi_en); |
| 165 | logerror("%s: smi_en = %08x\n", tag(), smi_en); |
| 166 | } |
| 167 | |
| 168 | READ32_MEMBER( lpc_acpi_device::smi_sts_r) |
| 169 | { |
| 170 | return smi_sts; |
| 171 | } |
| 172 | |
| 173 | WRITE32_MEMBER(lpc_acpi_device::smi_sts_w) |
| 174 | { |
| 175 | COMBINE_DATA(&smi_sts); |
| 176 | logerror("%s: smi_sts = %08x\n", tag(), smi_sts); |
| 177 | } |
| 178 | |
| 179 | READ16_MEMBER( lpc_acpi_device::alt_gp_smi_en_r) |
| 180 | { |
| 181 | return alt_gp_smi_en; |
| 182 | } |
| 183 | |
| 184 | WRITE16_MEMBER(lpc_acpi_device::alt_gp_smi_en_w) |
| 185 | { |
| 186 | COMBINE_DATA(&alt_gp_smi_en); |
| 187 | logerror("%s: alt_gp_smi_en = %04x\n", tag(), alt_gp_smi_en); |
| 188 | } |
| 189 | |
| 190 | READ16_MEMBER( lpc_acpi_device::alt_gp_smi_sts_r) |
| 191 | { |
| 192 | return alt_gp_smi_sts; |
| 193 | } |
| 194 | |
| 195 | WRITE16_MEMBER(lpc_acpi_device::alt_gp_smi_sts_w) |
| 196 | { |
| 197 | COMBINE_DATA(&alt_gp_smi_sts); |
| 198 | logerror("%s: alt_gp_smi_sts = %04x\n", tag(), alt_gp_smi_sts); |
| 199 | } |
| 200 | |
| 201 | READ16_MEMBER( lpc_acpi_device::devact_sts_r) |
| 202 | { |
| 203 | return devact_sts; |
| 204 | } |
| 205 | |
| 206 | WRITE16_MEMBER(lpc_acpi_device::devact_sts_w) |
| 207 | { |
| 208 | COMBINE_DATA(&devact_sts); |
| 209 | logerror("%s: devact_sts = %04x\n", tag(), devact_sts); |
| 210 | } |
| 211 | |
| 212 | READ16_MEMBER( lpc_acpi_device::devtrap_en_r) |
| 213 | { |
| 214 | return devtrap_en; |
| 215 | } |
| 216 | |
| 217 | WRITE16_MEMBER(lpc_acpi_device::devtrap_en_w) |
| 218 | { |
| 219 | COMBINE_DATA(&devtrap_en); |
| 220 | logerror("%s: devtrap_en = %04x\n", tag(), devtrap_en); |
| 221 | } |
| 222 | |
| 223 | READ16_MEMBER( lpc_acpi_device::bus_addr_track_r) |
| 224 | { |
| 225 | logerror("%s: read bus_addr_track\n", tag()); |
| 226 | return 0; |
| 227 | } |
| 228 | |
| 229 | READ8_MEMBER( lpc_acpi_device::bus_cyc_track_r) |
| 230 | { |
| 231 | logerror("%s: read bus_cyc_track\n", tag()); |
| 232 | return 0; |
| 233 | } |
| 234 | |
| 235 | |
| 236 | READ8_MEMBER( lpc_acpi_device::tco_rld_r) |
| 237 | { |
| 238 | return tco_rld; |
| 239 | } |
| 240 | |
| 241 | WRITE8_MEMBER( lpc_acpi_device::tco_rld_w) |
| 242 | { |
| 243 | tco_rld = data; |
| 244 | logerror("%s: tco_rld = %02x\n", tag(), tco_rld); |
| 245 | } |
| 246 | |
| 247 | READ8_MEMBER( lpc_acpi_device::tco_tmr_r) |
| 248 | { |
| 249 | return tco_tmr; |
| 250 | } |
| 251 | |
| 252 | WRITE8_MEMBER( lpc_acpi_device::tco_tmr_w) |
| 253 | { |
| 254 | tco_tmr = data; |
| 255 | logerror("%s: tco_tmr = %02x\n", tag(), tco_tmr); |
| 256 | } |
| 257 | |
| 258 | READ8_MEMBER( lpc_acpi_device::tco_dat_in_r) |
| 259 | { |
| 260 | return tco_dat_in; |
| 261 | } |
| 262 | |
| 263 | WRITE8_MEMBER( lpc_acpi_device::tco_dat_in_w) |
| 264 | { |
| 265 | tco_dat_in = data; |
| 266 | logerror("%s: tco_dat_in = %02x\n", tag(), tco_dat_in); |
| 267 | } |
| 268 | |
| 269 | READ8_MEMBER( lpc_acpi_device::tco_dat_out_r) |
| 270 | { |
| 271 | return tco_dat_out; |
| 272 | } |
| 273 | |
| 274 | WRITE8_MEMBER( lpc_acpi_device::tco_dat_out_w) |
| 275 | { |
| 276 | tco_dat_out = data; |
| 277 | logerror("%s: tco_dat_out = %02x\n", tag(), tco_dat_out); |
| 278 | } |
| 279 | |
| 280 | READ16_MEMBER( lpc_acpi_device::tco1_sts_r) |
| 281 | { |
| 282 | return tco1_sts; |
| 283 | } |
| 284 | |
| 285 | WRITE16_MEMBER(lpc_acpi_device::tco1_sts_w) |
| 286 | { |
| 287 | COMBINE_DATA(&tco1_sts); |
| 288 | logerror("%s: tco1_sts = %04x\n", tag(), tco1_sts); |
| 289 | } |
| 290 | |
| 291 | READ16_MEMBER( lpc_acpi_device::tco2_sts_r) |
| 292 | { |
| 293 | return tco2_sts; |
| 294 | } |
| 295 | |
| 296 | WRITE16_MEMBER(lpc_acpi_device::tco2_sts_w) |
| 297 | { |
| 298 | COMBINE_DATA(&tco2_sts); |
| 299 | logerror("%s: tco2_sts = %04x\n", tag(), tco2_sts); |
| 300 | } |
| 301 | |
| 302 | READ16_MEMBER( lpc_acpi_device::tco1_cnt_r) |
| 303 | { |
| 304 | return tco1_cnt; |
| 305 | } |
| 306 | |
| 307 | WRITE16_MEMBER(lpc_acpi_device::tco1_cnt_w) |
| 308 | { |
| 309 | COMBINE_DATA(&tco1_cnt); |
| 310 | logerror("%s: tco1_cnt = %04x\n", tag(), tco1_cnt); |
| 311 | } |
| 312 | |
| 313 | READ16_MEMBER( lpc_acpi_device::tco2_cnt_r) |
| 314 | { |
| 315 | return tco2_cnt; |
| 316 | } |
| 317 | |
| 318 | WRITE16_MEMBER(lpc_acpi_device::tco2_cnt_w) |
| 319 | { |
| 320 | COMBINE_DATA(&tco2_cnt); |
| 321 | logerror("%s: tco2_cnt = %04x\n", tag(), tco2_cnt); |
| 322 | } |
| 323 | |
| 324 | READ8_MEMBER( lpc_acpi_device::tco_message1_r) |
| 325 | { |
| 326 | return tco_message1; |
| 327 | } |
| 328 | |
| 329 | WRITE8_MEMBER( lpc_acpi_device::tco_message1_w) |
| 330 | { |
| 331 | tco_message1 = data; |
| 332 | logerror("%s: tco_message1 = %02x\n", tag(), tco_message1); |
| 333 | } |
| 334 | |
| 335 | READ8_MEMBER( lpc_acpi_device::tco_message2_r) |
| 336 | { |
| 337 | return tco_message2; |
| 338 | } |
| 339 | |
| 340 | WRITE8_MEMBER( lpc_acpi_device::tco_message2_w) |
| 341 | { |
| 342 | tco_message2 = data; |
| 343 | logerror("%s: tco_message2 = %02x\n", tag(), tco_message2); |
| 344 | } |
| 345 | |
| 346 | READ8_MEMBER( lpc_acpi_device::tco_wdstatus_r) |
| 347 | { |
| 348 | return tco_wdstatus; |
| 349 | } |
| 350 | |
| 351 | WRITE8_MEMBER( lpc_acpi_device::tco_wdstatus_w) |
| 352 | { |
| 353 | tco_wdstatus = data; |
| 354 | logerror("%s: tco_wdstatus = %02x\n", tag(), tco_wdstatus); |
| 355 | } |
| 356 | |
| 357 | READ8_MEMBER( lpc_acpi_device::sw_irq_gen_r) |
| 358 | { |
| 359 | return sw_irq_gen; |
| 360 | } |
| 361 | |
| 362 | WRITE8_MEMBER( lpc_acpi_device::sw_irq_gen_w) |
| 363 | { |
| 364 | sw_irq_gen = data; |
| 365 | logerror("%s: sw_irq_gen = %02x\n", tag(), sw_irq_gen); |
| 366 | } |
trunk/src/emu/machine/lpc-acpi.h
| r0 | r241983 | |
| 1 | #ifndef LPC_ACPI_H |
| 2 | #define LPC_ACPI_H |
| 3 | |
| 4 | #include "lpc.h" |
| 5 | |
| 6 | #define MCFG_LPC_ACPI_ADD(_tag) \ |
| 7 | MCFG_DEVICE_ADD(_tag, LPC_ACPI, 0) |
| 8 | |
| 9 | class lpc_acpi_device : public lpc_device { |
| 10 | public: |
| 11 | lpc_acpi_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 12 | |
| 13 | virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 14 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space); |
| 15 | |
| 16 | DECLARE_READ16_MEMBER( pm1_sts_r); |
| 17 | DECLARE_WRITE16_MEMBER(pm1_sts_w); |
| 18 | DECLARE_READ16_MEMBER( pm1_en_r); |
| 19 | DECLARE_WRITE16_MEMBER(pm1_en_w); |
| 20 | DECLARE_READ32_MEMBER( pm1_cnt_r); |
| 21 | DECLARE_WRITE32_MEMBER(pm1_cnt_w); |
| 22 | DECLARE_READ32_MEMBER( pm1_tmr_r); |
| 23 | DECLARE_READ32_MEMBER( proc_cnt_r); |
| 24 | DECLARE_WRITE32_MEMBER(proc_cnt_w); |
| 25 | DECLARE_READ8_MEMBER( lv2_r); |
| 26 | DECLARE_READ32_MEMBER( gpe0_sts_r); |
| 27 | DECLARE_WRITE32_MEMBER(gpe0_sts_w); |
| 28 | DECLARE_READ32_MEMBER( gpe0_en_r); |
| 29 | DECLARE_WRITE32_MEMBER(gpe0_en_w); |
| 30 | DECLARE_READ32_MEMBER( smi_en_r); |
| 31 | DECLARE_WRITE32_MEMBER(smi_en_w); |
| 32 | DECLARE_READ32_MEMBER( smi_sts_r); |
| 33 | DECLARE_WRITE32_MEMBER(smi_sts_w); |
| 34 | DECLARE_READ16_MEMBER( alt_gp_smi_en_r); |
| 35 | DECLARE_WRITE16_MEMBER(alt_gp_smi_en_w); |
| 36 | DECLARE_READ16_MEMBER( alt_gp_smi_sts_r); |
| 37 | DECLARE_WRITE16_MEMBER(alt_gp_smi_sts_w); |
| 38 | DECLARE_READ16_MEMBER( devact_sts_r); |
| 39 | DECLARE_WRITE16_MEMBER(devact_sts_w); |
| 40 | DECLARE_READ16_MEMBER( devtrap_en_r); |
| 41 | DECLARE_WRITE16_MEMBER(devtrap_en_w); |
| 42 | DECLARE_READ16_MEMBER( bus_addr_track_r); |
| 43 | DECLARE_READ8_MEMBER( bus_cyc_track_r); |
| 44 | |
| 45 | DECLARE_READ8_MEMBER( tco_rld_r); |
| 46 | DECLARE_WRITE8_MEMBER( tco_rld_w); |
| 47 | DECLARE_READ8_MEMBER( tco_tmr_r); |
| 48 | DECLARE_WRITE8_MEMBER( tco_tmr_w); |
| 49 | DECLARE_READ8_MEMBER( tco_dat_in_r); |
| 50 | DECLARE_WRITE8_MEMBER( tco_dat_in_w); |
| 51 | DECLARE_READ8_MEMBER( tco_dat_out_r); |
| 52 | DECLARE_WRITE8_MEMBER( tco_dat_out_w); |
| 53 | DECLARE_READ16_MEMBER( tco1_sts_r); |
| 54 | DECLARE_WRITE16_MEMBER(tco1_sts_w); |
| 55 | DECLARE_READ16_MEMBER( tco2_sts_r); |
| 56 | DECLARE_WRITE16_MEMBER(tco2_sts_w); |
| 57 | DECLARE_READ16_MEMBER( tco1_cnt_r); |
| 58 | DECLARE_WRITE16_MEMBER(tco1_cnt_w); |
| 59 | DECLARE_READ16_MEMBER( tco2_cnt_r); |
| 60 | DECLARE_WRITE16_MEMBER(tco2_cnt_w); |
| 61 | DECLARE_READ8_MEMBER( tco_message1_r); |
| 62 | DECLARE_WRITE8_MEMBER( tco_message1_w); |
| 63 | DECLARE_READ8_MEMBER( tco_message2_r); |
| 64 | DECLARE_WRITE8_MEMBER( tco_message2_w); |
| 65 | DECLARE_READ8_MEMBER( tco_wdstatus_r); |
| 66 | DECLARE_WRITE8_MEMBER( tco_wdstatus_w); |
| 67 | DECLARE_READ8_MEMBER( sw_irq_gen_r); |
| 68 | DECLARE_WRITE8_MEMBER( sw_irq_gen_w); |
| 69 | |
| 70 | protected: |
| 71 | void device_start(); |
| 72 | void device_reset(); |
| 73 | |
| 74 | private: |
| 75 | UINT32 pm1_cnt, proc_cnt, gpe0_sts, gpe0_en, smi_en, smi_sts; |
| 76 | UINT16 pm1_sts, pm1_en, alt_gp_smi_en, alt_gp_smi_sts, devact_sts, devtrap_en; |
| 77 | UINT16 tco1_sts, tco2_sts, tco1_cnt, tco2_cnt; |
| 78 | UINT8 tco_rld, tco_tmr, tco_dat_in, tco_dat_out, tco_message1, tco_message2; |
| 79 | UINT8 tco_wdstatus, sw_irq_gen; |
| 80 | |
| 81 | DECLARE_ADDRESS_MAP(map, 32); |
| 82 | }; |
| 83 | |
| 84 | extern const device_type LPC_ACPI; |
| 85 | |
| 86 | #endif |