Add DSDT node for AppleSMC
[qemu.git] / hw / i386 / acpi-dsdt-isa.dsl
blob46942c12aa6ab1b86e00a3a8ad26353d4a532bd2
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
12  * You should have received a copy of the GNU General Public License along
13  * with this program; if not, see <http://www.gnu.org/licenses/>.
14  */
16 /* Common legacy ISA style devices. */
17 Scope(\_SB.PCI0.ISA) {
19     Device (SMC) {
20         Name(_HID, EisaId("APP0001"))
21         /* _STA will be patched to 0x0B if AppleSMC is present */
22         ACPI_EXTRACT_NAME_WORD_CONST DSDT_APPLESMC_STA
23         Name(_STA, 0xFF00)
24         Name(_CRS, ResourceTemplate () {
25             IO (Decode16, 0x0300, 0x0300, 0x01, 0x20)
26             IRQNoFlags() { 6 }
27         })
28     }
30     Device(RTC) {
31         Name(_HID, EisaId("PNP0B00"))
32         Name(_CRS, ResourceTemplate() {
33             IO(Decode16, 0x0070, 0x0070, 0x10, 0x02)
34             IRQNoFlags() { 8 }
35             IO(Decode16, 0x0072, 0x0072, 0x02, 0x06)
36         })
37     }
39     Device(KBD) {
40         Name(_HID, EisaId("PNP0303"))
41         Method(_STA, 0, NotSerialized) {
42             Return (0x0f)
43         }
44         Name(_CRS, ResourceTemplate() {
45             IO(Decode16, 0x0060, 0x0060, 0x01, 0x01)
46             IO(Decode16, 0x0064, 0x0064, 0x01, 0x01)
47             IRQNoFlags() { 1 }
48         })
49     }
51     Device(MOU) {
52         Name(_HID, EisaId("PNP0F13"))
53         Method(_STA, 0, NotSerialized) {
54             Return (0x0f)
55         }
56         Name(_CRS, ResourceTemplate() {
57             IRQNoFlags() { 12 }
58         })
59     }
61     Device(FDC0) {
62         Name(_HID, EisaId("PNP0700"))
63         Method(_STA, 0, NotSerialized) {
64             Store(FDEN, Local0)
65             If (LEqual(Local0, 0)) {
66                 Return (0x00)
67             } Else {
68                 Return (0x0F)
69             }
70         }
71         Name(_CRS, ResourceTemplate() {
72             IO(Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
73             IO(Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
74             IRQNoFlags() { 6 }
75             DMA(Compatibility, NotBusMaster, Transfer8) { 2 }
76         })
77     }
79     Device(LPT) {
80         Name(_HID, EisaId("PNP0400"))
81         Method(_STA, 0, NotSerialized) {
82             Store(LPEN, Local0)
83             If (LEqual(Local0, 0)) {
84                 Return (0x00)
85             } Else {
86                 Return (0x0F)
87             }
88         }
89         Name(_CRS, ResourceTemplate() {
90             IO(Decode16, 0x0378, 0x0378, 0x08, 0x08)
91             IRQNoFlags() { 7 }
92         })
93     }
95     Device(COM1) {
96         Name(_HID, EisaId("PNP0501"))
97         Name(_UID, 0x01)
98         Method(_STA, 0, NotSerialized) {
99             Store(CAEN, Local0)
100             If (LEqual(Local0, 0)) {
101                 Return (0x00)
102             } Else {
103                 Return (0x0F)
104             }
105         }
106         Name(_CRS, ResourceTemplate() {
107             IO(Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
108             IRQNoFlags() { 4 }
109         })
110     }
112     Device(COM2) {
113         Name(_HID, EisaId("PNP0501"))
114         Name(_UID, 0x02)
115         Method(_STA, 0, NotSerialized) {
116             Store(CBEN, Local0)
117             If (LEqual(Local0, 0)) {
118                 Return (0x00)
119             } Else {
120                 Return (0x0F)
121             }
122         }
123         Name(_CRS, ResourceTemplate() {
124             IO(Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
125             IRQNoFlags() { 3 }
126         })
127     }