• 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 CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
59		, 17, 21
60#endif
61		}) {
62			If (PICM) {
63				Return (IQAA)
64			} Else {
65				Return (IQAP)
66			}
67		}
68
69		Case (Package () { 2, 6, 10, 14
70#if CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
71		, 18, 22
72#endif
73		}) {
74			If (PICM) {
75				Return (IQBA)
76			} Else {
77				Return (IQBP)
78			}
79		}
80
81		Case (Package () { 3, 7, 11, 15
82#if CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
83		, 19, 23
84#endif
85		}) {
86			If (PICM) {
87				Return (IQCA)
88			} Else {
89				Return (IQCP)
90			}
91		}
92
93		Case (Package () { 4, 8, 12, 16
94#if CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
95		, 20, 24
96#endif
97		}) {
98			If (PICM) {
99				Return (IQDA)
100			} Else {
101				Return (IQDP)
102			}
103		}
104
105		Default {
106			If (PICM) {
107				Return (IQDA)
108			} Else {
109				Return (IQDP)
110			}
111		}
112	}
113}
114
115Device (RP01)
116{
117	Name (_ADR, 0x001C0000)
118
119	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
120	Field (RPCS, AnyAcc, NoLock, Preserve)
121	{
122		, 24,
123		RPPN, 8,	/* Root Port Number */
124	}
125
126	Method (_PRT)
127	{
128		Return (IRQM (RPPN))
129	}
130}
131
132Device (RP02)
133{
134	Name (_ADR, 0x001C0001)
135
136	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
137	Field (RPCS, AnyAcc, NoLock, Preserve)
138	{
139		, 24,
140		RPPN, 8,	/* Root Port Number */
141	}
142
143	Method (_PRT)
144	{
145		Return (IRQM (RPPN))
146	}
147}
148
149Device (RP03)
150{
151	Name (_ADR, 0x001C0002)
152
153	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
154	Field (RPCS, AnyAcc, NoLock, Preserve)
155	{
156		, 24,
157		RPPN, 8,	/* Root Port Number */
158	}
159
160	Method (_PRT)
161	{
162		Return (IRQM (RPPN))
163	}
164}
165
166Device (RP04)
167{
168	Name (_ADR, 0x001C0003)
169
170	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
171	Field (RPCS, AnyAcc, NoLock, Preserve)
172	{
173		, 24,
174		RPPN, 8,	/* Root Port Number */
175	}
176
177	Method (_PRT)
178	{
179		Return (IRQM (RPPN))
180	}
181}
182
183Device (RP05)
184{
185	Name (_ADR, 0x001C0004)
186
187	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
188	Field (RPCS, AnyAcc, NoLock, Preserve)
189	{
190		, 24,
191		RPPN, 8,	/* Root Port Number */
192	}
193
194	Method (_PRT)
195	{
196		Return (IRQM (RPPN))
197	}
198}
199
200Device (RP06)
201{
202	Name (_ADR, 0x001C0005)
203
204	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
205	Field (RPCS, AnyAcc, NoLock, Preserve)
206	{
207		, 24,
208		RPPN, 8,	/* Root Port Number */
209	}
210
211	Method (_PRT)
212	{
213		Return (IRQM (RPPN))
214	}
215}
216
217Device (RP07)
218{
219	Name (_ADR, 0x001C0006)
220
221	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
222	Field (RPCS, AnyAcc, NoLock, Preserve)
223	{
224		, 24,
225		RPPN, 8,	/* Root Port Number */
226	}
227
228	Method (_PRT)
229	{
230		Return (IRQM (RPPN))
231	}
232}
233
234Device (RP08)
235{
236	Name (_ADR, 0x001C0007)
237
238	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
239	Field (RPCS, AnyAcc, NoLock, Preserve)
240	{
241		, 24,
242		RPPN, 8,	/* Root Port Number */
243	}
244
245	Method (_PRT)
246	{
247		Return (IRQM (RPPN))
248	}
249}
250
251Device (RP09)
252{
253	Name (_ADR, 0x001D0000)
254
255	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
256	Field (RPCS, AnyAcc, NoLock, Preserve)
257	{
258		, 24,
259		RPPN, 8,	/* Root Port Number */
260	}
261
262	Method (_PRT)
263	{
264		Return (IRQM (RPPN))
265	}
266}
267
268Device (RP10)
269{
270	Name (_ADR, 0x001D0001)
271
272	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
273	Field (RPCS, AnyAcc, NoLock, Preserve)
274	{
275		, 24,
276		RPPN, 8,	/* Root Port Number */
277	}
278
279	Method (_PRT)
280	{
281		Return (IRQM (RPPN))
282	}
283}
284
285Device (RP11)
286{
287	Name (_ADR, 0x001D0002)
288
289	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
290	Field (RPCS, AnyAcc, NoLock, Preserve)
291	{
292		, 24,
293		RPPN, 8,	/* Root Port Number */
294	}
295
296	Method (_PRT)
297	{
298		Return (IRQM (RPPN))
299	}
300}
301
302Device (RP12)
303{
304	Name (_ADR, 0x001D0003)
305
306	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
307	Field (RPCS, AnyAcc, NoLock, Preserve)
308	{
309		, 24,
310		RPPN, 8,	/* Root Port Number */
311	}
312
313	Method (_PRT)
314	{
315		Return (IRQM (RPPN))
316	}
317}
318
319Device (RP13)
320{
321	Name (_ADR, 0x001D0004)
322
323	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
324	Field (RPCS, AnyAcc, NoLock, Preserve)
325	{
326		, 24,
327		RPPN, 8,	/* Root Port Number */
328	}
329
330	Method (_PRT)
331	{
332		Return (IRQM (RPPN))
333	}
334}
335
336Device (RP14)
337{
338	Name (_ADR, 0x001D0005)
339
340	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
341	Field (RPCS, AnyAcc, NoLock, Preserve)
342	{
343		, 24,
344		RPPN, 8,	/* Root Port Number */
345	}
346
347	Method (_PRT)
348	{
349		Return (IRQM (RPPN))
350	}
351}
352
353Device (RP15)
354{
355	Name (_ADR, 0x001D0006)
356
357	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
358	Field (RPCS, AnyAcc, NoLock, Preserve)
359	{
360		, 24,
361		RPPN, 8,	/* Root Port Number */
362	}
363
364	Method (_PRT)
365	{
366		Return (IRQM (RPPN))
367	}
368}
369
370Device (RP16)
371{
372	Name (_ADR, 0x001D0007)
373
374	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
375	Field (RPCS, AnyAcc, NoLock, Preserve)
376	{
377		, 24,
378		RPPN, 8,	/* Root Port Number */
379	}
380
381	Method (_PRT)
382	{
383		Return (IRQM (RPPN))
384	}
385}
386
387#if CONFIG(SOC_INTEL_CANNONLAKE_PCH_H)
388Device (RP17)
389{
390	Name (_ADR, 0x001B0000)
391
392	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
393	Field (RPCS, AnyAcc, NoLock, Preserve)
394	{
395		, 24,
396		RPPN, 8,	/* Root Port Number */
397	}
398
399	Method (_PRT)
400	{
401		Return (IRQM (RPPN))
402	}
403}
404
405Device (RP18)
406{
407	Name (_ADR, 0x001B0001)
408
409	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
410	Field (RPCS, AnyAcc, NoLock, Preserve)
411	{
412		, 24,
413		RPPN, 8,	/* Root Port Number */
414	}
415
416	Method (_PRT)
417	{
418		Return (IRQM (RPPN))
419	}
420}
421
422Device (RP19)
423{
424	Name (_ADR, 0x001B0002)
425
426	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
427	Field (RPCS, AnyAcc, NoLock, Preserve)
428	{
429		, 24,
430		RPPN, 8,	/* Root Port Number */
431	}
432
433	Method (_PRT)
434	{
435		Return (IRQM (RPPN))
436	}
437}
438
439Device (RP20)
440{
441	Name (_ADR, 0x001B0003)
442
443	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
444	Field (RPCS, AnyAcc, NoLock, Preserve)
445	{
446		, 24,
447		RPPN, 8,	/* Root Port Number */
448	}
449
450	Method (_PRT)
451	{
452		Return (IRQM (RPPN))
453	}
454}
455
456Device (RP21)
457{
458	Name (_ADR, 0x001B0004)
459
460	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
461	Field (RPCS, AnyAcc, NoLock, Preserve)
462	{
463		, 24,
464		RPPN, 8,	/* Root Port Number */
465	}
466
467	Method (_PRT)
468	{
469		Return (IRQM (RPPN))
470	}
471}
472
473Device (RP22)
474{
475	Name (_ADR, 0x001B0005)
476
477	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
478	Field (RPCS, AnyAcc, NoLock, Preserve)
479	{
480		, 24,
481		RPPN, 8,	/* Root Port Number */
482	}
483
484	Method (_PRT)
485	{
486		Return (IRQM (RPPN))
487	}
488}
489
490Device (RP23)
491{
492	Name (_ADR, 0x001B0006)
493
494	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
495	Field (RPCS, AnyAcc, NoLock, Preserve)
496	{
497		, 24,
498		RPPN, 8,	/* Root Port Number */
499	}
500
501	Method (_PRT)
502	{
503		Return (IRQM (RPPN))
504	}
505}
506
507Device (RP24)
508{
509	Name (_ADR, 0x001B0007)
510
511	OperationRegion (RPCS, PCI_Config, 0x4c, 4)
512	Field (RPCS, AnyAcc, NoLock, Preserve)
513	{
514		, 24,
515		RPPN, 8,	/* Root Port Number */
516	}
517
518	Method (_PRT)
519	{
520		Return (IRQM (RPPN))
521	}
522}
523#endif
524
525Device (SRAM)
526{
527	Name (_ADR, 0x00140002)
528}
529
530Device (CSE1)
531{
532	Name (_ADR, 0x00160000)
533}
534