1 /**************************************************************************;
4 ;* Intel Corporation - ACPI Reference Code for the Baytrail *;
5 ;* Family of Customer Reference Boards. *;
8 ;* Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved *;
10 ; SPDX-License-Identifier: BSD-2-Clause-Patent
14 ;**************************************************************************/
18 // Use this information when determining the Possible IRQs that can be
19 // used in a given system.
21 // The following IRQs are always in use by legacy devices:
25 // 9 = SCI Interrupt (It may be used, we choose not to)
26 // 13 = Co-processor Error
28 // The following may be in use by legacy devices:
29 // 1 = If using PS/2 Keyboard
30 // 3 = If COMx Port Enabled and IRQ = 3
31 // 4 = If COMx Port Enabled and IRQ = 4
32 // 5 = If LPT Port Enabled and IRQ = 5
34 // 7 = If LPT Port Enabled and IRQ = 7
35 // 12 = If using PS/2 Mouse
36 // 14 = Primary IDE (If populated and in Compatibility Mode)
37 // 15 = Secondary IDE (If populated and in Compatibility Mode)
39 // The following will never be in use by legacy devices:
40 // 10 = Assign to PARC, PCRC, PERC, PGRC
41 // 11 = Assign to PBRC, PDRC, PFRC, PHRC
43 Device(LNKA) // PARC Routing Resource
45 Name(_HID,EISAID("PNP0C0F")) // PCI Interrupt Link Device
47 Name(_UID,1) // Unique to other Link Devices
49 // Disable the PCI IRQ.
51 Method(_DIS,0,Serialized)
56 // Possible IRQ Resource Setting.
58 Method (_PRS, 0, Serialized)
63 // Current IRQ Resource Setting.
65 Method(_CRS,0,Serialized)
67 Name(RTLA,ResourceTemplate()
69 IRQ(Level,ActiveLow,Shared) {}
72 // Point to specific byte.
74 CreateWordField(RTLA,1,IRQ0)
76 // Zero out IRQ mask bits 0-15
80 ShiftLeft(1,And(PARC,0x0F),IRQ0)
85 // Set IRQ Resource Setting.
87 Method(_SRS,1,Serialized)
89 // Point to the specific byte passed in
91 CreateWordField(Arg0,1,IRQ0)
93 // Determine the IRQ bit to set and store it
95 FindSetRightBit(IRQ0,Local0)
102 Method(_STA,0,Serialized)
115 Device(LNKB) // PBRC Routing Resource
117 Name(_HID,EISAID("PNP0C0F"))
121 // Disable the PCI IRQ.
123 Method(_DIS,0,Serialized)
128 // Possible IRQ Resource Setting.
130 Method (_PRS, 0, Serialized)
135 // Current IRQ Resource Setting.
137 Method(_CRS,0,Serialized)
139 Name(RTLB,ResourceTemplate()
141 IRQ(Level,ActiveLow,Shared) {}
144 // Point to specific byte.
146 CreateWordField(RTLB,1,IRQ0)
148 // Zero out IRQ mask bits 0-15
152 ShiftLeft(1,And(PBRC,0x0F),IRQ0)
157 // Set IRQ Resource Setting.
159 Method(_SRS,1,Serialized)
161 // Point to the specific byte passed in.
163 CreateWordField(Arg0,1,IRQ0)
165 // Determine the IRQ bit to set and store it,
167 FindSetRightBit(IRQ0,Local0)
174 Method(_STA,0,Serialized)
187 Device(LNKC) // PCRC Routing Resource
189 Name(_HID,EISAID("PNP0C0F"))
193 // Disable the PCI IRQ.
195 Method(_DIS,0,Serialized)
200 // Possible IRQ Resource Setting.
202 Method (_PRS, 0, Serialized)
207 // Current IRQ Resource Setting.
209 Method(_CRS,0,Serialized)
211 Name(RTLC,ResourceTemplate()
213 IRQ(Level,ActiveLow,Shared) {}
216 // Point to specific byte.
218 CreateWordField(RTLC,1,IRQ0)
220 // Zero out IRQ mask bits 0-15
224 ShiftLeft(1,And(PCRC,0x0F),IRQ0)
229 // Set IRQ Resource Setting.
231 Method(_SRS,1,Serialized)
233 // Point to the specific byte passed in.
235 CreateWordField(Arg0,1,IRQ0)
237 // Determine the IRQ bit to set and store it,
239 FindSetRightBit(IRQ0,Local0)
246 Method(_STA,0,Serialized)
259 Device(LNKD) // PDRC Routing Resource
261 Name(_HID,EISAID("PNP0C0F"))
265 // Disable the PCI IRQ.
267 Method(_DIS,0,Serialized)
272 // Possible IRQ Resource Setting.
274 Method (_PRS, 0, Serialized)
279 // Current IRQ Resource Setting.
281 Method(_CRS,0,Serialized)
283 Name(RTLD,ResourceTemplate()
285 IRQ(Level,ActiveLow,Shared) {}
288 // Point to specific byte.
290 CreateWordField(RTLD,1,IRQ0)
292 // Zero out IRQ mask bits 0-15
296 ShiftLeft(1,And(PDRC,0x0F),IRQ0)
301 // Set IRQ Resource Setting.
303 Method(_SRS,1,Serialized)
305 // Point to the specific byte passed in.
307 CreateWordField(Arg0,1,IRQ0)
309 // Determine the IRQ bit to set and store it,
311 FindSetRightBit(IRQ0,Local0)
318 Method(_STA,0,Serialized)
331 Device(LNKE) // PERC Routing Resource
333 Name(_HID,EISAID("PNP0C0F"))
337 // Disable the PCI IRQ.
339 Method(_DIS,0,Serialized)
344 // Possible IRQ Resource Setting.
346 Method (_PRS, 0, Serialized)
351 // Current IRQ Resource Setting.
353 Method(_CRS,0,Serialized)
355 Name(RTLE,ResourceTemplate()
357 IRQ(Level,ActiveLow,Shared) {}
360 // Point to specific byte.
362 CreateWordField(RTLE,1,IRQ0)
364 // Zero out IRQ mask bits 0-15
368 ShiftLeft(1,And(PERC,0x0F),IRQ0)
373 // Set IRQ Resource Setting.
375 Method(_SRS,1,Serialized)
377 // Point to the specific byte passed in
379 CreateWordField(Arg0,1,IRQ0)
381 // Determine the IRQ bit to set and store it
383 FindSetRightBit(IRQ0,Local0)
390 Method(_STA,0,Serialized)
403 Device(LNKF) // PFRC Routing Resource
405 Name(_HID,EISAID("PNP0C0F"))
409 // Disable the PCI IRQ.
411 Method(_DIS,0,Serialized)
416 // Possible IRQ Resource Setting.
418 Method (_PRS, 0, Serialized)
423 // Current IRQ Resource Setting.
425 Method(_CRS,0,Serialized)
427 Name(RTLF,ResourceTemplate()
429 IRQ(Level,ActiveLow,Shared) {}
432 // Point to specific byte.
434 CreateWordField(RTLF,1,IRQ0)
436 // Zero out IRQ mask bits 0-15
440 ShiftLeft(1,And(PFRC,0x0F),IRQ0)
445 // Set IRQ Resource Setting.
447 Method(_SRS,1,Serialized)
449 // Point to the specific byte passed in.
451 CreateWordField(Arg0,1,IRQ0)
453 // Determine the IRQ bit to set and store it,
455 FindSetRightBit(IRQ0,Local0)
462 Method(_STA,0,Serialized)
475 Device(LNKG) // PGRC Routing Resource
477 Name(_HID,EISAID("PNP0C0F"))
481 // Disable the PCI IRQ.
483 Method(_DIS,0,Serialized)
488 // Possible IRQ Resource Setting.
490 Method (_PRS, 0, Serialized)
495 // Current IRQ Resource Setting.
497 Method(_CRS,0,Serialized)
499 Name(RTLG,ResourceTemplate()
501 IRQ(Level,ActiveLow,Shared) {}
504 // Point to specific byte.
506 CreateWordField(RTLG,1,IRQ0)
508 // Zero out IRQ mask bits 0-15
512 ShiftLeft(1,And(PGRC,0x0F),IRQ0)
517 // Set IRQ Resource Setting.
519 Method(_SRS,1,Serialized)
521 // Point to the specific byte passed in.
523 CreateWordField(Arg0,1,IRQ0)
525 // Determine the IRQ bit to set and store it,
527 FindSetRightBit(IRQ0,Local0)
534 Method(_STA,0,Serialized)
547 Device(LNKH) // PHRC Routing Resource
549 Name(_HID,EISAID("PNP0C0F"))
553 // Disable the PCI IRQ.
555 Method(_DIS,0,Serialized)
560 // Possible IRQ Resource Setting.
562 Method (_PRS, 0, Serialized)
567 // Current IRQ Resource Setting.
569 Method(_CRS,0,Serialized)
571 Name(RTLH,ResourceTemplate()
573 IRQ(Level,ActiveLow,Shared) {}
576 // Point to specific byte.
578 CreateWordField(RTLH,1,IRQ0)
580 // Zero out IRQ mask bits 0-15
584 ShiftLeft(1,And(PHRC,0x0F),IRQ0)
589 // Set IRQ Resource Setting.
591 Method(_SRS,1,Serialized)
593 // Point to the specific byte passed in.
595 CreateWordField(Arg0,1,IRQ0)
597 // Determine the IRQ bit to set and store it,
599 FindSetRightBit(IRQ0,Local0)
606 Method(_STA,0,Serialized)