summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Michalec <tm@semihalf.com>2022-04-19 18:47:25 +0200
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-06-03 14:12:31 +0000
commit4fa8c6c7fb565356cb53d62b93375efac5a55b46 (patch)
tree6ccd978568ef40b00c94c3905fc05471e2de3409
parentc592a640197f88edf6a90a28b3fec35ffe34b582 (diff)
downloadchrome-ec-4fa8c6c7fb565356cb53d62b93375efac5a55b46.tar.gz
zephyr: move Nissa USB mux configuration into the DTS
Move Nissa boards (Nivviks, Craask, and Nereid) USB mux configuration into the devicetree. BUG=b:227757117 TEST=zmake testall BRANCH=none Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I988603bcc847ce9aae4fd0b86506659066577832 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3593790 Reviewed-by: Keith Short <keithshort@chromium.org> Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Andrew McRae <amcrae@google.com>
-rw-r--r--zephyr/projects/nissa/craask_overlay.dts21
-rw-r--r--zephyr/projects/nissa/include/nissa_common.h5
-rw-r--r--zephyr/projects/nissa/nereid_overlay.dts19
-rw-r--r--zephyr/projects/nissa/nivviks_overlay.dts21
-rw-r--r--zephyr/projects/nissa/src/common.c17
-rw-r--r--zephyr/projects/nissa/src/craask/usbc.c11
-rw-r--r--zephyr/projects/nissa/src/nereid/usbc.c18
-rw-r--r--zephyr/projects/nissa/src/nivviks/usbc.c11
-rw-r--r--zephyr/projects/nissa/src/sub_board.c5
9 files changed, 63 insertions, 65 deletions
diff --git a/zephyr/projects/nissa/craask_overlay.dts b/zephyr/projects/nissa/craask_overlay.dts
index 60c454f363..1ff3022124 100644
--- a/zephyr/projects/nissa/craask_overlay.dts
+++ b/zephyr/projects/nissa/craask_overlay.dts
@@ -193,6 +193,12 @@
status = "okay";
port = <&i2c_ec_i2c_usb_c0>;
};
+ usb-muxes = <&virtual_mux_0>;
+ };
+ port0-muxes {
+ virtual_mux_0: virtual-mux-0 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
};
/*
* TODO(b:211693800): port1 may not be present on some
@@ -210,6 +216,21 @@
status = "okay";
port = <&i2c_ec_i2c_sub_usb_c1>;
};
+ /*
+ * Some sub-boards may disable all usb muxes in chain
+ * except virtual_mux_1
+ */
+ usb-muxes = <&virtual_mux_1 &anx7483_mux_1>;
+ };
+ port1-muxes {
+ virtual_mux_1: virtual-mux-1 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
+ anx7483_mux_1: anx7483-mux-1 {
+ compatible = "analogix,anx7483";
+ port = <&i2c_ec_i2c_sub_usb_c1>;
+ i2c-addr-flags = "ANX7483_I2C_ADDR0_FLAGS";
+ };
};
};
diff --git a/zephyr/projects/nissa/include/nissa_common.h b/zephyr/projects/nissa/include/nissa_common.h
index b0f99b5d05..7ee9056a71 100644
--- a/zephyr/projects/nissa/include/nissa_common.h
+++ b/zephyr/projects/nissa/include/nissa_common.h
@@ -22,9 +22,4 @@ extern struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT];
enum nissa_sub_board_type nissa_get_sb_type(void);
-/**
- * Return any necessary mux configuration for the sub-board USB-C port.
- */
-const struct usb_mux *nissa_get_c1_sb_mux(void);
-
#endif /* __CROS_EC_NISSA_NISSA_COMMON_H__ */
diff --git a/zephyr/projects/nissa/nereid_overlay.dts b/zephyr/projects/nissa/nereid_overlay.dts
index e40b0b7907..158629b1e9 100644
--- a/zephyr/projects/nissa/nereid_overlay.dts
+++ b/zephyr/projects/nissa/nereid_overlay.dts
@@ -216,6 +216,12 @@
status = "okay";
port = <&i2c_ec_i2c_usb_c0>;
};
+ usb-muxes = <&virtual_mux_0>;
+ };
+ port0-muxes {
+ virtual_mux_0: virtual-mux-0 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
};
port1@1 {
compatible = "named-usbc-port";
@@ -229,6 +235,19 @@
status = "okay";
port = <&i2c_ec_i2c_sub_usb_c1>;
};
+ /*
+ * Some sub-boards may disable all usb muxes in chain
+ * except virtual_mux_1
+ */
+ usb-muxes = <&virtual_mux_1 &tcpci_mux_1>;
+ };
+ port1-muxes {
+ virtual_mux_1: virtual-mux-1 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
+ tcpci_mux_1: tcpci-mux-1 {
+ compatible = "parade,usbc-mux-ps8xxx";
+ };
};
};
};
diff --git a/zephyr/projects/nissa/nivviks_overlay.dts b/zephyr/projects/nissa/nivviks_overlay.dts
index 47b2518c63..926dc46129 100644
--- a/zephyr/projects/nissa/nivviks_overlay.dts
+++ b/zephyr/projects/nissa/nivviks_overlay.dts
@@ -197,6 +197,12 @@
status = "okay";
port = <&i2c_ec_i2c_usb_c0>;
};
+ usb-muxes = <&virtual_mux_0>;
+ };
+ port0-muxes {
+ virtual_mux_0: virtual-mux-0 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
};
/*
* TODO(b:211693800): port1 may not be present on some
@@ -214,6 +220,21 @@
status = "okay";
port = <&i2c_ec_i2c_sub_usb_c1>;
};
+ /*
+ * Some sub-boards may disable all usb muxes in chain
+ * except virtual_mux_1
+ */
+ usb-muxes = <&virtual_mux_1 &anx7483_mux_1>;
+ };
+ port1-muxes {
+ virtual_mux_1: virtual-mux-1 {
+ compatible = "cros-ec,usbc-mux-virtual";
+ };
+ anx7483_mux_1: anx7483-mux-1 {
+ compatible = "analogix,anx7483";
+ port = <&i2c_ec_i2c_sub_usb_c1>;
+ i2c-addr-flags = "ANX7483_I2C_ADDR0_FLAGS";
+ };
};
};
diff --git a/zephyr/projects/nissa/src/common.c b/zephyr/projects/nissa/src/common.c
index 19727e0659..e1e7aaf7e9 100644
--- a/zephyr/projects/nissa/src/common.c
+++ b/zephyr/projects/nissa/src/common.c
@@ -20,23 +20,6 @@
#include <zephyr/logging/log.h>
LOG_MODULE_REGISTER(nissa, CONFIG_NISSA_LOG_LEVEL);
-struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = {
- {
- .usb_port = 0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- },
- { /* sub-board */
- .usb_port = 1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
- /*
- * next_mux filled in by board config code
- * if sub-board has type-C USB port.
- */
- },
-};
-
static uint8_t cached_usb_pd_port_count;
__override uint8_t board_get_usb_pd_port_count(void)
diff --git a/zephyr/projects/nissa/src/craask/usbc.c b/zephyr/projects/nissa/src/craask/usbc.c
index 4f552c3dce..0604411be0 100644
--- a/zephyr/projects/nissa/src/craask/usbc.c
+++ b/zephyr/projects/nissa/src/craask/usbc.c
@@ -270,14 +270,3 @@ void usb_interrupt(enum gpio_signal signal)
/* Check for lost interrupts in a bit */
hook_call_deferred(ud, USBC_INT_POLL_DELAY_US);
}
-
-const struct usb_mux *nissa_get_c1_sb_mux(void)
-{
- static const struct usb_mux usbc1_anx7483 = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = ANX7483_I2C_ADDR0_FLAGS,
- .driver = &anx7483_usb_retimer_driver,
- };
- return &usbc1_anx7483;
-}
diff --git a/zephyr/projects/nissa/src/nereid/usbc.c b/zephyr/projects/nissa/src/nereid/usbc.c
index 5219c252e5..e731b73a76 100644
--- a/zephyr/projects/nissa/src/nereid/usbc.c
+++ b/zephyr/projects/nissa/src/nereid/usbc.c
@@ -405,21 +405,3 @@ int pd_snk_is_vbus_provided(int port)
return chg_det;
}
-
-
-const struct usb_mux *nissa_get_c1_sb_mux(void)
-{
- /*
- * Use TCPC-integrated mux via CONFIG_STANDARD_OUTPUT register
- * in PS8745.
- */
- static const struct usb_mux usbc1_tcpc_mux = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = PS8XXX_I2C_ADDR1_FLAGS,
- .driver = &tcpci_tcpm_usb_mux_driver,
- .hpd_update = &ps8xxx_tcpc_update_hpd_status,
- };
-
- return &usbc1_tcpc_mux;
-}
diff --git a/zephyr/projects/nissa/src/nivviks/usbc.c b/zephyr/projects/nissa/src/nivviks/usbc.c
index 7a7576ae25..0b061d2bd5 100644
--- a/zephyr/projects/nissa/src/nivviks/usbc.c
+++ b/zephyr/projects/nissa/src/nivviks/usbc.c
@@ -270,14 +270,3 @@ void usb_interrupt(enum gpio_signal signal)
/* Check for lost interrupts in a bit */
hook_call_deferred(ud, USBC_INT_POLL_DELAY_US);
}
-
-const struct usb_mux *nissa_get_c1_sb_mux(void)
-{
- static const struct usb_mux usbc1_anx7483 = {
- .usb_port = 1,
- .i2c_port = I2C_PORT_USB_C1_TCPC,
- .i2c_addr_flags = ANX7483_I2C_ADDR0_FLAGS,
- .driver = &anx7483_usb_retimer_driver,
- };
- return &usbc1_anx7483;
-}
diff --git a/zephyr/projects/nissa/src/sub_board.c b/zephyr/projects/nissa/src/sub_board.c
index d88aaeaf57..2a3333bab9 100644
--- a/zephyr/projects/nissa/src/sub_board.c
+++ b/zephyr/projects/nissa/src/sub_board.c
@@ -123,18 +123,17 @@ static void nereid_subboard_config(void)
}
/*
* USB-C port: the default configuration has I2C on the I2C pins,
- * but the interrupt line needs to be configured and USB mux
- * configuration provided.
+ * but the interrupt line needs to be configured.
*/
if (sb == NISSA_SB_C_A || sb == NISSA_SB_C_LTE) {
/* Configure interrupt input */
gpio_pin_configure_dt(
GPIO_DT_FROM_ALIAS(gpio_usb_c1_int_odl),
GPIO_INPUT | GPIO_PULL_UP);
- usb_muxes[1].next_mux = nissa_get_c1_sb_mux();
} else {
/* Disable the port 1 charger task */
task_disable_task(TASK_ID_USB_CHG_P1);
+ usb_muxes[1].next_mux = NULL;
}
switch (sb) {