Since some people disapprove of white space cleanups mixed in regular commits
[coreboot.git] / src / mainboard / iwill / dk8_htx / acpi / amd8111.asl
1 /*
2  * Copyright 2005 AMD
3  */
4 //AMD8111
5             Name (APIC, Package (0x04)
6             {
7                 Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x10},// 0x0004ffff : assusme 8131 is present
8                 Package (0x04) { 0x0004FFFF, 0x01, 0x00, 0x11},
9                 Package (0x04) { 0x0004FFFF, 0x02, 0x00, 0x12},
10                 Package (0x04) { 0x0004FFFF, 0x03, 0x00, 0x13}
11             })
12
13             Name (PICM, Package (0x04)
14             {
15                 Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.LNKA, 0x00},
16                 Package (0x04) { 0x0004FFFF, 0x01, \_SB.PCI0.LNKB, 0x00},
17                 Package (0x04) { 0x0004FFFF, 0x02, \_SB.PCI0.LNKC, 0x00},
18                 Package (0x04) { 0x0004FFFF, 0x03, \_SB.PCI0.LNKD, 0x00}
19             })
20
21             Name (DNCG, Ones)
22
23             Method (_PRT, 0, NotSerialized)
24             {
25                 If (LEqual (^DNCG, Ones)) {
26                         Store (DADD(\_SB.PCI0.SBDN, 0x0001ffff), Local0)
27                         // Update the Device Number according to SBDN
28                         Store(Local0, Index (DeRefOf (Index (PICM, 0)), 0))
29                         Store(Local0, Index (DeRefOf (Index (PICM, 1)), 0))
30                         Store(Local0, Index (DeRefOf (Index (PICM, 2)), 0))
31                         Store(Local0, Index (DeRefOf (Index (PICM, 3)), 0))
32
33                         Store(Local0, Index (DeRefOf (Index (APIC, 0)), 0))
34                         Store(Local0, Index (DeRefOf (Index (APIC, 1)), 0))
35                         Store(Local0, Index (DeRefOf (Index (APIC, 2)), 0))
36                         Store(Local0, Index (DeRefOf (Index (APIC, 3)), 0))
37
38                         Store (0x00, ^DNCG)
39
40                 }
41
42                 If (LNot (PICF)) {
43                         Return (PICM)
44                 }
45                 Else {
46                         Return (APIC)
47                 }
48             }
49
50             Device (SBC3)
51             {
52                 /*  acpi smbus   it should be 0x00040003 if 8131 present */
53                 Method (_ADR, 0, NotSerialized)
54                 {
55                         Return (DADD(\_SB.PCI0.SBDN, 0x00010003))
56                 }
57                 OperationRegion (PIRQ, PCI_Config, 0x56, 0x02)
58                 Field (PIRQ, ByteAcc, Lock, Preserve)
59                 {
60                     PIBA,   8,
61                     PIDC,   8
62                 }
63 /*
64                 OperationRegion (TS3_, PCI_Config, 0xC4, 0x02)
65                 Field (TS3_, DWordAcc, NoLock, Preserve)
66                 {
67                     PTS3,   16
68                 }
69 */
70             }
71
72             Device (HPET)
73             {
74                 Name (HPT, 0x00)
75                 Name (_HID, EisaId ("PNP0103"))
76                 Name (_UID, 0x00)
77                 Method (_STA, 0, NotSerialized)
78                 {
79                     Return (0x0F)
80                 }
81
82                 Method (_CRS, 0, NotSerialized)
83                 {
84                     Name (BUF0, ResourceTemplate ()
85                     {
86                         Memory32Fixed (ReadWrite, 0xFED00000, 0x00000400)
87                     })
88                     Return (BUF0)
89                 }
90             }
91
92             #include "amd8111_pic.asl"
93
94             #include "amd8111_isa.asl"
95
96             Device (TP2P)
97             {
98                 /* 8111 P2P and it should 0x00030000 when 8131 present*/
99                 Method (_ADR, 0, NotSerialized)
100                 {
101                         Return (DADD(\_SB.PCI0.SBDN, 0x00000000))
102                 }
103
104                 Method (_PRW, 0, NotSerialized)
105                 {
106                     If (CondRefOf (\_S3, Local0)) { Return (Package (0x02) { 0x08, 0x03 }) }
107                     Else { Return (Package (0x02) { 0x08, 0x01 }) }
108                 }
109
110                 Device (USB0)
111                 {
112                     Name (_ADR, 0x00000000)
113                     Method (_PRW, 0, NotSerialized)
114                     {
115                         If (CondRefOf (\_S3, Local0)) { Return (Package (0x02) { 0x0F, 0x03 }) }
116                         Else { Return (Package (0x02) { 0x0F, 0x01 }) }
117                     }
118                 }
119
120                 Device (USB1)
121                 {
122                     Name (_ADR, 0x00000001)
123                     Method (_PRW, 0, NotSerialized)
124                     {
125                         If (CondRefOf (\_S3, Local0)) { Return (Package (0x02) { 0x0F, 0x03 }) }
126                         Else { Return (Package (0x02) { 0x0F, 0x01 }) }
127                     }
128                 }
129
130                 Name (APIC, Package (0x0C)
131                 {
132                     Package (0x04) { 0x0000FFFF, 0x00, 0x00, 0x10 }, //USB
133                     Package (0x04) { 0x0000FFFF, 0x01, 0x00, 0x11 },
134                     Package (0x04) { 0x0000FFFF, 0x02, 0x00, 0x12 },
135                     Package (0x04) { 0x0000FFFF, 0x03, 0x00, 0x13 },
136
137                     Package (0x04) { 0x0004FFFF, 0x00, 0x00, 0x10 }, //Slot 6
138                     Package (0x04) { 0x0004FFFF, 0x01, 0x00, 0x11 },
139                     Package (0x04) { 0x0004FFFF, 0x02, 0x00, 0x12 },
140                     Package (0x04) { 0x0004FFFF, 0x03, 0x00, 0x13 },
141
142                     Package (0x04) { 0x0005FFFF, 0x00, 0x00, 0x11 }, //Slot 5
143                     Package (0x04) { 0x0005FFFF, 0x01, 0x00, 0x12 },
144                     Package (0x04) { 0x0005FFFF, 0x02, 0x00, 0x13 },
145                     Package (0x04) { 0x0005FFFF, 0x03, 0x00, 0x10 }
146                 })
147
148                 Name (PICM, Package (0x0C)
149                 {
150                     Package (0x04) { 0x0000FFFF, 0x00, \_SB.PCI0.LNKA, 0x00 }, //USB
151                     Package (0x04) { 0x0000FFFF, 0x01, \_SB.PCI0.LNKB, 0x00 },
152                     Package (0x04) { 0x0000FFFF, 0x02, \_SB.PCI0.LNKC, 0x00 },
153                     Package (0x04) { 0x0000FFFF, 0x03, \_SB.PCI0.LNKD, 0x00 },
154
155                     Package (0x04) { 0x0004FFFF, 0x00, \_SB.PCI0.LNKA, 0x00 }, //Slot 6
156                     Package (0x04) { 0x0004FFFF, 0x01, \_SB.PCI0.LNKB, 0x00 },
157                     Package (0x04) { 0x0004FFFF, 0x02, \_SB.PCI0.LNKC, 0x00 },
158                     Package (0x04) { 0x0004FFFF, 0x03, \_SB.PCI0.LNKD, 0x00 },
159
160                     Package (0x04) { 0x0005FFFF, 0x00, \_SB.PCI0.LNKB, 0x00 }, //Slot 5
161                     Package (0x04) { 0x0005FFFF, 0x01, \_SB.PCI0.LNKC, 0x00 },
162                     Package (0x04) { 0x0005FFFF, 0x02, \_SB.PCI0.LNKD, 0x00 },
163                     Package (0x04) { 0x0005FFFF, 0x03, \_SB.PCI0.LNKA, 0x00 }
164                 })
165
166                 Method (_PRT, 0, NotSerialized)
167                 {
168                     If (LNot (PICF)) { Return (PICM) }
169                     Else { Return (APIC) }
170                 }
171             }
172