1 /* SPDX-License-Identifier: GPL-2.0-only */
3 Field(PCFG, ByteAcc, NoLock, Preserve) {
4 /* Byte offsets are computed using the following technique:
5 * ((bus number + 1) * ((device number * 8) * 4096)) + register offset
6 * The 8 comes from 8 functions per device, and 4096 bytes per function config space
8 Offset(0x00088024), /* Byte offset to SATA register 24h - Bus 0, Device 17, Function 0 */
10 Offset(0x00098042), /* Byte offset to OHCI0 register 42h - Bus 0, Device 19, Function 0 */
21 Offset(0x000a0004), /* Byte offset to SMBUS register 4h - Bus 0, Device 20, Function 0 */
24 Offset(0x000a0008), /* Byte offset to SMBUS register 8h - Bus 0, Device 20, Function 0 */
26 Offset(0x000a0014), /* Byte offset to SMBUS register 14h - Bus 0, Device 20, Function 0 */
28 Offset(0x000a0078), /* Byte offset to SMBUS register 78h - Bus 0, Device 20, Function 0 */
30 P92E, 1, /* Port92 decode enable */
33 OperationRegion(SB5, SystemMemory, STB5, 0x1000)
34 Field(SB5, AnyAcc, NoLock, Preserve){
36 Offset(0x120), /* Port 0 Task file status */
42 Offset(0x128), /* Port 0 Serial ATA status */
46 Offset(0x12c), /* Port 0 Serial ATA control */
48 Offset(0x130), /* Port 0 Serial ATA error */
53 offset(0x1a0), /* Port 1 Task file status */
59 Offset(0x1a8), /* Port 1 Serial ATA status */
63 Offset(0x1ac), /* Port 1 Serial ATA control */
65 Offset(0x1b0), /* Port 1 Serial ATA error */
70 Offset(0x220), /* Port 2 Task file status */
76 Offset(0x228), /* Port 2 Serial ATA status */
80 Offset(0x22c), /* Port 2 Serial ATA control */
82 Offset(0x230), /* Port 2 Serial ATA error */
87 Offset(0x2a0), /* Port 3 Task file status */
93 Offset(0x2a8), /* Port 3 Serial ATA status */
97 Offset(0x2aC), /* Port 3 Serial ATA control */
99 Offset(0x2b0), /* Port 3 Serial ATA error */
104 Name(IRQB, ResourceTemplate(){
105 IRQ(Level,ActiveLow,Shared){15}
108 Name(IRQP, ResourceTemplate(){
109 IRQ(Level,ActiveLow,Exclusive){3, 4, 5, 7, 10, 11, 12, 15}
112 Name(PITF, ResourceTemplate(){
113 IRQ(Level,ActiveLow,Exclusive){9}
117 Name(_HID, EISAID("PNP0C0F"))
122 Return (0x0b) /* sata is invisible */
124 Return (0x09) /* sata is disabled */
126 } /* End Method(_SB.INTA._STA) */
129 /* DBGO("\\_SB\\LNKA\\_DIS\n") */
130 } /* End Method(_SB.INTA._DIS) */
133 /* DBGO("\\_SB\\LNKA\\_PRS\n") */
135 } /* Method(_SB.INTA._PRS) */
138 /* DBGO("\\_SB\\LNKA\\_CRS\n") */
139 CreateWordField(IRQB, 0x1, IRQN)
142 } /* Method(_SB.INTA._CRS) */
145 /* DBGO("\\_SB\\LNKA\\_SRS\n") */
146 CreateWordField(ARG0, 1, IRQM)
148 /* Use lowest available IRQ */
149 FindSetRightBit(IRQM, Local0)
154 } /* End Method(_SB.INTA._SRS) */
155 } /* End Device(INTA) */
158 Name(_HID, EISAID("PNP0C0F"))
163 Return (0x0b) /* sata is invisible */
165 Return (0x09) /* sata is disabled */
167 } /* End Method(_SB.INTB._STA) */
170 /* DBGO("\\_SB\\LNKB\\_DIS\n") */
171 } /* End Method(_SB.INTB._DIS) */
174 /* DBGO("\\_SB\\LNKB\\_PRS\n") */
176 } /* Method(_SB.INTB._PRS) */
179 /* DBGO("\\_SB\\LNKB\\_CRS\n") */
180 CreateWordField(IRQB, 0x1, IRQN)
183 } /* Method(_SB.INTB._CRS) */
186 /* DBGO("\\_SB\\LNKB\\_CRS\n") */
187 CreateWordField(ARG0, 1, IRQM)
189 /* Use lowest available IRQ */
190 FindSetRightBit(IRQM, Local0)
195 } /* End Method(_SB.INTB._SRS) */
196 } /* End Device(INTB) */
199 Name(_HID, EISAID("PNP0C0F"))
204 Return (0x0b) /* sata is invisible */
206 Return (0x09) /* sata is disabled */
208 } /* End Method(_SB.INTC._STA) */
211 /* DBGO("\\_SB\\LNKC\\_DIS\n") */
212 } /* End Method(_SB.INTC._DIS) */
215 /* DBGO("\\_SB\\LNKC\\_PRS\n") */
217 } /* Method(_SB.INTC._PRS) */
220 /* DBGO("\\_SB\\LNKC\\_CRS\n") */
221 CreateWordField(IRQB, 0x1, IRQN)
224 } /* Method(_SB.INTC._CRS) */
227 /* DBGO("\\_SB\\LNKC\\_CRS\n") */
228 CreateWordField(ARG0, 1, IRQM)
230 /* Use lowest available IRQ */
231 FindSetRightBit(IRQM, Local0)
236 } /* End Method(_SB.INTC._SRS) */
237 } /* End Device(INTC) */
240 Name(_HID, EISAID("PNP0C0F"))
245 Return (0x0b) /* sata is invisible */
247 Return (0x09) /* sata is disabled */
249 } /* End Method(_SB.INTD._STA) */
252 /* DBGO("\\_SB\\LNKD\\_DIS\n") */
253 } /* End Method(_SB.INTD._DIS) */
256 /* DBGO("\\_SB\\LNKD\\_PRS\n") */
258 } /* Method(_SB.INTD._PRS) */
261 /* DBGO("\\_SB\\LNKD\\_CRS\n") */
262 CreateWordField(IRQB, 0x1, IRQN)
265 } /* Method(_SB.INTD._CRS) */
268 /* DBGO("\\_SB\\LNKD\\_CRS\n") */
269 CreateWordField(ARG0, 1, IRQM)
271 /* Use lowest available IRQ */
272 FindSetRightBit(IRQM, Local0)
277 } /* End Method(_SB.INTD._SRS) */
278 } /* End Device(INTD) */
281 Name(_HID, EISAID("PNP0C0F"))
286 Return (0x0b) /* sata is invisible */
288 Return (0x09) /* sata is disabled */
290 } /* End Method(_SB.INTE._STA) */
293 /* DBGO("\\_SB\\LNKE\\_DIS\n") */
294 } /* End Method(_SB.INTE._DIS) */
297 /* DBGO("\\_SB\\LNKE\\_PRS\n") */
299 } /* Method(_SB.INTE._PRS) */
302 /* DBGO("\\_SB\\LNKE\\_CRS\n") */
303 CreateWordField(IRQB, 0x1, IRQN)
306 } /* Method(_SB.INTE._CRS) */
309 /* DBGO("\\_SB\\LNKE\\_CRS\n") */
310 CreateWordField(ARG0, 1, IRQM)
312 /* Use lowest available IRQ */
313 FindSetRightBit(IRQM, Local0)
318 } /* End Method(_SB.INTE._SRS) */
319 } /* End Device(INTE) */
322 Name(_HID, EISAID("PNP0C0F"))
327 Return (0x0b) /* sata is invisible */
329 Return (0x09) /* sata is disabled */
331 } /* End Method(_SB.INTF._STA) */
334 /* DBGO("\\_SB\\LNKF\\_DIS\n") */
335 } /* End Method(_SB.INTF._DIS) */
338 /* DBGO("\\_SB\\LNKF\\_PRS\n") */
340 } /* Method(_SB.INTF._PRS) */
343 /* DBGO("\\_SB\\LNKF\\_CRS\n") */
344 CreateWordField(IRQB, 0x1, IRQN)
347 } /* Method(_SB.INTF._CRS) */
350 /* DBGO("\\_SB\\LNKF\\_CRS\n") */
351 CreateWordField(ARG0, 1, IRQM)
353 /* Use lowest available IRQ */
354 FindSetRightBit(IRQM, Local0)
359 } /* End Method(_SB.INTF._SRS) */
360 } /* End Device(INTF) */
363 Name(_HID, EISAID("PNP0C0F"))
368 Return (0x0b) /* sata is invisible */
370 Return (0x09) /* sata is disabled */
372 } /* End Method(_SB.INTG._STA) */
375 /* DBGO("\\_SB\\LNKG\\_DIS\n") */
376 } /* End Method(_SB.INTG._DIS) */
379 /* DBGO("\\_SB\\LNKG\\_PRS\n") */
381 } /* Method(_SB.INTG._CRS) */
384 /* DBGO("\\_SB\\LNKG\\_CRS\n") */
385 CreateWordField(IRQB, 0x1, IRQN)
388 } /* Method(_SB.INTG._CRS) */
391 /* DBGO("\\_SB\\LNKG\\_CRS\n") */
392 CreateWordField(ARG0, 1, IRQM)
394 /* Use lowest available IRQ */
395 FindSetRightBit(IRQM, Local0)
400 } /* End Method(_SB.INTG._SRS) */
401 } /* End Device(INTG) */
404 Name(_HID, EISAID("PNP0C0F"))
409 Return (0x0b) /* sata is invisible */
411 Return (0x09) /* sata is disabled */
413 } /* End Method(_SB.INTH._STA) */
416 /* DBGO("\\_SB\\LNKH\\_DIS\n") */
417 } /* End Method(_SB.INTH._DIS) */
420 /* DBGO("\\_SB\\LNKH\\_PRS\n") */
422 } /* Method(_SB.INTH._CRS) */
425 /* DBGO("\\_SB\\LNKH\\_CRS\n") */
426 CreateWordField(IRQB, 0x1, IRQN)
429 } /* Method(_SB.INTH._CRS) */
432 /* DBGO("\\_SB\\LNKH\\_CRS\n") */
433 CreateWordField(ARG0, 1, IRQM)
435 /* Use lowest available IRQ */
436 FindSetRightBit(IRQM, Local0)
441 } /* End Method(_SB.INTH._SRS) */
442 } /* End Device(INTH) */