Add support for Intel Panther Point PCH
[coreboot.git] / src / southbridge / intel / bd82x6x / acpi / irqlinks.asl
diff --git a/src/southbridge/intel/bd82x6x/acpi/irqlinks.asl b/src/southbridge/intel/bd82x6x/acpi/irqlinks.asl
new file mode 100644 (file)
index 0000000..5fcee45
--- /dev/null
@@ -0,0 +1,493 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007-2009 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 10, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 10, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 10, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 10, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+
+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)
+                       { 1, 3, 4, 5, 6, 7, 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 (0x9)
+               } Else {
+                       Return (0xb)
+               }
+       }
+}
+