diff options
-rw-r--r-- | src/soc/amd/cezanne/acpi/mmio.asl | 13 | ||||
-rw-r--r-- | src/soc/amd/common/block/i2c/i2c.c | 12 | ||||
-rw-r--r-- | src/soc/amd/glinda/acpi/mmio.asl | 12 | ||||
-rw-r--r-- | src/soc/amd/mendocino/acpi/mmio.asl | 13 | ||||
-rw-r--r-- | src/soc/amd/phoenix/acpi/mmio.asl | 13 | ||||
-rw-r--r-- | src/soc/amd/picasso/acpi/mmio.asl | 13 | ||||
-rw-r--r-- | src/soc/amd/stoneyridge/acpi/mmio.asl | 14 |
7 files changed, 65 insertions, 25 deletions
diff --git a/src/soc/amd/cezanne/acpi/mmio.asl b/src/soc/amd/cezanne/acpi/mmio.asl index 722f32d573..930ca169d3 100644 --- a/src/soc/amd/cezanne/acpi/mmio.asl +++ b/src/soc/amd/cezanne/acpi/mmio.asl @@ -161,9 +161,10 @@ Device (I2C0) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C0, 0) @@ -197,9 +198,10 @@ Device (I2C1) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C1, 0) @@ -233,9 +235,10 @@ Device (I2C2) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0) @@ -273,9 +276,11 @@ Device (I2C3) Return (Local0) } } + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } /* If this device is shared with PSP, then PSP takes care of power management */ diff --git a/src/soc/amd/common/block/i2c/i2c.c b/src/soc/amd/common/block/i2c/i2c.c index 88af20e972..57819fbe8f 100644 --- a/src/soc/amd/common/block/i2c/i2c.c +++ b/src/soc/amd/common/block/i2c/i2c.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ +#include <acpi/acpigen.h> #include <assert.h> #include <amdblocks/acpimmio.h> #include <amdblocks/gpio.h> @@ -62,6 +63,15 @@ static const char *i2c_acpi_name(const struct device *dev) return NULL; } +static void i2c_acpi_fill_ssdt(const struct device *dev) +{ + dw_i2c_acpi_fill_ssdt(dev); + + acpigen_write_scope(acpi_device_path(dev)); + acpigen_write_store_int_to_namestr(acpi_device_status(dev), "STAT"); + acpigen_pop_len(); /* Scope */ +} + int dw_i2c_soc_dev_to_bus(const struct device *dev) { size_t i; @@ -129,7 +139,7 @@ struct device_operations soc_amd_i2c_mmio_ops = { .set_resources = noop_set_resources, .scan_bus = scan_smbus, .acpi_name = i2c_acpi_name, - .acpi_fill_ssdt = dw_i2c_acpi_fill_ssdt, + .acpi_fill_ssdt = i2c_acpi_fill_ssdt, .ops_i2c_bus = &dw_i2c_bus_ops, }; diff --git a/src/soc/amd/glinda/acpi/mmio.asl b/src/soc/amd/glinda/acpi/mmio.asl index eb1f1d9b1c..3d7b882efd 100644 --- a/src/soc/amd/glinda/acpi/mmio.asl +++ b/src/soc/amd/glinda/acpi/mmio.asl @@ -274,9 +274,10 @@ Device (I2C0) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C0, 0) @@ -310,9 +311,10 @@ Device (I2C1) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C1, 0) @@ -346,9 +348,10 @@ Device (I2C2) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0) @@ -386,9 +389,10 @@ Device (I2C3) Return (Local0) } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } /* If this device is shared with PSP, then PSP takes care of power management */ diff --git a/src/soc/amd/mendocino/acpi/mmio.asl b/src/soc/amd/mendocino/acpi/mmio.asl index 5c364d8800..d4459d66db 100644 --- a/src/soc/amd/mendocino/acpi/mmio.asl +++ b/src/soc/amd/mendocino/acpi/mmio.asl @@ -274,9 +274,10 @@ Device (I2C0) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C0, 0) @@ -310,9 +311,10 @@ Device (I2C1) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C1, 0) @@ -346,9 +348,10 @@ Device (I2C2) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0) @@ -386,9 +389,11 @@ Device (I2C3) Return (Local0) } } + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } /* If this device is shared with PSP, then PSP takes care of power management */ diff --git a/src/soc/amd/phoenix/acpi/mmio.asl b/src/soc/amd/phoenix/acpi/mmio.asl index f5b27d16ee..b0253b5ec9 100644 --- a/src/soc/amd/phoenix/acpi/mmio.asl +++ b/src/soc/amd/phoenix/acpi/mmio.asl @@ -274,9 +274,10 @@ Device (I2C0) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C0, 0) @@ -310,9 +311,10 @@ Device (I2C1) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C1, 0) @@ -346,9 +348,10 @@ Device (I2C2) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0) @@ -386,9 +389,11 @@ Device (I2C3) Return (Local0) } } + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } /* If this device is shared with PSP, then PSP takes care of power management */ diff --git a/src/soc/amd/picasso/acpi/mmio.asl b/src/soc/amd/picasso/acpi/mmio.asl index 86733c1a6f..f8f9d35489 100644 --- a/src/soc/amd/picasso/acpi/mmio.asl +++ b/src/soc/amd/picasso/acpi/mmio.asl @@ -279,9 +279,10 @@ Device (I2C0) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(5, 0) @@ -315,9 +316,10 @@ Device (I2C1) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(6, 0) @@ -352,9 +354,10 @@ Device (I2C2) { } } + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C2, 0) @@ -388,9 +391,11 @@ Device (I2C3) Return (Local0) } } + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } AOAC_DEVICE(FCH_AOAC_DEV_I2C3, 0) diff --git a/src/soc/amd/stoneyridge/acpi/mmio.asl b/src/soc/amd/stoneyridge/acpi/mmio.asl index 362b9f5dbc..5e52543f67 100644 --- a/src/soc/amd/stoneyridge/acpi/mmio.asl +++ b/src/soc/amd/stoneyridge/acpi/mmio.asl @@ -78,9 +78,10 @@ Device (I2CA) { Memory32Fixed (ReadWrite, APU_I2C0_BASE, 0x1000) }) + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } } @@ -93,9 +94,11 @@ Device (I2CB) IRQ (Edge, ActiveHigh, Exclusive) { 15 } Memory32Fixed (ReadWrite, APU_I2C1_BASE, 0x1000) }) + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } } @@ -108,9 +111,10 @@ Device (I2CC) { Memory32Fixed (ReadWrite, APU_I2C2_BASE, 0x1000) }) + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } } @@ -122,9 +126,11 @@ Device (I2CD) IRQ (Edge, ActiveHigh, Exclusive) { 14 } Memory32Fixed(ReadWrite, APU_I2C3_BASE, 0x1000) }) + + Name (STAT, 0x0) Method (_STA, 0x0, NotSerialized) { - Return (0x0F) + Return (STAT) } } |