• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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