1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3/* Intel southbridge PCIe support */ 4 5/* Interrupt Map INTA->INTA, INTB->INTB, INTC->INTC, INTD->INTD */ 6Name (IQAA, Package() { 7 Package() { 0x0000ffff, 0, 0, 16 }, 8 Package() { 0x0000ffff, 1, 0, 17 }, 9 Package() { 0x0000ffff, 2, 0, 18 }, 10 Package() { 0x0000ffff, 3, 0, 19 } }) 11Name (IQAP, Package() { 12 Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKA, 0 }, 13 Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKB, 0 }, 14 Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKC, 0 }, 15 Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKD, 0 } }) 16 17/* Interrupt Map INTA->INTB, INTB->INTC, INTC->INTD, INTD->INTA */ 18Name (IQBA, Package() { 19 Package() { 0x0000ffff, 0, 0, 17 }, 20 Package() { 0x0000ffff, 1, 0, 18 }, 21 Package() { 0x0000ffff, 2, 0, 19 }, 22 Package() { 0x0000ffff, 3, 0, 16 } }) 23Name (IQBP, Package() { 24 Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKB, 0 }, 25 Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKC, 0 }, 26 Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKD, 0 }, 27 Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKA, 0 } }) 28 29/* Interrupt Map INTA->INTC, INTB->INTD, INTC->INTA, INTD->INTB */ 30Name (IQCA, Package() { 31 Package() { 0x0000ffff, 0, 0, 18 }, 32 Package() { 0x0000ffff, 1, 0, 19 }, 33 Package() { 0x0000ffff, 2, 0, 16 }, 34 Package() { 0x0000ffff, 3, 0, 17 } }) 35Name (IQCP, Package() { 36 Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKC, 0 }, 37 Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKD, 0 }, 38 Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKA, 0 }, 39 Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKB, 0 } }) 40 41/* Interrupt Map INTA->INTD, INTB->INTA, INTC->INTB, INTD->INTC */ 42Name (IQDA, Package() { 43 Package() { 0x0000ffff, 0, 0, 19 }, 44 Package() { 0x0000ffff, 1, 0, 16 }, 45 Package() { 0x0000ffff, 2, 0, 17 }, 46 Package() { 0x0000ffff, 3, 0, 18 } }) 47Name (IQDP, Package() { 48 Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKD, 0 }, 49 Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKA, 0 }, 50 Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKB, 0 }, 51 Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKC, 0 } }) 52 53Method (IRQM, 1, Serialized) { 54 55 Switch (ToInteger (Arg0)) { 56 /* PCIe Root Port 1 and 5 */ 57 Case (Package() { 1, 5 }) { 58 If (PICM) { 59 Return (IQAA) 60 } Else { 61 Return (IQAP) 62 } 63 } 64 65 /* PCIe Root Port 2 and 6 */ 66 Case (Package() { 2, 6 }) { 67 If (PICM) { 68 Return (IQBA) 69 } Else { 70 Return (IQBP) 71 } 72 } 73 74 /* PCIe Root Port 3 and 7 */ 75 Case (Package() { 3, 7 }) { 76 If (PICM) { 77 Return (IQCA) 78 } Else { 79 Return (IQCP) 80 } 81 } 82 83 /* PCIe Root Port 4 and 8 */ 84 Case (Package() { 4, 8 }) { 85 If (PICM) { 86 Return (IQDA) 87 } Else { 88 Return (IQDP) 89 } 90 } 91 92 Default { 93 If (PICM) { 94 Return (IQDA) 95 } Else { 96 Return (IQDP) 97 } 98 } 99 } 100} 101 102Device (RP01) 103{ 104 Name (_ADR, 0x001c0000) 105 106 #include "pcie_port.asl" 107 108 Method (_PRT) 109 { 110 Return (IRQM (RPPN)) 111 } 112} 113 114Device (RP02) 115{ 116 Name (_ADR, 0x001c0001) 117 118 #include "pcie_port.asl" 119 120 Method (_PRT) 121 { 122 Return (IRQM (RPPN)) 123 } 124} 125 126Device (RP03) 127{ 128 Name (_ADR, 0x001c0002) 129 130 #include "pcie_port.asl" 131 132 Method (_PRT) 133 { 134 Return (IRQM (RPPN)) 135 } 136} 137 138Device (RP04) 139{ 140 Name (_ADR, 0x001c0003) 141 142 #include "pcie_port.asl" 143 144 Method (_PRT) 145 { 146 Return (IRQM (RPPN)) 147 } 148} 149 150Device (RP05) 151{ 152 Name (_ADR, 0x001c0004) 153 154 #include "pcie_port.asl" 155 156 Method (_PRT) 157 { 158 Return (IRQM (RPPN)) 159 } 160} 161 162Device (RP06) 163{ 164 Name (_ADR, 0x001c0005) 165 166 #include "pcie_port.asl" 167 168 Method (_PRT) 169 { 170 Return (IRQM (RPPN)) 171 } 172} 173 174Device (RP07) 175{ 176 Name (_ADR, 0x001c0006) 177 178 #include "pcie_port.asl" 179 180 Method (_PRT) 181 { 182 Return (IRQM (RPPN)) 183 } 184} 185 186Device (RP08) 187{ 188 Name (_ADR, 0x001c0007) 189 190 #include "pcie_port.asl" 191 192 Method (_PRT) 193 { 194 Return (IRQM (RPPN)) 195 } 196} 197