summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/amd/cezanne/acpi/mmio.asl13
-rw-r--r--src/soc/amd/common/block/i2c/i2c.c12
-rw-r--r--src/soc/amd/glinda/acpi/mmio.asl12
-rw-r--r--src/soc/amd/mendocino/acpi/mmio.asl13
-rw-r--r--src/soc/amd/phoenix/acpi/mmio.asl13
-rw-r--r--src/soc/amd/picasso/acpi/mmio.asl13
-rw-r--r--src/soc/amd/stoneyridge/acpi/mmio.asl14
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)
}
}