Add ACPI automatic PIC/APIC interrupt routing logic for ck804.

Signed-off-by: Jonathan Kollasch <[email protected]>
Index: src/southbridge/nvidia/ck804/acpi/ck804.asl
===================================================================
--- src/southbridge/nvidia/ck804/acpi/ck804.asl (revision 0)
+++ src/southbridge/nvidia/ck804/acpi/ck804.asl (revision 0)
@@ -0,0 +1,918 @@
+Device (LPCB) {
+       Name (_ADR, 0x00010000)
+       OperationRegion (LPC0, PCI_Config, 0x00, 0x100)
+       Field (LPC0, AnyAcc, NoLock, Preserve) {
+               Offset (0x7c),
+               INTA, 4, INTB, 4,
+               INTC, 4, INTD, 4,
+               INTE, 4, INTF, 4,
+               INTG, 4, INTH, 4,
+
+               INTI, 4, INTJ, 4,
+               INTK, 4, INTL, 4,
+               INTM, 4, INTN, 4,
+               INTO, 4, INTP, 4,
+
+               INTQ, 4, INTR, 4,
+               INTS, 4, INTT, 4,
+               INTU, 4, INTV, 4,
+               INTW, 4, INTX, 4,
+       }
+}
+Name (PRS0, ResourceTemplate () {
+       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) {
+               /* 5,  7, 10, 11, */
+               20, 21, 22, 23,
+       }
+})
+/* For _CRS */
+Method (ILM0, 1, Serialized) {
+             If (LEqual (Arg0, 8)) {
+               Return (20)
+       } ElseIf (LEqual (Arg0, 13)) {
+               Return (21)
+       } ElseIf (LEqual (Arg0, 2)) {
+               Return (22)
+       } ElseIf (LEqual (Arg0, 1)) {
+               Return (23)
+       } Else {
+               Return (0)
+       }
+}
+/* For _SRS */
+Method (MLI0, 1, Serialized) {
+             If (LEqual (Arg0, 20)) {
+               Return (8)
+       } ElseIf (LEqual (Arg0, 21)) {
+               Return (13)
+       } ElseIf (LEqual (Arg0, 22)) {
+               Return (2)
+       } ElseIf (LEqual (Arg0, 23)) {
+               Return (1)
+       } Else {
+               Return (0)
+       }
+}
+Name (PRS1, ResourceTemplate () {
+       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) {
+               /* 5,  7, 10, 11, */
+               16, 17, 18, 19,
+       }
+})
+/* For _CRS */
+Method (ILM1, 1, Serialized) {
+             If (LEqual (Arg0, 8)) {
+               Return (16)
+       } ElseIf (LEqual (Arg0, 1)) {
+               Return (17)
+       } ElseIf (LEqual (Arg0, 2)) {
+               Return (18)
+       } ElseIf (LEqual (Arg0, 13)) {
+               Return (19)
+       } Else {
+               Return (0)
+       }
+}
+/* For _SRS */
+Method (MLI1, 1, Serialized) {
+             If (LEqual (Arg0, 16)) {
+               Return (8)
+       } ElseIf (LEqual (Arg0, 17)) {
+               Return (1)
+       } ElseIf (LEqual (Arg0, 18)) {
+               Return (2)
+       } ElseIf (LEqual (Arg0, 19)) {
+               Return (13)
+       } Else {
+               Return (0)
+       }
+}
+Device (LPIA) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00001)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTA) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTA)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTA, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTA)
+       }
+}
+Device (APIA) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10001)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTA) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTA)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS1)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM1(\_SB.PCI0.LPCB.INTA), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               
+               Store(MLI1(LIRQ), \_SB.PCI0.LPCB.INTA)
+       }
+}
+Device (LPIB) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00002)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTB) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTB)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTB, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTB)
+       }
+}
+Device (APIB) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10002)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTB) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTB)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS1)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM1(\_SB.PCI0.LPCB.INTB), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               
+               Store(MLI1(LIRQ), \_SB.PCI0.LPCB.INTB)
+       }
+}
+Device (LPIC) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00003)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTC) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTC)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTC, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTC)
+       }
+}
+Device (APIC) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10003)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTC) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTC)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS1)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM1(\_SB.PCI0.LPCB.INTC), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               
+               Store(MLI1(LIRQ), \_SB.PCI0.LPCB.INTC)
+       }
+}
+Device (LPID) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00004)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTD) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTD)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTD, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTD)
+       }
+}
+Device (APID) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10004)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTD) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTD)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS1)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM1(\_SB.PCI0.LPCB.INTD), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               
+               Store(MLI1(LIRQ), \_SB.PCI0.LPCB.INTD)
+       }
+}
+#if 0
+Device (IRQE) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10005)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTE) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTE)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTE, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTE)
+       }
+}
+#endif
+Device (LLAS) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00006)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTK) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTK)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTK, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTK)
+       }
+}
+Device (ALAS) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10006)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTK) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTK)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTK), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTK)
+       }
+}
+Device (LUOH) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00007)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTQ) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTQ)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTQ, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTQ)
+       }
+}
+Device (AUOH) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10007)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTQ) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTQ)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTQ), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTQ)
+       }
+}
+Device (LUEH) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00008)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTL) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTL)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTL, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTL)
+       }
+}
+Device (AUEH) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10008)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTL) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTL)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTL), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTL)
+       }
+}
+Device (LAUD) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x00009)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTU) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTU)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTU, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTU)
+       }
+}
+Device (AAUD) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x10009)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTU) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTU)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTU), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTU)
+       }
+}
+Device (LMOD) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x0000A)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTV) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTV)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTV, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTV)
+       }
+}
+Device (AMOD) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x1000A)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTV) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTV)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTV), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTV)
+       }
+}
+Device (LPA0) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x0000C)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTW) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTW)
+               Store (0, \_SB.PCI0.LPCB.INTX)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTW, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTW)
+               Store(Local0, \_SB.PCI0.LPCB.INTX)
+       }
+}
+Device (APA0) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x1000C)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTW) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTW)
+               Store (0, \_SB.PCI0.LPCB.INTX)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTW), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTW)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTX)
+       }
+}
+Device (LSA0) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x0000D)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTP) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTP)
+               Store (0, \_SB.PCI0.LPCB.INTG)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTP, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTP)
+               Store(Local0, \_SB.PCI0.LPCB.INTG)
+       }
+}
+Device (ASA0) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x1000D)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTP) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTP)
+               Store (0, \_SB.PCI0.LPCB.INTG)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTP), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTP)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTG)
+       }
+}
+Device (LSA1) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x0000E)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTO) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTO)
+               Store (0, \_SB.PCI0.LPCB.INTF)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTO, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTO)
+               Store(Local0, \_SB.PCI0.LPCB.INTF)
+       }
+}
+Device (ASA1) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x1000E)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTO) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTO)
+               Store (0, \_SB.PCI0.LPCB.INTF)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTO), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTO)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTF)
+       }
+}
+Device (LEMA) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x0000F)
+       Method (_STA, 0, Serialized) {
+               if (\_SB.PCI0.LPCB.INTS) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTS)
+       }
+       Name (_PRS, ResourceTemplate () {
+               IRQ(Level, ActiveLow, Shared) {5, 7, 10, 11}
+       })
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       IRQ(Level, ActiveLow, Shared) {}
+               })
+               CreateWordField(LRTL, 1, LIRQ)
+               ShiftLeft(1, \_SB.PCI0.LPCB.INTS, LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateWordField(Arg0, 1, LIRQ)
+               FindSetRightBit(LIRQ, Local0)
+               Decrement(Local0)
+               Store(Local0, \_SB.PCI0.LPCB.INTS)
+       }
+}
+Device (AEMA) {
+       Name (_HID, EISAID ("PNP0C0F"))
+       Name (_UID, 0x1000F)
+       Method (_STA, 0, Serialized) {
+               If (\_SB.PCI0.LPCB.INTS) {
+                       Return (0xb)
+               } Else {
+                       Return (0x9)
+               }
+       }
+       Method (_DIS, 0, Serialized) {
+               Store (0, \_SB.PCI0.LPCB.INTS)
+       }
+       Method (_PRS, 0, Serialized) {
+               Return (PRS0)
+       }
+       Method (_CRS, 0, Serialized) {
+               Name (LRTL, ResourceTemplate() {
+                       Interrupt (ResourceConsumer, Level, ActiveLow, Shared, 
,,) { 0 }
+               })
+               CreateDWordField (LRTL, 5, LIRQ)
+               Store(ILM0(\_SB.PCI0.LPCB.INTS), LIRQ)
+               Return (LRTL)
+       }
+       Method (_SRS, 1, Serialized) {
+               CreateDWordField(Arg0, 5, LIRQ)
+               Store(MLI0(LIRQ), \_SB.PCI0.LPCB.INTS)
+       }
+}
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to