blob: 8ef61a7c19ec6060a5dab03d85402b3d23c594b1 [file] [log] [blame]
Varshit Pandya87c42e82023-11-03 16:55:52 +05301/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <soc/amd/common/acpi/aoac.asl>
4#include <soc/aoac_defs.h>
5#include <soc/gpio.h>
6#include <soc/iomap.h>
7#include <amdblocks/acpimmio_map.h>
8
9Device (AAHB)
10{
11 Name (_HID, "AAHB0000")
12 Name (_UID, 0x0)
13 Name (_CRS, ResourceTemplate()
14 {
15 Memory32Fixed (ReadWrite, ALINK_AHB_ADDRESS, 0x2000)
16 })
17 Name (_STA, 0xb)
18}
19
20Device (GPIO)
21{
22 Name (_HID, GPIO_DEVICE_NAME)
23 Name (_CID, GPIO_DEVICE_NAME)
24 Name (_UID, 0)
25 Name (_DDN, GPIO_DEVICE_DESC)
26
27 Method (_CRS, 0) {
28 Local0 = ResourceTemplate() {
29 Interrupt (
30 ResourceConsumer,
31 Level,
32 ActiveLow,
33 Shared, , , IRQR)
34 { 0 }
35 Memory32Fixed (ReadWrite, ACPIMMIO_GPIO0_BASE, 0x400)
36 }
37 CreateDWordField (Local0, IRQR._INT, IRQN)
38 If (PICM) {
39 IRQN = IGPI
40 } Else {
41 IRQN = PGPI
42 }
43 If (IRQN == 0x1f || IRQN == 0) {
44 Return (ResourceTemplate() {
45 Memory32Fixed (ReadWrite, ACPIMMIO_GPIO0_BASE, 0x400)
46 })
47 } Else {
48 Return (Local0)
49 }
50 }
51
52 Method (_STA, 0x0, NotSerialized)
53 {
54 Return (0x0F)
55 }
56}
57
58Device (FUR0)
59{
60 Name (_HID, "AMDI0020")
61 Name (_UID, 0x0)
62 Method (_CRS, 0) {
63 Local0 = ResourceTemplate() {
64 Interrupt (
65 ResourceConsumer,
66 Edge,
67 ActiveHigh,
68 Exclusive, , , IRQR)
69 { 0 }
70 Memory32Fixed (ReadWrite, APU_UART0_BASE, 0x1000)
71 }
72 CreateDWordField (Local0, IRQR._INT, IRQN)
73 If (PICM) {
74 IRQN = IUA0
75 } Else {
76 IRQN = PUA0
77 }
78 If (IRQN == 0x1f) {
79 Return (ResourceTemplate() {
80 Memory32Fixed (ReadWrite, APU_UART0_BASE, 0x1000)
81 })
82 } Else {
83 Return (Local0)
84 }
85 }
86
87 Name (STAT, 0x0)
88 Method (_STA, 0x0, NotSerialized)
89 {
90 Return (STAT)
91 }
92
93 AOAC_DEVICE(FCH_AOAC_DEV_UART0, 0)
94}
95
96Device (FUR1) {
97 Name (_HID, "AMDI0020")
98 Name (_UID, 0x1)
99 Method (_CRS, 0) {
100 Local0 = ResourceTemplate() {
101 Interrupt (
102 ResourceConsumer,
103 Edge,
104 ActiveHigh,
105 Exclusive, , , IRQR)
106 { 0 }
107 Memory32Fixed (ReadWrite, APU_UART1_BASE, 0x1000)
108 }
109 CreateDWordField (Local0, IRQR._INT, IRQN)
110 If (PICM) {
111 IRQN = IUA1
112 } Else {
113 IRQN = PUA1
114 }
115 If (IRQN == 0x1f) {
116 Return (ResourceTemplate() {
117 Memory32Fixed (ReadWrite, APU_UART1_BASE, 0x1000)
118 })
119 } Else {
120 Return (Local0)
121 }
122 }
123
124 Name (STAT, 0x0)
125 Method (_STA, 0x0, NotSerialized)
126 {
127 Return (STAT)
128 }
129
130 AOAC_DEVICE(FCH_AOAC_DEV_UART1, 0)
131}
132
133Device (FUR2) {
134 Name (_HID, "AMDI0020")
135 Name (_UID, 0x2)
136 Method (_CRS, 0) {
137 Local0 = ResourceTemplate() {
138 Interrupt (
139 ResourceConsumer,
140 Edge,
141 ActiveHigh,
142 Exclusive, , , IRQR)
143 { 0 }
144 Memory32Fixed (ReadWrite, APU_UART2_BASE, 0x1000)
145 }
146 CreateDWordField (Local0, IRQR._INT, IRQN)
147 If (PICM) {
148 IRQN = IUA2
149 } Else {
150 IRQN = PUA2
151 }
152 If (IRQN == 0x1f) {
153 Return (ResourceTemplate() {
154 Memory32Fixed (ReadWrite, APU_UART2_BASE, 0x1000)
155 })
156 } Else {
157 Return (Local0)
158 }
159 }
160
161 Name (STAT, 0x0)
162 Method (_STA, 0x0, NotSerialized)
163 {
164 Return (STAT)
165 }
166
167 AOAC_DEVICE(FCH_AOAC_DEV_UART2, 0)
168}
169
170Device (I2C0) {
171 Name (_HID, "AMDI0010")
172 Name (_UID, 0x0)
173 Method (_CRS, 0) {
174 Local0 = ResourceTemplate() {
175 Interrupt (
176 ResourceConsumer,
177 Edge,
178 ActiveHigh,
179 Exclusive, , , IRQR)
180 { 0 }
181 Memory32Fixed (ReadWrite, APU_I2C0_BASE, 0x1000)
182 }
183 CreateDWordField (Local0, IRQR._INT, IRQN)
184 If (PICM) {
185 IRQN = II20
186 } Else {
187 IRQN = PI20
188 }
189 If (IRQN == 0x1f) {
190 Return (ResourceTemplate() {
191 Memory32Fixed (ReadWrite, APU_I2C0_BASE, 0x1000)
192 })
193 } Else {
194 Return (Local0)
195 }
196 }
197
198 Method (_STA, 0x0, NotSerialized)
199 {
200 Return (0x0F)
201 }
202
203 AOAC_DEVICE(FCH_AOAC_DEV_I2C0, 0)
204}
205
206Device (I2C1) {
207 Name (_HID, "AMDI0010")
208 Name (_UID, 0x1)
209 Method (_CRS, 0) {
210 Local0 = ResourceTemplate() {
211 Interrupt (
212 ResourceConsumer,
213 Edge,
214 ActiveHigh,
215 Exclusive, , , IRQR)
216 { 0 }
217 Memory32Fixed (ReadWrite, APU_I2C1_BASE, 0x1000)
218 }
219 CreateDWordField (Local0, IRQR._INT, IRQN)
220 If (PICM) {
221 IRQN = II21
222 } Else {
223 IRQN = PI21
224 }
225 If (IRQN == 0x1f) {
226 Return (ResourceTemplate() {
227 Memory32Fixed (ReadWrite, APU_I2C1_BASE, 0x1000)
228 })
229 } Else {
230 Return (Local0)
231 }
232 }
233
234 Method (_STA, 0x0, NotSerialized)
235 {
236 Return (0x0F)
237 }
238
239 AOAC_DEVICE(FCH_AOAC_DEV_I2C1, 0)
240}
241
242Device (I2C2) {
243 Name (_HID, "AMDI0010")
244 Name (_UID, 0x2)
245 Method (_CRS, 0) {
246 Local0 = ResourceTemplate() {
247 Interrupt (
248 ResourceConsumer,
249 Edge,
250 ActiveHigh,
251 Exclusive, , , IRQR)
252 { 0 }
253 Memory32Fixed (ReadWrite, APU_I2C2_BASE, 0x1000)
254 }
255 CreateDWordField (Local0, IRQR._INT, IRQN)
256 If (PICM) {
257 IRQN = II22
258 } Else {
259 IRQN = PI22
260 }
261 If (IRQN == 0x1f) {
262 Return (ResourceTemplate() {
263 Memory32Fixed (ReadWrite, APU_I2C2_BASE, 0x1000)
264 })
265 } Else {
266 Return (Local0)
267 }
268 }
269
270 Method (_STA, 0x0, NotSerialized)
271 {
272 Return (0x0F)
273 }
274
275 AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0)
276}
277
278Device (I2C3)
279{
280 Name (_HID, "AMDI0010")
281 Name (_UID, 0x3)
282 Method (_CRS, 0) {
283 Local0 = ResourceTemplate() {
284 Interrupt (
285 ResourceConsumer,
286 Edge,
287 ActiveHigh,
288 Exclusive, , , IRQR)
289 { 0 }
290 Memory32Fixed (ReadWrite, APU_I2C3_BASE, 0x1000)
291 }
292 CreateDWordField (Local0, IRQR._INT, IRQN)
293 If (PICM) {
294 IRQN = II23
295 } Else {
296 IRQN = PI23
297 }
298 If (IRQN == 0x1f) {
299 Return (ResourceTemplate() {
300 Memory32Fixed (ReadWrite, APU_I2C3_BASE, 0x1000)
301 })
302 } Else {
303 Return (Local0)
304 }
305 }
306 Method (_STA, 0x0, NotSerialized)
307 {
308 Return (0x0F)
309 }
310
311 AOAC_DEVICE(FCH_AOAC_DEV_I2C3, 0)
312}
313
314Device (I2C4)
315{
316 Name (_HID, "AMDI0010")
317 Name (_UID, 0x4)
318 Method (_CRS, 0) {
319 Local0 = ResourceTemplate() {
320 Interrupt (
321 ResourceConsumer,
322 Edge,
323 ActiveHigh,
324 Exclusive, , , IRQR)
325 { 0 }
326 Memory32Fixed (ReadWrite, APU_I2C4_BASE, 0x1000)
327 }
328 CreateDWordField (Local0, IRQR._INT, IRQN)
329 If (PICM) {
330 IRQN = II24
331 } Else {
332 IRQN = PI24
333 }
334 If (IRQN == 0x1f) {
335 Return (ResourceTemplate() {
336 Memory32Fixed (ReadWrite, APU_I2C4_BASE, 0x1000)
337 })
338 } Else {
339 Return (Local0)
340 }
341 }
342 Method (_STA, 0x0, NotSerialized)
343 {
344 Return (0x0F)
345 }
346
347 AOAC_DEVICE(FCH_AOAC_DEV_I2C4, 0)
348}
349
350Device (I2C5)
351{
352 Name (_HID, "AMDI0010")
353 Name (_UID, 0x5)
354 Method (_CRS, 0) {
355 Local0 = ResourceTemplate() {
356 Interrupt (
357 ResourceConsumer,
358 Edge,
359 ActiveHigh,
360 Exclusive, , , IRQR)
361 { 0 }
362 Memory32Fixed (ReadWrite, APU_I2C5_BASE, 0x1000)
363 }
364 CreateDWordField (Local0, IRQR._INT, IRQN)
365 If (PICM) {
366 IRQN = II25
367 } Else {
368 IRQN = PI25
369 }
370 If (IRQN == 0x1f) {
371 Return (ResourceTemplate() {
372 Memory32Fixed (ReadWrite, APU_I2C5_BASE, 0x1000)
373 })
374 } Else {
375 Return (Local0)
376 }
377 }
378 Method (_STA, 0x0, NotSerialized)
379 {
380 Return (0x0F)
381 }
382
383 AOAC_DEVICE(FCH_AOAC_DEV_I2C5, 0)
384}
385
386Device (MISC)
387{
388 Name (_HID, "AMD0040")
389 Name (_UID, 0x3)
390 Name (_CRS, ResourceTemplate() {
391 Memory32Fixed (ReadWrite, ACPIMMIO_MISC_BASE, 0x100)
392 })
393 Name (_DSD, Package ()
394 {
395 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
396 Package ()
397 {
398 Package () { "is-rv", 1 },
399 },
400 })
401 Method (_STA, 0x0, NotSerialized)
402 {
403 Return (0x0B)
404 }
405}