summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Michalec <tm@semihalf.com>2022-04-21 17:25:26 +0200
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-06-03 14:13:00 +0000
commit0c91fc8cfa3c12ffef9260a7c5eb2fce742749ef (patch)
tree77c7098e459cc95ea32ba358b44c61ce29d7b001
parent03bff63345be6a2f52f5f031ed4f724d7fd01794 (diff)
downloadchrome-ec-0c91fc8cfa3c12ffef9260a7c5eb2fce742749ef.tar.gz
zephyr: move Adlrvp USB mux configuration into the DTS
Move the Adlrvp board USB mux configuration into the devicetree. Remove USBC_PORT_Cx_BB_RETIMER_I2C_ADDR from zephyr/shim/include/config_chip.h since there is no platform in Zephyr that use these defines. BUG=b:229411952 TEST=zmake testall BRANCH=none Signed-off-by: Tomasz Michalec <tm@semihalf.com> Change-Id: I95b9fdf665c9e7aa56dae65116d6d0030e9549d9 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3607991 Commit-Queue: Tomasz Michalec <tmichalec@google.com> Tested-by: Tomasz Michalec <tmichalec@google.com> Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/gpio.dts8
-rw-r--r--zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts24
-rw-r--r--zephyr/projects/intelrvp/adlrvp/src/adlrvp.c106
-rw-r--r--zephyr/shim/include/config_chip.h9
4 files changed, 31 insertions, 116 deletions
diff --git a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/gpio.dts b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/gpio.dts
index 2e4348d557..7e1cb9c704 100644
--- a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/gpio.dts
+++ b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/gpio.dts
@@ -281,7 +281,7 @@
gpios = <&ioex_c0_port 0 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C0_BB_RETIMER_RST";
};
- usb-c0-bb-retimer-ls-en {
+ usb_c0_bb_retimer_ls_en: usb-c0-bb-retimer-ls-en {
gpios = <&ioex_c0_port 1 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C0_BB_RETIMER_LS_EN";
};
@@ -297,7 +297,7 @@
gpios = <&ioex_c1_port 0 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C1_BB_RETIMER_RST";
};
- usb-c1-bb-retimer-ls-en {
+ usb_c1_bb_retimer_ls_en: usb-c1-bb-retimer-ls-en {
gpios = <&ioex_c1_port 1 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C1_BB_RETIMER_LS_EN";
};
@@ -313,7 +313,7 @@
gpios = <&ioex_c2_port 0 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C2_BB_RETIMER_RST";
};
- usb-c2-bb-retimer-ls-en {
+ usb_c2_bb_retimer_ls_en: usb-c2-bb-retimer-ls-en {
gpios = <&ioex_c2_port 1 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C2_BB_RETIMER_LS_EN";
};
@@ -329,7 +329,7 @@
gpios = <&ioex_c3_port 0 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C3_BB_RETIMER_RST";
};
- usb-c3-bb-retimer-ls-en {
+ usb_c3_bb_retimer_ls_en: usb-c3-bb-retimer-ls-en {
gpios = <&ioex_c3_port 1 GPIO_OUTPUT_LOW>;
enum-name = "IOEX_USB_C3_BB_RETIMER_LS_EN";
};
diff --git a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
index a4698430a2..cd7c2b050f 100644
--- a/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
+++ b/zephyr/projects/intelrvp/adlrvp/adlrvp_npcx/usbc.dts
@@ -7,7 +7,7 @@
usbc {
#address-cells = <1>;
#size-cells = <0>;
- port0@0 {
+ usbc_port0: port0@0 {
compatible = "named-usbc-port";
reg = <0>;
tcpc {
@@ -21,6 +21,7 @@
status = "okay";
port = <&i2c_charger>;
};
+ usb-muxes = <&usb_c0_bb_retimer &virtual_mux_c0>;
};
port0-muxes {
usb_c0_bb_retimer: jhl8040r-c0 {
@@ -28,10 +29,14 @@
port = <&typec_0>;
i2c-addr-flags = <0x56>;
reset-pin = <&usb_c0_bb_retimer_rst>;
+ ls-en-pin = <&usb_c0_bb_retimer_ls_en>;
+ };
+ virtual_mux_c0: virtual-mux-c0 {
+ compatible = "cros-ec,usbc-mux-virtual";
};
};
- port1@1 {
+ usbc_port1: port1@1 {
compatible = "named-usbc-port";
reg = <1>;
tcpc {
@@ -40,6 +45,7 @@
port = <&typec_1>;
i2c-addr-flags = "FUSB302_I2C_ADDR_FLAGS";
};
+ usb-muxes = <&usb_c1_bb_retimer &virtual_mux_c1>;
};
port1-muxes {
usb_c1_bb_retimer: jhl8040r-c1 {
@@ -47,6 +53,10 @@
port = <&typec_1>;
i2c-addr-flags = <0x57>;
reset-pin = <&usb_c1_bb_retimer_rst>;
+ ls-en-pin = <&usb_c1_bb_retimer_ls_en>;
+ };
+ virtual_mux_c1: virtual-mux-c1 {
+ compatible = "cros-ec,usbc-mux-virtual";
};
};
@@ -59,6 +69,7 @@
port = <&typec_2>;
i2c-addr-flags = "FUSB302_I2C_ADDR_FLAGS";
};
+ usb-muxes = <&usb_c2_bb_retimer &virtual_mux_c2>;
};
port2-muxes {
usb_c2_bb_retimer: jhl8040r-c2 {
@@ -66,6 +77,10 @@
port = <&typec_2>;
i2c-addr-flags = <0x58>;
reset-pin = <&usb_c2_bb_retimer_rst>;
+ ls-en-pin = <&usb_c2_bb_retimer_ls_en>;
+ };
+ virtual_mux_c2: virtual-mux-c2 {
+ compatible = "cros-ec,usbc-mux-virtual";
};
};
@@ -78,6 +93,7 @@
port = <&typec_3>;
i2c-addr-flags = "FUSB302_I2C_ADDR_FLAGS";
};
+ usb-muxes = <&usb_c3_bb_retimer &virtual_mux_c3>;
};
port3-muxes {
usb_c3_bb_retimer: jhl8040r-c3 {
@@ -85,6 +101,10 @@
port = <&typec_3>;
i2c-addr-flags = <0x59>;
reset-pin = <&usb_c3_bb_retimer_rst>;
+ ls-en-pin = <&usb_c3_bb_retimer_ls_en>;
+ };
+ virtual_mux_c3: virtual-mux-c3 {
+ compatible = "cros-ec,usbc-mux-virtual";
};
};
};
diff --git a/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c b/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
index 275a3c90f4..bcb9bba1a8 100644
--- a/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
+++ b/zephyr/projects/intelrvp/adlrvp/src/adlrvp.c
@@ -25,6 +25,7 @@
#include "task.h"
#include "tusb1064.h"
#include "usb_mux.h"
+#include "usbc/usb_muxes.h"
#include "usbc_ppc.h"
#include "util.h"
@@ -95,81 +96,10 @@ 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-C retimer Configuration */
-struct usb_mux usbc0_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_0,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-#if defined(HAS_TASK_PD_C1)
-struct usb_mux usbc1_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_1,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-#endif
-#if defined(HAS_TASK_PD_C2)
-struct usb_mux usbc2_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_2,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-#endif
-#if defined(HAS_TASK_PD_C3)
-struct usb_mux usbc3_tcss_usb_mux = {
- .usb_port = TYPE_C_PORT_3,
- .driver = &virtual_usb_mux_driver,
- .hpd_update = &virtual_hpd_update,
-};
-#endif
-
-/* USB muxes Configuration */
-struct usb_mux usb_muxes[] = {
- [TYPE_C_PORT_0] = {
- .usb_port = TYPE_C_PORT_0,
- .next_mux = &usbc0_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_0,
- .i2c_addr_flags = USBC_PORT_C0_BB_RETIMER_I2C_ADDR,
- },
-#if defined(HAS_TASK_PD_C1)
- [TYPE_C_PORT_1] = {
- .usb_port = TYPE_C_PORT_1,
- .next_mux = &usbc1_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_1,
- .i2c_addr_flags = USBC_PORT_C1_BB_RETIMER_I2C_ADDR,
- },
-#endif
-#if defined(HAS_TASK_PD_C2)
- [TYPE_C_PORT_2] = {
- .usb_port = TYPE_C_PORT_2,
- .next_mux = &usbc2_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_2,
- .i2c_addr_flags = USBC_PORT_C2_BB_RETIMER_I2C_ADDR,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [TYPE_C_PORT_3] = {
- .usb_port = TYPE_C_PORT_3,
- .next_mux = &usbc3_tcss_usb_mux,
- .driver = &bb_usb_retimer,
- .hpd_update = bb_retimer_hpd_update,
- .i2c_port = I2C_PORT_TYPEC_3,
- .i2c_addr_flags = USBC_PORT_C3_BB_RETIMER_I2C_ADDR,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
/* USB Mux Configuration for Soc side BB-Retimers for Dual retimer config */
-struct usb_mux soc_side_bb_retimer0_usb_mux = {
+static struct usb_mux soc_side_bb_retimer0_usb_mux = {
.usb_port = TYPE_C_PORT_0,
- .next_mux = &usbc0_tcss_usb_mux,
+ .next_mux = USB_MUX_NEXT_POINTER(DT_NODELABEL(usbc_port0), 0),
.driver = &bb_usb_retimer,
.hpd_update = bb_retimer_hpd_update,
.i2c_port = I2C_PORT_TYPEC_0,
@@ -177,9 +107,9 @@ struct usb_mux soc_side_bb_retimer0_usb_mux = {
};
#if defined(HAS_TASK_PD_C1)
-struct usb_mux soc_side_bb_retimer1_usb_mux = {
+static struct usb_mux soc_side_bb_retimer1_usb_mux = {
.usb_port = TYPE_C_PORT_1,
- .next_mux = &usbc1_tcss_usb_mux,
+ .next_mux = USB_MUX_NEXT_POINTER(DT_NODELABEL(usbc_port1), 0),
.driver = &bb_usb_retimer,
.hpd_update = bb_retimer_hpd_update,
.i2c_port = I2C_PORT_TYPEC_1,
@@ -187,32 +117,6 @@ struct usb_mux soc_side_bb_retimer1_usb_mux = {
};
#endif
-const struct bb_usb_control bb_controls[] = {
- [TYPE_C_PORT_0] = {
- .retimer_rst_gpio = IOEX_USB_C0_BB_RETIMER_RST,
- .usb_ls_en_gpio = IOEX_USB_C0_BB_RETIMER_LS_EN,
- },
-#if defined(HAS_TASK_PD_C1)
- [TYPE_C_PORT_1] = {
- .retimer_rst_gpio = IOEX_USB_C1_BB_RETIMER_RST,
- .usb_ls_en_gpio = IOEX_USB_C1_BB_RETIMER_LS_EN,
- },
-#endif
-#if defined(HAS_TASK_PD_C2)
- [TYPE_C_PORT_2] = {
- .retimer_rst_gpio = IOEX_USB_C2_BB_RETIMER_RST,
- .usb_ls_en_gpio = IOEX_USB_C2_BB_RETIMER_LS_EN,
- },
-#endif
-#if defined(HAS_TASK_PD_C3)
- [TYPE_C_PORT_3] = {
- .retimer_rst_gpio = IOEX_USB_C3_BB_RETIMER_RST,
- .usb_ls_en_gpio = IOEX_USB_C3_BB_RETIMER_LS_EN,
- },
-#endif
-};
-BUILD_ASSERT(ARRAY_SIZE(bb_controls) == CONFIG_USB_PD_PORT_MAX_COUNT);
-
/* Cache BB retimer power state */
static bool cache_bb_enable[CONFIG_USB_PD_PORT_MAX_COUNT];
diff --git a/zephyr/shim/include/config_chip.h b/zephyr/shim/include/config_chip.h
index 509f1a3749..9d86e8551b 100644
--- a/zephyr/shim/include/config_chip.h
+++ b/zephyr/shim/include/config_chip.h
@@ -1587,15 +1587,6 @@ extern struct jump_data mock_jump_data;
#undef CONFIG_USBC_RETIMER_INTEL_BB
#ifdef CONFIG_PLATFORM_EC_USBC_RETIMER_INTEL_BB
-
-#define USBC_PORT_C0_BB_RETIMER_I2C_ADDR \
- DT_PROP(DT_NODELABEL(usb_c0_bb_retimer), i2c_addr_flags)
-#define USBC_PORT_C1_BB_RETIMER_I2C_ADDR \
- DT_PROP(DT_NODELABEL(usb_c1_bb_retimer), i2c_addr_flags)
-#define USBC_PORT_C2_BB_RETIMER_I2C_ADDR \
- DT_PROP(DT_NODELABEL(usb_c2_bb_retimer), i2c_addr_flags)
-#define USBC_PORT_C3_BB_RETIMER_I2C_ADDR \
- DT_PROP(DT_NODELABEL(usb_c3_bb_retimer), i2c_addr_flags)
#define CONFIG_USBC_RETIMER_INTEL_BB
#endif