123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * Copyright (C) 2007-2009 coresystems GmbH
- * Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
- *
- * Modified from coreboot src/soc/intel/baytrail/acpi/irqlinks.asl
- */
- /*
- * Intel chipset PIRQ routing control ASL description
- *
- * The programming interface is common to most Intel chipsets. But the PRTx
- * registers may be mapped to different blocks. Some chipsets map them to LPC
- * device (00:1f:00) PCI configuration space (like TunnelCreek, Quark), while
- * some newer Atom SoCs (like BayTrail, Braswell) map them to Intel Legacy
- * Block (ILB) memory space.
- *
- * This file defines 8 PCI IRQ link devices which corresponds to 8 PIRQ lines
- * PIRQ A/B/C/D/E/F/G/H. To incorperate this file, the PRTx registers must be
- * defined somewhere else in the platform's ASL files.
- */
- Device (LNKA)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 1)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTA)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLA, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLA, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTA */
- ShiftLeft(1, And(PRTA, 0x0f), IRQ0)
- Return (RTLA)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTA)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTA, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKB)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 2)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTB)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLB, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLB, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTB */
- ShiftLeft(1, And(PRTB, 0x0f), IRQ0)
- Return (RTLB)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTB)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTB, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKC)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 3)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTC)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLC, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLC, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTC */
- ShiftLeft(1, And(PRTC, 0x0f), IRQ0)
- Return (RTLC)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTC)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTC, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKD)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 4)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTD)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLD, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLD, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTD */
- ShiftLeft(1, And(PRTD, 0x0f), IRQ0)
- Return (RTLD)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTD)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTD, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKE)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 5)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTE)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLE, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLE, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTE */
- ShiftLeft(1, And(PRTE, 0x0f), IRQ0)
- Return (RTLE)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTE)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTE, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKF)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 6)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTF)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLF, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLF, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTF */
- ShiftLeft(1, And(PRTF, 0x0f), IRQ0)
- Return (RTLF)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTF)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTF, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKG)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 7)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTG)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLG, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLG, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTG */
- ShiftLeft(1, And(PRTG, 0x0f), IRQ0)
- Return (RTLG)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTG)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTG, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
- Device (LNKH)
- {
- Name(_HID, EISAID("PNP0C0F"))
- Name(_UID, 8)
- /* Disable method */
- Method(_DIS, 0, Serialized)
- {
- Store(0x80, PRTH)
- }
- /* Possible Resource Settings for this Link */
- Name(_PRS, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) { 5, 6, 7, 10, 11, 12, 14, 15 }
- })
- /* Current Resource Settings for this link */
- Method(_CRS, 0, Serialized)
- {
- Name(RTLH, ResourceTemplate()
- {
- IRQ(Level, ActiveLow, Shared) {}
- })
- CreateWordField(RTLH, 1, IRQ0)
- /* Clear the WordField */
- Store(Zero, IRQ0)
- /* Set the bit from PRTH */
- ShiftLeft(1, And(PRTH, 0x0f), IRQ0)
- Return (RTLH)
- }
- /* Set Resource Setting for this IRQ link */
- Method(_SRS, 1, Serialized)
- {
- CreateWordField(Arg0, 1, IRQ0)
- /* Which bit is set? */
- FindSetRightBit(IRQ0, Local0)
- Decrement(Local0)
- Store(Local0, PRTH)
- }
- /* Status */
- Method(_STA, 0, Serialized)
- {
- If (And(PRTH, 0x80)) {
- Return (STA_DISABLED)
- } Else {
- Return (STA_INVISIBLE)
- }
- }
- }
|