summaryrefslogtreecommitdiff
path: root/src/ec/google/chromeec/mux
diff options
context:
space:
mode:
authorPrashant Malani <pmalani@chromium.org>2022-12-29 18:46:47 +0000
committerPatrick Georgi <patrick@coreboot.org>2023-01-11 16:37:38 +0000
commit8c3fa461f331485f37279ec9207b21b8b29938bd (patch)
tree3a681cb5704846ba481d7166bec8b7cee969b27a /src/ec/google/chromeec/mux
parentc807d55798f000c8a8eb0141302a66915f10d0a1 (diff)
ec/google/chromeec: Add retimer flag for mux device
Not all ports have retimers. Add a property to denote that a particular port has a retimer (instead of assuming that all ports have retimers). BUG=b:263964979 TEST=Verified on guybrush; SSDT shows retimer-switch on port1 when device tree is updated accordingly. Change-Id: I754323236d2912777b63cede0fce2ccf7882cfea Signed-off-by: Prashant Malani <pmalani@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/71663 Reviewed-by: Robert Zieba <robertzieba@google.com> Reviewed-by: Caveh Jalali <caveh@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/ec/google/chromeec/mux')
-rw-r--r--src/ec/google/chromeec/mux/conn/chip.h6
-rw-r--r--src/ec/google/chromeec/mux/conn/conn.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/src/ec/google/chromeec/mux/conn/chip.h b/src/ec/google/chromeec/mux/conn/chip.h
index 953b625ddd..fd0ccf871e 100644
--- a/src/ec/google/chromeec/mux/conn/chip.h
+++ b/src/ec/google/chromeec/mux/conn/chip.h
@@ -5,9 +5,11 @@
struct ec_google_chromeec_mux_conn_config {
/* When set to true, this signifies that the mux device
- * is used as a Type-C mode switch in addition to
- * a retimer switch. */
+ * is used as a Type-C mode switch. */
bool mode_switch;
+ /* When set to true, this signifies that the mux device
+ * is used as a Type-C retimer switch. */
+ bool retimer_switch;
};
#endif /* EC_GOOGLE_CHROMEEC_MUX_CONN_CHIP_H */
diff --git a/src/ec/google/chromeec/mux/conn/conn.c b/src/ec/google/chromeec/mux/conn/conn.c
index cb7478ab12..e179c33307 100644
--- a/src/ec/google/chromeec/mux/conn/conn.c
+++ b/src/ec/google/chromeec/mux/conn/conn.c
@@ -24,9 +24,14 @@ static void conn_fill_ssdt(const struct device *dev)
acpigen_write_name_integer("_ADR", dev->path.generic.id);
- if (config && config->mode_switch) {
+ if (config) {
struct acpi_dp *dsd = acpi_dp_new_table("_DSD");
- acpi_dp_add_integer(dsd, "mode-switch", 1);
+
+ if (config->mode_switch)
+ acpi_dp_add_integer(dsd, "mode-switch", 1);
+ if (config->retimer_switch)
+ acpi_dp_add_integer(dsd, "retimer-switch", 1);
+
acpi_dp_write(dsd);
}