• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* SPDX-License-Identifier: GPL-2.0-only */
2
3/* Intel PCH PCIe support */
4
5Method (IRQM, 1, Serialized) {
6
7	/* Interrupt Map INTA->INTA, INTB->INTB, INTC->INTC, INTD->INTD */
8	Name (IQAA, Package () {
9		Package () { 0x0000ffff, 0, 0, 16 },
10		Package () { 0x0000ffff, 1, 0, 17 },
11		Package () { 0x0000ffff, 2, 0, 18 },
12		Package () { 0x0000ffff, 3, 0, 19 } })
13	Name (IQAP, Package () {
14		Package () { 0x0000ffff, 0, 0, 11 },
15		Package () { 0x0000ffff, 1, 0, 10 },
16		Package () { 0x0000ffff, 2, 0, 11 },
17		Package () { 0x0000ffff, 3, 0, 11 } })
18
19	/* Interrupt Map INTA->INTB, INTB->INTC, INTC->INTD, INTD->INTA */
20	Name (IQBA, Package () {
21		Package () { 0x0000ffff, 0, 0, 17 },
22		Package () { 0x0000ffff, 1, 0, 18 },
23		Package () { 0x0000ffff, 2, 0, 19 },
24		Package () { 0x0000ffff, 3, 0, 16 } })
25	Name (IQBP, Package () {
26		Package () { 0x0000ffff, 0, 0, 10 },
27		Package () { 0x0000ffff, 1, 0, 11 },
28		Package () { 0x0000ffff, 2, 0, 11 },
29		Package () { 0x0000ffff, 3, 0, 11 } })
30
31	/* Interrupt Map INTA->INTC, INTB->INTD, INTC->INTA, INTD->INTB */
32	Name (IQCA, Package () {
33		Package () { 0x0000ffff, 0, 0, 18 },
34		Package () { 0x0000ffff, 1, 0, 19 },
35		Package () { 0x0000ffff, 2, 0, 16 },
36		Package () { 0x0000ffff, 3, 0, 17 } })
37	Name (IQCP, Package () {
38		Package () { 0x0000ffff, 0, 0, 11 },
39		Package () { 0x0000ffff, 1, 0, 11 },
40		Package () { 0x0000ffff, 2, 0, 11 },
41		Package () { 0x0000ffff, 3, 0, 10 } })
42
43	/* Interrupt Map INTA->INTD, INTB->INTA, INTC->INTB, INTD->INTC */
44	Name (IQDA, Package () {
45		Package () { 0x0000ffff, 0, 0, 19 },
46		Package () { 0x0000ffff, 1, 0, 16 },
47		Package () { 0x0000ffff, 2, 0, 17 },
48		Package () { 0x0000ffff, 3, 0, 18 } })
49	Name (IQDP, Package () {
50		Package () { 0x0000ffff, 0, 0, 11 },
51		Package () { 0x0000ffff, 1, 0, 11 },
52		Package () { 0x0000ffff, 2, 0, 10 },
53		Package () { 0x0000ffff, 3, 0, 11 } })
54
55	Switch (ToInteger (Arg0))
56	{
57		Case (Package () { 1, 5, 9, 13 }) {
58			If (PICM) {
59				Return (IQAA)
60			} Else {
61				Return (IQAP)
62			}
63		}
64
65		Case (Package () { 2, 6, 10, 14 }) {
66			If (PICM) {
67				Return (IQBA)
68			} Else {
69				Return (IQBP)
70			}
71		}
72
73		Case (Package () { 3, 7, 11, 15 }) {
74			If (PICM) {
75				Return (IQCA)
76			} Else {
77				Return (IQCP)
78			}
79		}
80
81		Case (Package () { 4, 8, 12, 16 }) {
82			If (PICM) {
83				Return (IQDA)
84			} Else {
85				Return (IQDP)
86			}
87		}
88
89		Default {
90			If (PICM) {
91				Return (IQDA)
92			} Else {
93				Return (IQDP)
94			}
95		}
96	}
97}
98
99Device (RP01)
100{
101	Name (_ADR, 0x001C0000)
102
103	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
104	Field (RPCS, AnyAcc, NoLock, Preserve)
105	{
106		, 24,
107		RPPN, 8,	/* Root Port Number */
108	}
109
110	Method (_PRT)
111	{
112		Return (IRQM (RPPN))
113	}
114}
115
116Device (RP02)
117{
118	Name (_ADR, 0x001C0001)
119
120	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
121	Field (RPCS, AnyAcc, NoLock, Preserve)
122	{
123		, 24,
124		RPPN, 8,	/* Root Port Number */
125	}
126
127	Method (_PRT)
128	{
129		Return (IRQM (RPPN))
130	}
131}
132
133Device (RP03)
134{
135	Name (_ADR, 0x001C0002)
136
137	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
138	Field (RPCS, AnyAcc, NoLock, Preserve)
139	{
140		, 24,
141		RPPN, 8,	/* Root Port Number */
142	}
143
144	Method (_PRT)
145	{
146		Return (IRQM (RPPN))
147	}
148}
149
150Device (RP04)
151{
152	Name (_ADR, 0x001C0003)
153
154	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
155	Field (RPCS, AnyAcc, NoLock, Preserve)
156	{
157		, 24,
158		RPPN, 8,	/* Root Port Number */
159	}
160
161	Method (_PRT)
162	{
163		Return (IRQM (RPPN))
164	}
165}
166
167Device (RP05)
168{
169	Name (_ADR, 0x001C0004)
170
171	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
172	Field (RPCS, AnyAcc, NoLock, Preserve)
173	{
174		, 24,
175		RPPN, 8,	/* Root Port Number */
176	}
177
178	Method (_PRT)
179	{
180		Return (IRQM (RPPN))
181	}
182}
183
184Device (RP06)
185{
186	Name (_ADR, 0x001C0005)
187
188	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
189	Field (RPCS, AnyAcc, NoLock, Preserve)
190	{
191		, 24,
192		RPPN, 8,	/* Root Port Number */
193	}
194
195	Method (_PRT)
196	{
197		Return (IRQM (RPPN))
198	}
199}
200
201Device (RP07)
202{
203	Name (_ADR, 0x001C0006)
204
205	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
206	Field (RPCS, AnyAcc, NoLock, Preserve)
207	{
208		, 24,
209		RPPN, 8,	/* Root Port Number */
210	}
211
212	Method (_PRT)
213	{
214		Return (IRQM (RPPN))
215	}
216}
217
218Device (RP08)
219{
220	Name (_ADR, 0x001C0007)
221
222	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
223	Field (RPCS, AnyAcc, NoLock, Preserve)
224	{
225		, 24,
226		RPPN, 8,	/* Root Port Number */
227	}
228
229	Method (_PRT)
230	{
231		Return (IRQM (RPPN))
232	}
233}
234
235Device (RP09)
236{
237	Name (_ADR, 0x001D0000)
238
239	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
240	Field (RPCS, AnyAcc, NoLock, Preserve)
241	{
242		, 24,
243		RPPN, 8,	/* Root Port Number */
244	}
245
246	Method (_PRT)
247	{
248		Return (IRQM (RPPN))
249	}
250}
251
252Device (RP10)
253{
254	Name (_ADR, 0x001D0001)
255
256	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
257	Field (RPCS, AnyAcc, NoLock, Preserve)
258	{
259		, 24,
260		RPPN, 8,	/* Root Port Number */
261	}
262
263	Method (_PRT)
264	{
265		Return (IRQM (RPPN))
266	}
267}
268
269Device (RP11)
270{
271	Name (_ADR, 0x001D0002)
272
273	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
274	Field (RPCS, AnyAcc, NoLock, Preserve)
275	{
276		, 24,
277		RPPN, 8,	/* Root Port Number */
278	}
279
280	Method (_PRT)
281	{
282		Return (IRQM (RPPN))
283	}
284}
285
286Device (RP12)
287{
288	Name (_ADR, 0x001D0003)
289
290	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
291	Field (RPCS, AnyAcc, NoLock, Preserve)
292	{
293		, 24,
294		RPPN, 8,	/* Root Port Number */
295	}
296
297	Method (_PRT)
298	{
299		Return (IRQM (RPPN))
300	}
301}
302