diff options
author | Tomasz Michalec <tm@semihalf.com> | 2022-04-19 18:47:25 +0200 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-06-03 14:12:31 +0000 |
commit | 4fa8c6c7fb565356cb53d62b93375efac5a55b46 (patch) | |
tree | 6ccd978568ef40b00c94c3905fc05471e2de3409 | |
parent | c592a640197f88edf6a90a28b3fec35ffe34b582 (diff) | |
download | chrome-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.dts | 21 | ||||
-rw-r--r-- | zephyr/projects/nissa/include/nissa_common.h | 5 | ||||
-rw-r--r-- | zephyr/projects/nissa/nereid_overlay.dts | 19 | ||||
-rw-r--r-- | zephyr/projects/nissa/nivviks_overlay.dts | 21 | ||||
-rw-r--r-- | zephyr/projects/nissa/src/common.c | 17 | ||||
-rw-r--r-- | zephyr/projects/nissa/src/craask/usbc.c | 11 | ||||
-rw-r--r-- | zephyr/projects/nissa/src/nereid/usbc.c | 18 | ||||
-rw-r--r-- | zephyr/projects/nissa/src/nivviks/usbc.c | 11 | ||||
-rw-r--r-- | zephyr/projects/nissa/src/sub_board.c | 5 |
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) { |