2 * This file is part of the coreboot project.
4 * Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
16 // Scope is \_SB.PCI0.LPCB
20 OperationRegion (SIOA, SystemIO, 0x2E, 0x02)
21 Field (SIOA, ByteAcc, NoLock, Preserve)
27 IndexField (SI2E, SI2F, ByteAcc, NoLock, Preserve)
30 SCNT, 8, /* Configure Control */
32 SLDN, 8, /* Logical Device Number */
34 SACT, 8, /* Activate */
36 IO0H, 8, /* Base Address 0 MSB */
37 IO0L, 8, /* Base Address 0 LSB */
39 IO1H, 8, /* Base Address 1 MSB */
40 IO1L, 8, /* Base Address 1 LSB */
42 IQ00, 8, /* Interrupt Select */
45 Name (SFDC, 0) /* Floppy Disk Controller */
46 Name (SSP1, 1) /* Serial Port 1 */
47 Name (SENV, 4) /* Environment Controller */
48 Name (SKBC, 5) /* Keyboard */
49 Name (SKBM, 6) /* Mouse */
50 Name (SGPI, 7) /* GPIO */
51 Name (SINF, 10) /* Consumer IR */
53 Method (ENTR, 0, NotSerialized)
61 Method (EXIT, 0, NotSerialized)
66 /* Parse activate register for an LDN */
67 Method (ISEN, 1, NotSerialized)
74 /* Check if it exists */
75 If (LEqual (Local0, 0xFF))
80 /* Check if activated */
81 If (LEqual (Local0, One))
91 /* Enable an LDN via the activate register */
92 Method (SENA, 1, NotSerialized)
100 /* Disable an LDN via the activate register */
101 Method (SDIS, 1, NotSerialized)
109 #ifdef SIO_ENABLE_ENVC
111 Name (_HID, EISAID ("PNP0C02"))
114 Method (_STA, 0, NotSerialized) {
118 Name (_CRS, ResourceTemplate ()
120 IO (Decode16, SIO_ENVC_IO0, SIO_ENVC_IO0, 0x08, 0x08)
121 IO (Decode16, SIO_ENVC_IO1, SIO_ENVC_IO1, 0x04, 0x04)
124 Name (_PRS, ResourceTemplate ()
126 IO (Decode16, SIO_ENVC_IO0, SIO_ENVC_IO0, 0x08, 0x08)
127 IO (Decode16, SIO_ENVC_IO1, SIO_ENVC_IO1, 0x04, 0x04)
130 OperationRegion (ECAP, SystemIO, SIO_ENVC_IO0, 0x07)
131 Field (ECAP, ByteAcc, NoLock, Preserve)
134 ECAI, 8, // Address Index Register
135 ECAD, 8, // Address Data Register
138 // Registers for thermal zone implementations
139 IndexField (ECAI, ECAD, ByteAcc, NoLock, Preserve)
142 TIN1, 8, // TMPIN1 Reading
143 TIN2, 8, // TMPIN2 Reading
144 TIN3, 8, // TMPIN3 Reading
146 F2PS, 8, // FAN2 PWM Setting
148 F3PS, 8, // FAN3 PWM Setting
153 #ifdef SIO_ENABLE_GPIO
155 Name (_HID, EISAID ("PNP0C02"))
158 Method (_STA, 0, NotSerialized) {
162 Name (_CRS, ResourceTemplate ()
164 IO (Decode16, SIO_GPIO_IO0, SIO_GPIO_IO0, 0x01, 0x01)
165 IO (Decode16, SIO_GPIO_IO1, SIO_GPIO_IO1, 0x08, 0x08)
168 Name (_PRS, ResourceTemplate ()
170 IO (Decode16, SIO_GPIO_IO0, SIO_GPIO_IO0, 0x01, 0x01)
171 IO (Decode16, SIO_GPIO_IO1, SIO_GPIO_IO1, 0x08, 0x08)
176 #ifdef SIO_ENABLE_COM1
178 Name (_HID, EISAID ("PNP0501"))
181 Method (_STA, 0, NotSerialized) {
185 Name (_CRS, ResourceTemplate ()
187 IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
191 Name (_PRS, ResourceTemplate ()
193 IO (Decode16, 0x03F8, 0x03F8, 0x08, 0x08)
199 #ifdef SIO_ENABLE_PS2K
200 Device (PS2K) // Keyboard
202 Name (_HID, EISAID("PNP0303"))
203 Name (_CID, EISAID("PNP030B"))
205 Method (_STA, 0, NotSerialized) {
209 Name (_CRS, ResourceTemplate()
211 IO (Decode16, 0x60, 0x60, 0x01, 0x01)
212 IO (Decode16, 0x64, 0x64, 0x01, 0x01)
216 Name (_PRS, ResourceTemplate()
218 IO (Decode16, 0x60, 0x60, 0x01, 0x01)
219 IO (Decode16, 0x64, 0x64, 0x01, 0x01)
225 #ifdef SIO_ENABLE_PS2M
226 Device (PS2M) // Mouse
228 Name (_HID, EISAID("PNP0F13"))
230 Method (_STA, 0, NotSerialized) {
234 Name (_CRS, ResourceTemplate()
239 Name (_PRS, ResourceTemplate()
246 #ifdef SIO_ENABLE_FDC0
247 Device (FDC0) // Floppy controller
249 Name (_HID, EISAID ("PNP0700"))
251 Method (_STA, 0, NotSerialized) {
255 Name (_CRS, ResourceTemplate()
257 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
258 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
260 DMA (Compatibility, NotBusMaster, Transfer8) {2}
263 Name (_PRS, ResourceTemplate()
265 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
266 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
268 DMA (Compatibility, NotBusMaster, Transfer8) {2}
273 #ifdef SIO_ENABLE_INFR
274 Device (INFR) // Infrared controller
276 Name (_HID, EISAID ("PNP0510"))
278 Method (_STA, 0, NotSerialized) {
282 Name (_CRS, ResourceTemplate()
284 IO (Decode16, SIO_INFR_IO0, SIO_INFR_IO0, 0x08, 0x08)
285 IRQNoFlags () { SIO_INFR_IRQ }
288 Name (_PRS, ResourceTemplate()
290 IO (Decode16, SIO_INFR_IO0, SIO_INFR_IO0, 0x08, 0x08)
291 IRQNoFlags () { SIO_INFR_IRQ }