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 ; This program and the accompanying materials are licensed and made available under
11 ; the terms and conditions of the BSD License that accompanies this distribution.
12 ; The full text of the license may be found at
13 ; http://opensource.org/licenses/bsd-license.php.
15 ; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
16 ; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 ;**************************************************************************/
24 // Use this information when determining the Possible IRQs that can be
25 // used in a given system.
27 // The following IRQs are always in use by legacy devices:
31 // 9 = SCI Interrupt (It may be used, we choose not to)
32 // 13 = Co-processor Error
34 // The following may be in use by legacy devices:
35 // 1 = If using PS/2 Keyboard
36 // 3 = If COMx Port Enabled and IRQ = 3
37 // 4 = If COMx Port Enabled and IRQ = 4
38 // 5 = If LPT Port Enabled and IRQ = 5
40 // 7 = If LPT Port Enabled and IRQ = 7
41 // 12 = If using PS/2 Mouse
42 // 14 = Primary IDE (If populated and in Compatibility Mode)
43 // 15 = Secondary IDE (If populated and in Compatibility Mode)
45 // The following will never be in use by legacy devices:
46 // 10 = Assign to PARC, PCRC, PERC, PGRC
47 // 11 = Assign to PBRC, PDRC, PFRC, PHRC
49 Device(LNKA) // PARC Routing Resource
51 Name(_HID,EISAID("PNP0C0F")) // PCI Interrupt Link Device
53 Name(_UID,1) // Unique to other Link Devices
55 // Disable the PCI IRQ.
57 Method(_DIS,0,Serialized)
62 // Possible IRQ Resource Setting.
64 Method (_PRS, 0, Serialized)
69 // Current IRQ Resource Setting.
71 Method(_CRS,0,Serialized)
73 Name(RTLA,ResourceTemplate()
75 IRQ(Level,ActiveLow,Shared) {}
78 // Point to specific byte.
80 CreateWordField(RTLA,1,IRQ0)
82 // Zero out IRQ mask bits 0-15
86 ShiftLeft(1,And(PARC,0x0F),IRQ0)
91 // Set IRQ Resource Setting.
93 Method(_SRS,1,Serialized)
95 // Point to the specific byte passed in
97 CreateWordField(Arg0,1,IRQ0)
99 // Determine the IRQ bit to set and store it
101 FindSetRightBit(IRQ0,Local0)
108 Method(_STA,0,Serialized)
121 Device(LNKB) // PBRC Routing Resource
123 Name(_HID,EISAID("PNP0C0F"))
127 // Disable the PCI IRQ.
129 Method(_DIS,0,Serialized)
134 // Possible IRQ Resource Setting.
136 Method (_PRS, 0, Serialized)
141 // Current IRQ Resource Setting.
143 Method(_CRS,0,Serialized)
145 Name(RTLB,ResourceTemplate()
147 IRQ(Level,ActiveLow,Shared) {}
150 // Point to specific byte.
152 CreateWordField(RTLB,1,IRQ0)
154 // Zero out IRQ mask bits 0-15
158 ShiftLeft(1,And(PBRC,0x0F),IRQ0)
163 // Set IRQ Resource Setting.
165 Method(_SRS,1,Serialized)
167 // Point to the specific byte passed in.
169 CreateWordField(Arg0,1,IRQ0)
171 // Determine the IRQ bit to set and store it,
173 FindSetRightBit(IRQ0,Local0)
180 Method(_STA,0,Serialized)
193 Device(LNKC) // PCRC Routing Resource
195 Name(_HID,EISAID("PNP0C0F"))
199 // Disable the PCI IRQ.
201 Method(_DIS,0,Serialized)
206 // Possible IRQ Resource Setting.
208 Method (_PRS, 0, Serialized)
213 // Current IRQ Resource Setting.
215 Method(_CRS,0,Serialized)
217 Name(RTLC,ResourceTemplate()
219 IRQ(Level,ActiveLow,Shared) {}
222 // Point to specific byte.
224 CreateWordField(RTLC,1,IRQ0)
226 // Zero out IRQ mask bits 0-15
230 ShiftLeft(1,And(PCRC,0x0F),IRQ0)
235 // Set IRQ Resource Setting.
237 Method(_SRS,1,Serialized)
239 // Point to the specific byte passed in.
241 CreateWordField(Arg0,1,IRQ0)
243 // Determine the IRQ bit to set and store it,
245 FindSetRightBit(IRQ0,Local0)
252 Method(_STA,0,Serialized)
265 Device(LNKD) // PDRC Routing Resource
267 Name(_HID,EISAID("PNP0C0F"))
271 // Disable the PCI IRQ.
273 Method(_DIS,0,Serialized)
278 // Possible IRQ Resource Setting.
280 Method (_PRS, 0, Serialized)
285 // Current IRQ Resource Setting.
287 Method(_CRS,0,Serialized)
289 Name(RTLD,ResourceTemplate()
291 IRQ(Level,ActiveLow,Shared) {}
294 // Point to specific byte.
296 CreateWordField(RTLD,1,IRQ0)
298 // Zero out IRQ mask bits 0-15
302 ShiftLeft(1,And(PDRC,0x0F),IRQ0)
307 // Set IRQ Resource Setting.
309 Method(_SRS,1,Serialized)
311 // Point to the specific byte passed in.
313 CreateWordField(Arg0,1,IRQ0)
315 // Determine the IRQ bit to set and store it,
317 FindSetRightBit(IRQ0,Local0)
324 Method(_STA,0,Serialized)
337 Device(LNKE) // PERC Routing Resource
339 Name(_HID,EISAID("PNP0C0F"))
343 // Disable the PCI IRQ.
345 Method(_DIS,0,Serialized)
350 // Possible IRQ Resource Setting.
352 Method (_PRS, 0, Serialized)
357 // Current IRQ Resource Setting.
359 Method(_CRS,0,Serialized)
361 Name(RTLE,ResourceTemplate()
363 IRQ(Level,ActiveLow,Shared) {}
366 // Point to specific byte.
368 CreateWordField(RTLE,1,IRQ0)
370 // Zero out IRQ mask bits 0-15
374 ShiftLeft(1,And(PERC,0x0F),IRQ0)
379 // Set IRQ Resource Setting.
381 Method(_SRS,1,Serialized)
383 // Point to the specific byte passed in
385 CreateWordField(Arg0,1,IRQ0)
387 // Determine the IRQ bit to set and store it
389 FindSetRightBit(IRQ0,Local0)
396 Method(_STA,0,Serialized)
409 Device(LNKF) // PFRC Routing Resource
411 Name(_HID,EISAID("PNP0C0F"))
415 // Disable the PCI IRQ.
417 Method(_DIS,0,Serialized)
422 // Possible IRQ Resource Setting.
424 Method (_PRS, 0, Serialized)
429 // Current IRQ Resource Setting.
431 Method(_CRS,0,Serialized)
433 Name(RTLF,ResourceTemplate()
435 IRQ(Level,ActiveLow,Shared) {}
438 // Point to specific byte.
440 CreateWordField(RTLF,1,IRQ0)
442 // Zero out IRQ mask bits 0-15
446 ShiftLeft(1,And(PFRC,0x0F),IRQ0)
451 // Set IRQ Resource Setting.
453 Method(_SRS,1,Serialized)
455 // Point to the specific byte passed in.
457 CreateWordField(Arg0,1,IRQ0)
459 // Determine the IRQ bit to set and store it,
461 FindSetRightBit(IRQ0,Local0)
468 Method(_STA,0,Serialized)
481 Device(LNKG) // PGRC Routing Resource
483 Name(_HID,EISAID("PNP0C0F"))
487 // Disable the PCI IRQ.
489 Method(_DIS,0,Serialized)
494 // Possible IRQ Resource Setting.
496 Method (_PRS, 0, Serialized)
501 // Current IRQ Resource Setting.
503 Method(_CRS,0,Serialized)
505 Name(RTLG,ResourceTemplate()
507 IRQ(Level,ActiveLow,Shared) {}
510 // Point to specific byte.
512 CreateWordField(RTLG,1,IRQ0)
514 // Zero out IRQ mask bits 0-15
518 ShiftLeft(1,And(PGRC,0x0F),IRQ0)
523 // Set IRQ Resource Setting.
525 Method(_SRS,1,Serialized)
527 // Point to the specific byte passed in.
529 CreateWordField(Arg0,1,IRQ0)
531 // Determine the IRQ bit to set and store it,
533 FindSetRightBit(IRQ0,Local0)
540 Method(_STA,0,Serialized)
553 Device(LNKH) // PHRC Routing Resource
555 Name(_HID,EISAID("PNP0C0F"))
559 // Disable the PCI IRQ.
561 Method(_DIS,0,Serialized)
566 // Possible IRQ Resource Setting.
568 Method (_PRS, 0, Serialized)
573 // Current IRQ Resource Setting.
575 Method(_CRS,0,Serialized)
577 Name(RTLH,ResourceTemplate()
579 IRQ(Level,ActiveLow,Shared) {}
582 // Point to specific byte.
584 CreateWordField(RTLH,1,IRQ0)
586 // Zero out IRQ mask bits 0-15
590 ShiftLeft(1,And(PHRC,0x0F),IRQ0)
595 // Set IRQ Resource Setting.
597 Method(_SRS,1,Serialized)
599 // Point to the specific byte passed in.
601 CreateWordField(Arg0,1,IRQ0)
603 // Determine the IRQ bit to set and store it,
605 FindSetRightBit(IRQ0,Local0)
612 Method(_STA,0,Serialized)