summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Michalec <tm@semihalf.com>2022-07-05 16:16:48 +0200
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-13 11:19:08 +0000
commitc311f3af9a66b2d7fc1a96df99db318e52f41cdd (patch)
tree87ef75425de66845ea1041804316596e87806609
parenta062b533a068069af8fdea3ea394e99703d7561a (diff)
downloadchrome-ec-c311f3af9a66b2d7fc1a96df99db318e52f41cdd.tar.gz
zephyr: Add alternative usb_mux_chain config for adlrvp
Add alternative USB mux configuration in DTS for adlrvp. LOW_COVERAGE_REASON=no test for adlrvp board yet BUG=b:234482311 TEST=zmake build -a TEST=./twister -T zephyr/test BRANCH=none Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: Ibecdaf47bbda5835412787a1f0387b0bc0d19c45 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3700331 Tested-by: Tomasz Michalec <tmichalec@google.com> Commit-Queue: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/adlrvp_npcx.dts14
-rw-r--r--zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts14
-rw-r--r--zephyr/projects/intelrvp/adlrvp/src/adlrvp.c31
3 files changed, 30 insertions, 29 deletions
diff --git a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/adlrvp_npcx.dts b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/adlrvp_npcx.dts
index 60db6f504a..79723beabd 100644
--- a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/adlrvp_npcx.dts
+++ b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/adlrvp_npcx.dts
@@ -150,6 +150,13 @@
reg = <0x22>;
};
+ usb_c0_soc_side_bb_retimer: jhl8040r-c0-soc-side@54 {
+ compatible = "intel,jhl8040r";
+ reg = <0x54>;
+ reset-pin = <&usb_c0_bb_retimer_rst>;
+ ls-en-pin = <&usb_c0_bb_retimer_ls_en>;
+ };
+
usb_c0_bb_retimer: jhl8040r-c0@56 {
compatible = "intel,jhl8040r";
reg = <0x56>;
@@ -174,6 +181,13 @@
reg = <0x22>;
};
+ usb_c1_soc_side_bb_retimer: jhl8040r-c1-soc-side@55 {
+ compatible = "intel,jhl8040r";
+ reg = <0x55>;
+ reset-pin = <&usb_c1_bb_retimer_rst>;
+ ls-en-pin = <&usb_c1_bb_retimer_ls_en>;
+ };
+
usb_c1_bb_retimer: jhl8040r-c1@57 {
compatible = "intel,jhl8040r";
reg = <0x57>;
diff --git a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
index 322550960d..471a1f52e9 100644
--- a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
+++ b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
@@ -17,6 +17,13 @@
usb-muxes = <&usb_c0_bb_retimer
&virtual_mux_c0>;
};
+ usb_mux_alt_chain_0: usb-mux-alt-chain-0 {
+ compatible = "cros-ec,usb-mux-chain";
+ alternative-chain;
+ usb-muxes = <&usb_c0_bb_retimer
+ &usb_c0_soc_side_bb_retimer
+ &virtual_mux_c0>;
+ };
};
port0-muxes {
virtual_mux_c0: virtual-mux-c0 {
@@ -33,6 +40,13 @@
usb-muxes = <&usb_c1_bb_retimer
&virtual_mux_c1>;
};
+ usb_mux_alt_chain_1: usb-mux-alt-chain-1 {
+ compatible = "cros-ec,usb-mux-chain";
+ alternative-chain;
+ usb-muxes = <&usb_c1_bb_retimer
+ &usb_c1_soc_side_bb_retimer
+ &virtual_mux_c1>;
+ };
};
port1-muxes {
virtual_mux_c1: virtual-mux-c1 {
diff --git a/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c b/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
index 0145ae744f..ce5196c60d 100644
--- a/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
+++ b/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
@@ -95,33 +95,6 @@ struct ppc_config_t ppc_chips[] = {
BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == CONFIG_USB_PD_PORT_MAX_COUNT);
unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
-/* USB Mux Configuration for Soc side BB-Retimers for Dual retimer config */
-struct usb_mux_chain soc_side_bb_retimer0_usb_mux = {
- .mux =
- &(const struct usb_mux){
- .usb_port = TYPE_C_PORT_0,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_0,
- .i2c_addr_flags = I2C_PORT0_BB_RETIMER_SOC_ADDR,
- },
- .next = &USB_MUX_CHAIN_STRUCT_NAME(1, 0),
-};
-
-#if defined(HAS_TASK_PD_C1)
-struct usb_mux_chain soc_side_bb_retimer1_usb_mux = {
- .mux =
- &(const struct usb_mux){
- .usb_port = TYPE_C_PORT_1,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_1,
- .i2c_addr_flags = I2C_PORT1_BB_RETIMER_SOC_ADDR,
- },
- .next = &USB_MUX_CHAIN_STRUCT_NAME(1, 1),
-};
-#endif
-
/* Cache BB retimer power state */
static bool cache_bb_enable[CONFIG_USB_PD_PORT_MAX_COUNT];
@@ -282,9 +255,9 @@ static void configure_retimer_usbmux(void)
* Change the default usb mux config on runtime to support
* dual retimer topology.
*/
- usb_muxes[TYPE_C_PORT_0].next = &soc_side_bb_retimer0_usb_mux;
+ USB_MUX_ENABLE_ALTERNATIVE(usb_mux_alt_chain_0);
#if defined(HAS_TASK_PD_C1)
- usb_muxes[TYPE_C_PORT_1].next = &soc_side_bb_retimer1_usb_mux;
+ USB_MUX_ENABLE_ALTERNATIVE(usb_mux_alt_chain_1);
#endif
break;