Furquan Shaikh has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/40513 )
Change subject: ec/google/chromeec: Fix acpi_name() for Chrome EC device ......................................................................
ec/google/chromeec: Fix acpi_name() for Chrome EC device
In ACPI tables, Chrome EC device (CREC - HID GOOG0004) is a child of EC device (EC0 - HID PNP0C09). However, in coreboot device tree, there is no separate chip/device for EC0. Thus, acpi_name() needs to return EC0.CREC as the ACPI name for the Chrome EC device. By returning the ACPI name as EC0.CREC, all devices that live under Chrome EC device can simply call acpi_device_path()/acpi_device_scope() to emit the right path/scope.
In the future, if we ever add a special chip driver for handling EC0 (HID PNP0C09), then the ACPI name for Chrome EC can be fixed to return CREC.
BUG=b:154290952 TEST=Verified that acpi_device_path()/acpi_device_scope() return the correct name for Chrome EC device.
Signed-off-by: Furquan Shaikh furquan@google.com Change-Id: Iec4b0226d1e98ddeb0f8ed8b89477fc4f453d221 --- M src/ec/google/chromeec/ec_acpi.c 1 file changed, 2 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/13/40513/1
diff --git a/src/ec/google/chromeec/ec_acpi.c b/src/ec/google/chromeec/ec_acpi.c index 6bc9693..33b1fdd 100644 --- a/src/ec/google/chromeec/ec_acpi.c +++ b/src/ec/google/chromeec/ec_acpi.c @@ -16,13 +16,12 @@ #include "ec.h" #include "ec_commands.h"
-#define GOOGLE_CHROMEEC_USBC_DEVICE_PARENT "CREC" #define GOOGLE_CHROMEEC_USBC_DEVICE_HID "GOOG0014" #define GOOGLE_CHROMEEC_USBC_DEVICE_NAME "USBC"
const char *google_chromeec_acpi_name(const struct device *dev) { - return "EC0"; + return "EC0.CREC"; }
static const char *power_role_to_str(enum ec_pd_power_role_caps power_role) @@ -220,8 +219,7 @@ if (google_chromeec_get_num_pd_ports(&num_ports)) return;
- /* Add TypeC device under the existing device + ".CREC" scope */ - acpigen_write_scope(acpi_device_path_join(dev, GOOGLE_CHROMEEC_USBC_DEVICE_PARENT)); + acpigen_write_scope(acpi_device_path(dev)); fill_ssdt_typec_device(num_ports); acpigen_pop_len(); /* Scope */ }