blob: d8bbf06aecf0ea59e6e8f35ee9704572d534bf44 [file] [log] [blame]
Angel Ponsae593872020-04-04 18:50:57 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Martin Roth5c354b92019-04-22 14:55:16 -06002
Raul E Rangel5c5f2112021-02-11 16:00:22 -07003#include <soc/amd/common/acpi/aoac.asl>
Felix Held3b463332021-06-15 16:25:46 +02004#include <soc/aoac_defs.h>
Martin Roth5c354b92019-04-22 14:55:16 -06005#include <soc/gpio.h>
6#include <soc/iomap.h>
Kyösti Mälkkic9eae792019-11-27 07:45:27 +02007#include <amdblocks/acpimmio_map.h>
Martin Roth5c354b92019-04-22 14:55:16 -06008
9Device (AAHB)
10{
11 Name (_HID, "AAHB0000")
12 Name (_UID, 0x0)
13 Name (_CRS, ResourceTemplate()
14 {
15 Memory32Fixed (ReadWrite, ALINK_AHB_ADDRESS, 0x2000)
16 })
Felix Held39a98262023-05-12 18:51:24 +020017 Method (_STA, 0x0, NotSerialized)
18 {
19 Return (0x0b)
20 }
Martin Roth5c354b92019-04-22 14:55:16 -060021}
22
23Device (GPIO)
24{
25 Name (_HID, GPIO_DEVICE_NAME)
26 Name (_CID, GPIO_DEVICE_NAME)
27 Name (_UID, 0)
28 Name (_DDN, GPIO_DEVICE_DESC)
29
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060030 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +020031 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060032 Interrupt (
33 ResourceConsumer,
34 Level,
35 ActiveLow,
Raul E Rangel0a5d1d72022-05-09 16:53:28 -060036 Shared, , , IRQR)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060037 { 0 }
Felix Held88d8e2b2020-12-03 18:17:57 +010038 Memory32Fixed (ReadWrite, ACPIMMIO_GPIO0_BASE, 0x400)
Felix Helde5f4b2f2020-06-08 22:31:53 +020039 }
40 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +020041 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060042 IRQN = IGPI
43 } Else {
44 IRQN = PGPI
45 }
46 If (IRQN == 0x1f) {
47 Return (ResourceTemplate() {
Felix Held88d8e2b2020-12-03 18:17:57 +010048 Memory32Fixed (ReadWrite, ACPIMMIO_GPIO0_BASE, 0x400)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060049 })
50 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +020051 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -060052 }
53 }
Martin Roth5c354b92019-04-22 14:55:16 -060054
55 Method (_STA, 0x0, NotSerialized)
56 {
57 Return (0x0F)
58 }
59}
60
Raul E Rangelf700be02020-05-28 15:29:01 -060061Device (MMC0)
62{
63 Name (_HID, "AMDI0040")
64 Name (_UID, 0x0)
65 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +020066 Local0 = ResourceTemplate() {
Raul E Rangelf700be02020-05-28 15:29:01 -060067 Interrupt (
68 ResourceConsumer,
69 Level,
70 ActiveLow,
71 Exclusive, , , IRQR)
72 { 0 }
73 Memory32Fixed (ReadWrite, APU_EMMC_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +020074 }
75 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +020076 If (PICM) {
Raul E Rangelf700be02020-05-28 15:29:01 -060077 IRQN = IMMC
78 } Else {
79 IRQN = PMMC
80 }
81 If (IRQN == 0x1f) {
82 Return (ResourceTemplate(){
83 Memory32Fixed (ReadWrite, APU_EMMC_BASE, 0x1000)
84 })
85 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +020086 Return (Local0)
Raul E Rangelf700be02020-05-28 15:29:01 -060087 }
88 }
89
Felix Held850b6c62023-09-07 16:33:26 +020090 Name (STAT, 0x0)
Raul E Rangelf700be02020-05-28 15:29:01 -060091 Method (_STA, 0x0, NotSerialized)
92 {
Felix Held850b6c62023-09-07 16:33:26 +020093 Return (STAT)
Raul E Rangelf700be02020-05-28 15:29:01 -060094 }
CoolStar35130a82024-04-11 21:23:25 -070095
96 Device (CARD)
97 {
98 Name (_ADR, 0x00000008)
99 Method (_RMV, 0, NotSerialized)
100 {
101 Return (0)
102 }
103 }
Raul E Rangelf700be02020-05-28 15:29:01 -0600104}
105
Martin Roth5c354b92019-04-22 14:55:16 -0600106Device (FUR0)
107{
Raul E Rangel4389bbc2021-01-22 10:07:59 -0700108 Name (_HID, "AMDI0020")
Martin Roth5c354b92019-04-22 14:55:16 -0600109 Name (_UID, 0x0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600110 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200111 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600112 Interrupt (
113 ResourceConsumer,
114 Edge,
115 ActiveHigh,
116 Exclusive, , , IRQR)
117 { 0 }
118 Memory32Fixed (ReadWrite, APU_UART0_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500119 Memory32Fixed (ReadWrite, APU_DMAC0_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200120 }
121 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200122 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600123 IRQN = IUA0
124 } Else {
125 IRQN = PUA0
126 }
127 If (IRQN == 0x1f) {
128 Return (ResourceTemplate() {
129 Memory32Fixed (ReadWrite, APU_UART0_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500130 Memory32Fixed (ReadWrite, APU_DMAC0_BASE, 0x1000)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600131 })
132 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200133 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600134 }
135 }
Kangheui Won7fe005f2020-08-06 19:03:23 +1000136
Matt DeVillier7cf9c742023-08-08 11:37:03 -0500137 Name (STAT, 0x0)
138 Method (_STA, 0x0, NotSerialized)
139 {
140 Return (STAT)
141 }
142
Felix Held3b463332021-06-15 16:25:46 +0200143 AOAC_DEVICE(FCH_AOAC_DEV_UART0, 0)
Martin Roth5c354b92019-04-22 14:55:16 -0600144}
145
146Device (FUR1) {
Raul E Rangel4389bbc2021-01-22 10:07:59 -0700147 Name (_HID, "AMDI0020")
Martin Roth5c354b92019-04-22 14:55:16 -0600148 Name (_UID, 0x1)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600149 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200150 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600151 Interrupt (
152 ResourceConsumer,
153 Edge,
154 ActiveHigh,
155 Exclusive, , , IRQR)
156 { 0 }
157 Memory32Fixed (ReadWrite, APU_UART1_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500158 Memory32Fixed (ReadWrite, APU_DMAC1_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200159 }
160 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200161 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600162 IRQN = IUA1
163 } Else {
164 IRQN = PUA1
165 }
166 If (IRQN == 0x1f) {
167 Return (ResourceTemplate() {
168 Memory32Fixed (ReadWrite, APU_UART1_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500169 Memory32Fixed (ReadWrite, APU_DMAC1_BASE, 0x1000)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600170 })
171 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200172 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600173 }
174 }
Raul E Rangela31a7692020-06-10 16:29:22 -0600175
Matt DeVillier7cf9c742023-08-08 11:37:03 -0500176 Name (STAT, 0x0)
177 Method (_STA, 0x0, NotSerialized)
178 {
179 Return (STAT)
180 }
181
Felix Held3b463332021-06-15 16:25:46 +0200182 AOAC_DEVICE(FCH_AOAC_DEV_UART1, 0)
Marshall Dawsonc0b8d0d2019-06-20 10:29:29 -0600183}
184
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600185Device (FUR2) {
Raul E Rangel4389bbc2021-01-22 10:07:59 -0700186 Name (_HID, "AMDI0020")
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600187 Name (_UID, 0x2)
188 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200189 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600190 Interrupt (
191 ResourceConsumer,
192 Edge,
193 ActiveHigh,
194 Exclusive, , , IRQR)
195 { 0 }
196 Memory32Fixed (ReadWrite, APU_UART2_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500197 Memory32Fixed (ReadWrite, APU_DMAC2_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200198 }
199 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200200 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600201 IRQN = IUA2
202 } Else {
203 IRQN = PUA2
204 }
205 If (IRQN == 0x1f) {
206 Return (ResourceTemplate() {
207 Memory32Fixed (ReadWrite, APU_UART2_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500208 Memory32Fixed (ReadWrite, APU_DMAC2_BASE, 0x1000)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600209 })
210 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200211 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600212 }
213 }
Raul E Rangela31a7692020-06-10 16:29:22 -0600214
Matt DeVillier7cf9c742023-08-08 11:37:03 -0500215 Name (STAT, 0x0)
216 Method (_STA, 0x0, NotSerialized)
217 {
218 Return (STAT)
219 }
220
Felix Held3b463332021-06-15 16:25:46 +0200221 AOAC_DEVICE(FCH_AOAC_DEV_UART2, 0)
Marshall Dawsonc0b8d0d2019-06-20 10:29:29 -0600222}
223
224Device (FUR3) {
Raul E Rangel4389bbc2021-01-22 10:07:59 -0700225 Name (_HID, "AMDI0020")
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600226 Name (_UID, 0x3)
227 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200228 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600229 Interrupt (
230 ResourceConsumer,
231 Edge,
232 ActiveHigh,
233 Exclusive, , , IRQR)
234 { 0 }
235 Memory32Fixed (ReadWrite, APU_UART3_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500236 Memory32Fixed (ReadWrite, APU_DMAC3_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200237 }
238 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200239 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600240 IRQN = IUA3
241 } Else {
242 IRQN = PUA3
243 }
244 If (IRQN == 0x1f) {
245 Return (ResourceTemplate() {
246 Memory32Fixed (ReadWrite, APU_UART3_BASE, 0x1000)
Matt DeVillier619bb072022-06-18 15:32:39 -0500247 Memory32Fixed (ReadWrite, APU_DMAC3_BASE, 0x1000)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600248 })
249 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200250 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600251 }
252 }
Raul E Rangela31a7692020-06-10 16:29:22 -0600253
Matt DeVillier7cf9c742023-08-08 11:37:03 -0500254 Name (STAT, 0x0)
255 Method (_STA, 0x0, NotSerialized)
256 {
257 Return (STAT)
258 }
259
Felix Held3b463332021-06-15 16:25:46 +0200260 AOAC_DEVICE(FCH_AOAC_DEV_UART3, 0)
Martin Roth5c354b92019-04-22 14:55:16 -0600261}
262
Ritul Guruc58f6742022-07-06 15:17:38 +0530263#if CONFIG(PSP_LOAD_MP2_FW)
264Device (I2C0) {
265 Name (_HID, "AMDI0011")
266 Name (_UID, 0x0)
267 Method (_CRS, 0) {
268 Local0 = ResourceTemplate() {
269 Interrupt (
270 ResourceConsumer,
271 Edge,
272 ActiveHigh,
273 Exclusive, , , IRQR)
274 { 0 }
275 Memory32Fixed (ReadWrite, APU_I2C0_BASE, 0x1000)
276 }
277 CreateDWordField (Local0, IRQR._INT, IRQN)
278 If (PICM) {
279 IRQN = II20
280 } Else {
281 IRQN = PI20
282 }
283 If (IRQN == 0x1f) {
284 Return (ResourceTemplate() {
285 Memory32Fixed (ReadWrite, APU_I2C0_BASE, 0x1000)
286 })
287 } Else {
288 Return (Local0)
289 }
290 }
291
Felix Heldbfd85212023-09-04 18:02:32 +0200292 Name (STAT, 0x0)
Ritul Guruc58f6742022-07-06 15:17:38 +0530293 Method (_STA, 0x0, NotSerialized)
294 {
Felix Heldbfd85212023-09-04 18:02:32 +0200295 Return (STAT)
Ritul Guruc58f6742022-07-06 15:17:38 +0530296 }
297
298 AOAC_DEVICE(5, 0)
299}
300
301Device (I2C1) {
302 Name (_HID, "AMDI0011")
303 Name (_UID, 0x1)
304 Method (_CRS, 0) {
305 Local0 = ResourceTemplate() {
306 Interrupt (
307 ResourceConsumer,
308 Edge,
309 ActiveHigh,
310 Exclusive, , , IRQR)
311 { 0 }
312 Memory32Fixed (ReadWrite, APU_I2C1_BASE, 0x1000)
313 }
314 CreateDWordField (Local0, IRQR._INT, IRQN)
315 If (PICM) {
316 IRQN = II21
317 } Else {
318 IRQN = PI21
319 }
320 If (IRQN == 0x1f) {
321 Return (ResourceTemplate() {
322 Memory32Fixed (ReadWrite, APU_I2C1_BASE, 0x1000)
323 })
324 } Else {
325 Return (Local0)
326 }
327 }
328
Felix Heldbfd85212023-09-04 18:02:32 +0200329 Name (STAT, 0x0)
Ritul Guruc58f6742022-07-06 15:17:38 +0530330 Method (_STA, 0x0, NotSerialized)
331 {
Felix Heldbfd85212023-09-04 18:02:32 +0200332 Return (STAT)
Ritul Guruc58f6742022-07-06 15:17:38 +0530333 }
334
335 AOAC_DEVICE(6, 0)
336}
337#endif /* CONFIG(PSP_LOAD_MP2_FW) */
338
Marshall Dawson59e97b62019-08-15 17:49:11 -0600339Device (I2C2) {
Raul E Rangel8ace3872021-01-22 10:15:21 -0700340 Name (_HID, "AMDI0010")
Martin Roth5c354b92019-04-22 14:55:16 -0600341 Name (_UID, 0x2)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600342 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200343 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600344 Interrupt (
345 ResourceConsumer,
346 Edge,
347 ActiveHigh,
348 Exclusive, , , IRQR)
349 { 0 }
350 Memory32Fixed (ReadWrite, APU_I2C2_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200351 }
352 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200353 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600354 IRQN = II22
355 } Else {
356 IRQN = PI22
357 }
358 If (IRQN == 0x1f) {
359 Return (ResourceTemplate() {
360 Memory32Fixed (ReadWrite, APU_I2C2_BASE, 0x1000)
361 })
362 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200363 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600364 }
365 }
Martin Roth5c354b92019-04-22 14:55:16 -0600366
Felix Heldbfd85212023-09-04 18:02:32 +0200367 Name (STAT, 0x0)
Martin Roth5c354b92019-04-22 14:55:16 -0600368 Method (_STA, 0x0, NotSerialized)
369 {
Felix Heldbfd85212023-09-04 18:02:32 +0200370 Return (STAT)
Martin Roth5c354b92019-04-22 14:55:16 -0600371 }
Raul E Rangela31a7692020-06-10 16:29:22 -0600372
Felix Held3b463332021-06-15 16:25:46 +0200373 AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0)
Martin Roth5c354b92019-04-22 14:55:16 -0600374}
375
Marshall Dawson59e97b62019-08-15 17:49:11 -0600376Device (I2C3)
Martin Roth5c354b92019-04-22 14:55:16 -0600377{
Raul E Rangel8ace3872021-01-22 10:15:21 -0700378 Name (_HID, "AMDI0010")
Martin Roth5c354b92019-04-22 14:55:16 -0600379 Name (_UID, 0x3)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600380 Method (_CRS, 0) {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200381 Local0 = ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600382 Interrupt (
383 ResourceConsumer,
384 Edge,
385 ActiveHigh,
386 Exclusive, , , IRQR)
387 { 0 }
388 Memory32Fixed (ReadWrite, APU_I2C3_BASE, 0x1000)
Felix Helde5f4b2f2020-06-08 22:31:53 +0200389 }
390 CreateDWordField (Local0, IRQR._INT, IRQN)
Kyösti Mälkki3f246702021-01-25 16:48:51 +0200391 If (PICM) {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600392 IRQN = II23
393 } Else {
394 IRQN = PI23
395 }
396 If (IRQN == 0x1f) {
397 Return (ResourceTemplate() {
398 Memory32Fixed (ReadWrite, APU_I2C3_BASE, 0x1000)
399 })
400 } Else {
Felix Helde5f4b2f2020-06-08 22:31:53 +0200401 Return (Local0)
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600402 }
403 }
Felix Heldbfd85212023-09-04 18:02:32 +0200404
405 Name (STAT, 0x0)
Marshall Dawson59e97b62019-08-15 17:49:11 -0600406 Method (_STA, 0x0, NotSerialized)
407 {
Felix Heldbfd85212023-09-04 18:02:32 +0200408 Return (STAT)
Marshall Dawson59e97b62019-08-15 17:49:11 -0600409 }
Raul E Rangela31a7692020-06-10 16:29:22 -0600410
Felix Held3b463332021-06-15 16:25:46 +0200411 AOAC_DEVICE(FCH_AOAC_DEV_I2C3, 0)
Marshall Dawson59e97b62019-08-15 17:49:11 -0600412}
413
Martin Roth5c354b92019-04-22 14:55:16 -0600414Device (MISC)
415{
416 Name (_HID, "AMD0040")
417 Name (_UID, 0x3)
418 Name (_CRS, ResourceTemplate() {
Raul E Rangel27b6b0e2020-03-10 14:05:42 -0600419 Memory32Fixed (ReadWrite, ACPIMMIO_MISC_BASE, 0x100)
Martin Roth5c354b92019-04-22 14:55:16 -0600420 })
Akshu Agrawalc49d07c2020-07-06 19:38:16 +0530421 Name (_DSD, Package ()
422 {
423 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
424 Package ()
425 {
426 Package () { "is-rv", 1 },
427 },
428 })
Martin Roth5c354b92019-04-22 14:55:16 -0600429 Method (_STA, 0x0, NotSerialized)
430 {
Felix Held3d19aa92022-10-28 19:58:09 +0200431 Return (0x0b)
Martin Roth5c354b92019-04-22 14:55:16 -0600432 }
433}