Add support for Intel Panther Point PCH
[coreboot.git] / src / southbridge / intel / bd82x6x / acpi / irqlinks.asl
1 /*
2  * This file is part of the coreboot project.
3  *
4  * Copyright (C) 2007-2009 coresystems GmbH
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; version 2 of
9  * the License.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
19  * MA 02110-1301 USA
20  */
21
22 Device (LNKA)
23 {
24         Name (_HID, EISAID("PNP0C0F"))
25         Name (_UID, 1)
26
27         // Disable method
28         Method (_DIS, 0, Serialized)
29         {
30                 Store (0x80, PRTA)
31         }
32
33         // Possible Resource Settings for this Link
34         Name (_PRS, ResourceTemplate()
35         {
36                 IRQ(Level, ActiveLow, Shared)
37                         { 1, 3, 4, 5, 6, 7, 10, 12, 14, 15 }
38         })
39
40         // Current Resource Settings for this link
41         Method (_CRS, 0, Serialized)
42         {
43                 Name (RTLA, ResourceTemplate()
44                 {
45                         IRQ(Level, ActiveLow, Shared) {}
46                 })
47                 CreateWordField(RTLA, 1, IRQ0)
48
49                 // Clear the WordField
50                 Store (Zero, IRQ0)
51
52                 // Set the bit from PRTA
53                 ShiftLeft(1, And(PRTA, 0x0f), IRQ0)
54
55                 Return (RTLA)
56         }
57
58         // Set Resource Setting for this IRQ link
59         Method (_SRS, 1, Serialized)
60         {
61                 CreateWordField(Arg0, 1, IRQ0)
62
63                 // Which bit is set?
64                 FindSetRightBit(IRQ0, Local0)
65
66                 Decrement(Local0)
67                 Store(Local0, PRTA)
68         }
69
70         // Status
71         Method (_STA, 0, Serialized)
72         {
73                 If(And(PRTA, 0x80)) {
74                         Return (0x9)
75                 } Else {
76                         Return (0xb)
77                 }
78         }
79 }
80
81 Device (LNKB)
82 {
83         Name (_HID, EISAID("PNP0C0F"))
84         Name (_UID, 2)
85
86         // Disable method
87         Method (_DIS, 0, Serialized)
88         {
89                 Store (0x80, PRTB)
90         }
91
92         // Possible Resource Settings for this Link
93         Name (_PRS, ResourceTemplate()
94         {
95                 IRQ(Level, ActiveLow, Shared)
96                         { 1, 3, 4, 5, 6, 7, 11, 12, 14, 15 }
97         })
98
99         // Current Resource Settings for this link
100         Method (_CRS, 0, Serialized)
101         {
102                 Name (RTLB, ResourceTemplate()
103                 {
104                         IRQ(Level, ActiveLow, Shared) {}
105                 })
106                 CreateWordField(RTLB, 1, IRQ0)
107
108                 // Clear the WordField
109                 Store (Zero, IRQ0)
110
111                 // Set the bit from PRTB
112                 ShiftLeft(1, And(PRTB, 0x0f), IRQ0)
113
114                 Return (RTLB)
115         }
116
117         // Set Resource Setting for this IRQ link
118         Method (_SRS, 1, Serialized)
119         {
120                 CreateWordField(Arg0, 1, IRQ0)
121
122                 // Which bit is set?
123                 FindSetRightBit(IRQ0, Local0)
124
125                 Decrement(Local0)
126                 Store(Local0, PRTB)
127         }
128
129         // Status
130         Method (_STA, 0, Serialized)
131         {
132                 If(And(PRTB, 0x80)) {
133                         Return (0x9)
134                 } Else {
135                         Return (0xb)
136                 }
137         }
138 }
139
140 Device (LNKC)
141 {
142         Name (_HID, EISAID("PNP0C0F"))
143         Name (_UID, 3)
144
145         // Disable method
146         Method (_DIS, 0, Serialized)
147         {
148                 Store (0x80, PRTC)
149         }
150
151         // Possible Resource Settings for this Link
152         Name (_PRS, ResourceTemplate()
153         {
154                 IRQ(Level, ActiveLow, Shared)
155                         { 1, 3, 4, 5, 6, 7, 10, 12, 14, 15 }
156         })
157
158         // Current Resource Settings for this link
159         Method (_CRS, 0, Serialized)
160         {
161                 Name (RTLC, ResourceTemplate()
162                 {
163                         IRQ(Level, ActiveLow, Shared) {}
164                 })
165                 CreateWordField(RTLC, 1, IRQ0)
166
167                 // Clear the WordField
168                 Store (Zero, IRQ0)
169
170                 // Set the bit from PRTC
171                 ShiftLeft(1, And(PRTC, 0x0f), IRQ0)
172
173                 Return (RTLC)
174         }
175
176         // Set Resource Setting for this IRQ link
177         Method (_SRS, 1, Serialized)
178         {
179                 CreateWordField(Arg0, 1, IRQ0)
180
181                 // Which bit is set?
182                 FindSetRightBit(IRQ0, Local0)
183
184                 Decrement(Local0)
185                 Store(Local0, PRTC)
186         }
187
188         // Status
189         Method (_STA, 0, Serialized)
190         {
191                 If(And(PRTC, 0x80)) {
192                         Return (0x9)
193                 } Else {
194                         Return (0xb)
195                 }
196         }
197 }
198
199 Device (LNKD)
200 {
201         Name (_HID, EISAID("PNP0C0F"))
202         Name (_UID, 4)
203
204         // Disable method
205         Method (_DIS, 0, Serialized)
206         {
207                 Store (0x80, PRTD)
208         }
209
210         // Possible Resource Settings for this Link
211         Name (_PRS, ResourceTemplate()
212         {
213                 IRQ(Level, ActiveLow, Shared)
214                         { 1, 3, 4, 5, 6, 7, 11, 12, 14, 15 }
215         })
216
217         // Current Resource Settings for this link
218         Method (_CRS, 0, Serialized)
219         {
220                 Name (RTLD, ResourceTemplate()
221                 {
222                         IRQ(Level, ActiveLow, Shared) {}
223                 })
224                 CreateWordField(RTLD, 1, IRQ0)
225
226                 // Clear the WordField
227                 Store (Zero, IRQ0)
228
229                 // Set the bit from PRTD
230                 ShiftLeft(1, And(PRTD, 0x0f), IRQ0)
231
232                 Return (RTLD)
233         }
234
235         // Set Resource Setting for this IRQ link
236         Method (_SRS, 1, Serialized)
237         {
238                 CreateWordField(Arg0, 1, IRQ0)
239
240                 // Which bit is set?
241                 FindSetRightBit(IRQ0, Local0)
242
243                 Decrement(Local0)
244                 Store(Local0, PRTD)
245         }
246
247         // Status
248         Method (_STA, 0, Serialized)
249         {
250                 If(And(PRTD, 0x80)) {
251                         Return (0x9)
252                 } Else {
253                         Return (0xb)
254                 }
255         }
256 }
257
258 Device (LNKE)
259 {
260         Name (_HID, EISAID("PNP0C0F"))
261         Name (_UID, 5)
262
263         // Disable method
264         Method (_DIS, 0, Serialized)
265         {
266                 Store (0x80, PRTE)
267         }
268
269         // Possible Resource Settings for this Link
270         Name (_PRS, ResourceTemplate()
271         {
272                 IRQ(Level, ActiveLow, Shared)
273                         { 1, 3, 4, 5, 6, 7, 10, 12, 14, 15 }
274         })
275
276         // Current Resource Settings for this link
277         Method (_CRS, 0, Serialized)
278         {
279                 Name (RTLE, ResourceTemplate()
280                 {
281                         IRQ(Level, ActiveLow, Shared) {}
282                 })
283                 CreateWordField(RTLE, 1, IRQ0)
284
285                 // Clear the WordField
286                 Store (Zero, IRQ0)
287
288                 // Set the bit from PRTE
289                 ShiftLeft(1, And(PRTE, 0x0f), IRQ0)
290
291                 Return (RTLE)
292         }
293
294         // Set Resource Setting for this IRQ link
295         Method (_SRS, 1, Serialized)
296         {
297                 CreateWordField(Arg0, 1, IRQ0)
298
299                 // Which bit is set?
300                 FindSetRightBit(IRQ0, Local0)
301
302                 Decrement(Local0)
303                 Store(Local0, PRTE)
304         }
305
306         // Status
307         Method (_STA, 0, Serialized)
308         {
309                 If(And(PRTE, 0x80)) {
310                         Return (0x9)
311                 } Else {
312                         Return (0xb)
313                 }
314         }
315 }
316
317 Device (LNKF)
318 {
319         Name (_HID, EISAID("PNP0C0F"))
320         Name (_UID, 6)
321
322         // Disable method
323         Method (_DIS, 0, Serialized)
324         {
325                 Store (0x80, PRTF)
326         }
327
328         // Possible Resource Settings for this Link
329         Name (_PRS, ResourceTemplate()
330         {
331                 IRQ(Level, ActiveLow, Shared)
332                         { 1, 3, 4, 5, 6, 7, 11, 12, 14, 15 }
333         })
334
335         // Current Resource Settings for this link
336         Method (_CRS, 0, Serialized)
337         {
338                 Name (RTLF, ResourceTemplate()
339                 {
340                         IRQ(Level, ActiveLow, Shared) {}
341                 })
342                 CreateWordField(RTLF, 1, IRQ0)
343
344                 // Clear the WordField
345                 Store (Zero, IRQ0)
346
347                 // Set the bit from PRTF
348                 ShiftLeft(1, And(PRTF, 0x0f), IRQ0)
349
350                 Return (RTLF)
351         }
352
353         // Set Resource Setting for this IRQ link
354         Method (_SRS, 1, Serialized)
355         {
356                 CreateWordField(Arg0, 1, IRQ0)
357
358                 // Which bit is set?
359                 FindSetRightBit(IRQ0, Local0)
360
361                 Decrement(Local0)
362                 Store(Local0, PRTF)
363         }
364
365         // Status
366         Method (_STA, 0, Serialized)
367         {
368                 If(And(PRTF, 0x80)) {
369                         Return (0x9)
370                 } Else {
371                         Return (0xb)
372                 }
373         }
374 }
375
376 Device (LNKG)
377 {
378         Name (_HID, EISAID("PNP0C0F"))
379         Name (_UID, 7)
380
381         // Disable method
382         Method (_DIS, 0, Serialized)
383         {
384                 Store (0x80, PRTG)
385         }
386
387         // Possible Resource Settings for this Link
388         Name (_PRS, ResourceTemplate()
389         {
390                 IRQ(Level, ActiveLow, Shared)
391                         { 1, 3, 4, 5, 6, 7, 10, 12, 14, 15 }
392         })
393
394         // Current Resource Settings for this link
395         Method (_CRS, 0, Serialized)
396         {
397                 Name (RTLG, ResourceTemplate()
398                 {
399                         IRQ(Level, ActiveLow, Shared) {}
400                 })
401                 CreateWordField(RTLG, 1, IRQ0)
402
403                 // Clear the WordField
404                 Store (Zero, IRQ0)
405
406                 // Set the bit from PRTG
407                 ShiftLeft(1, And(PRTG, 0x0f), IRQ0)
408
409                 Return (RTLG)
410         }
411
412         // Set Resource Setting for this IRQ link
413         Method (_SRS, 1, Serialized)
414         {
415                 CreateWordField(Arg0, 1, IRQ0)
416
417                 // Which bit is set?
418                 FindSetRightBit(IRQ0, Local0)
419
420                 Decrement(Local0)
421                 Store(Local0, PRTG)
422         }
423
424         // Status
425         Method (_STA, 0, Serialized)
426         {
427                 If(And(PRTG, 0x80)) {
428                         Return (0x9)
429                 } Else {
430                         Return (0xb)
431                 }
432         }
433 }
434
435 Device (LNKH)
436 {
437         Name (_HID, EISAID("PNP0C0F"))
438         Name (_UID, 8)
439
440         // Disable method
441         Method (_DIS, 0, Serialized)
442         {
443                 Store (0x80, PRTH)
444         }
445
446         // Possible Resource Settings for this Link
447         Name (_PRS, ResourceTemplate()
448         {
449                 IRQ(Level, ActiveLow, Shared)
450                         { 1, 3, 4, 5, 6, 7, 11, 12, 14, 15 }
451         })
452
453         // Current Resource Settings for this link
454         Method (_CRS, 0, Serialized)
455         {
456                 Name (RTLH, ResourceTemplate()
457                 {
458                         IRQ(Level, ActiveLow, Shared) {}
459                 })
460                 CreateWordField(RTLH, 1, IRQ0)
461
462                 // Clear the WordField
463                 Store (Zero, IRQ0)
464
465                 // Set the bit from PRTH
466                 ShiftLeft(1, And(PRTH, 0x0f), IRQ0)
467
468                 Return (RTLH)
469         }
470
471         // Set Resource Setting for this IRQ link
472         Method (_SRS, 1, Serialized)
473         {
474                 CreateWordField(Arg0, 1, IRQ0)
475
476                 // Which bit is set?
477                 FindSetRightBit(IRQ0, Local0)
478
479                 Decrement(Local0)
480                 Store(Local0, PRTH)
481         }
482
483         // Status
484         Method (_STA, 0, Serialized)
485         {
486                 If(And(PRTH, 0x80)) {
487                         Return (0x9)
488                 } Else {
489                         Return (0xb)
490                 }
491         }
492 }
493