From 6ef756e3ddc8a07ab61e551119d406172c36ae2c Mon Sep 17 00:00:00 2001 From: Andrew McRae Date: Wed, 16 Mar 2022 14:25:20 +1100 Subject: nissa: nivviks: Enable port 1 redriver Enable port 1 redriver for Nivviks BUG=b:219898719 TEST=zmake build nivviks BRANCH=none Signed-off-by: Andrew McRae Change-Id: I6012855cceb44efd34469b70199ccd70897ba6d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3527894 Reviewed-by: Peter Marheine --- zephyr/projects/nissa/include/nissa_common.h | 25 ++++++++++++++++++++++++ zephyr/projects/nissa/include/sub_board.h | 21 -------------------- zephyr/projects/nissa/prj.conf | 1 + zephyr/projects/nissa/prj_nivviks.conf | 2 ++ zephyr/projects/nissa/src/common.c | 6 +++++- zephyr/projects/nissa/src/nereid/board_config.c | 2 +- zephyr/projects/nissa/src/nereid/charger.c | 2 +- zephyr/projects/nissa/src/nereid/usbc.c | 2 +- zephyr/projects/nissa/src/nivviks/board_config.c | 12 +++++++++++- zephyr/projects/nissa/src/nivviks/charger.c | 2 +- zephyr/projects/nissa/src/nivviks/usbc.c | 2 +- 11 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 zephyr/projects/nissa/include/nissa_common.h delete mode 100644 zephyr/projects/nissa/include/sub_board.h diff --git a/zephyr/projects/nissa/include/nissa_common.h b/zephyr/projects/nissa/include/nissa_common.h new file mode 100644 index 0000000000..7ee9056a71 --- /dev/null +++ b/zephyr/projects/nissa/include/nissa_common.h @@ -0,0 +1,25 @@ +/* Copyright 2022 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Nissa common declarations */ + +#ifndef __CROS_EC_NISSA_NISSA_COMMON_H__ +#define __CROS_EC_NISSA_NISSA_COMMON_H__ + +#include "usb_mux.h" + +enum nissa_sub_board_type { + NISSA_SB_UNKNOWN = -1, /* Uninitialised */ + NISSA_SB_NONE = 0, /* No board defined */ + NISSA_SB_C_A = 1, /* USB type C, USB type A */ + NISSA_SB_C_LTE = 2, /* USB type C, WWAN LTE */ + NISSA_SB_HDMI_A = 3, /* HDMI, USB type A */ +}; + +extern struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT]; + +enum nissa_sub_board_type nissa_get_sb_type(void); + +#endif /* __CROS_EC_NISSA_NISSA_COMMON_H__ */ diff --git a/zephyr/projects/nissa/include/sub_board.h b/zephyr/projects/nissa/include/sub_board.h deleted file mode 100644 index b9a9527eb8..0000000000 --- a/zephyr/projects/nissa/include/sub_board.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2022 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* Nissa sub board detection */ - -#ifndef __CROS_EC_NISSA_SUB_BOARD_H -#define __CROS_EC_NISSA_SUB_BOARD_H - -enum nissa_sub_board_type { - NISSA_SB_UNKNOWN = -1, /* Uninitialised */ - NISSA_SB_NONE = 0, /* No board defined */ - NISSA_SB_C_A = 1, /* USB type C, USB type A */ - NISSA_SB_C_LTE = 2, /* USB type C, WWAN LTE */ - NISSA_SB_HDMI_A = 3, /* HDMI, USB type A */ -}; - -enum nissa_sub_board_type nissa_get_sb_type(void); - -#endif /* __CROS_EC_NISSA_SUB_BOARD_H */ diff --git a/zephyr/projects/nissa/prj.conf b/zephyr/projects/nissa/prj.conf index 1757171a69..805f333b7c 100644 --- a/zephyr/projects/nissa/prj.conf +++ b/zephyr/projects/nissa/prj.conf @@ -106,6 +106,7 @@ CONFIG_PLATFORM_EC_USB_PID=0x505a CONFIG_PLATFORM_EC_USB_PD_PORT_MAX_COUNT=2 # TODO(b/216085548): configure USB retimers +CONFIG_PLATFORM_EC_USB_MUX_RUNTIME_CONFIG=y CONFIG_PLATFORM_EC_USB_MUX_VIRTUAL=y # ADL integrated muxes are slow: unblock PD CONFIG_PLATFORM_EC_USB_MUX_TASK=y diff --git a/zephyr/projects/nissa/prj_nivviks.conf b/zephyr/projects/nissa/prj_nivviks.conf index cb80286c6c..87d383e813 100644 --- a/zephyr/projects/nissa/prj_nivviks.conf +++ b/zephyr/projects/nissa/prj_nivviks.conf @@ -25,6 +25,8 @@ CONFIG_PLATFORM_EC_USB_PD_DISCHARGE_TCPC=y CONFIG_PLATFORM_EC_USB_PD_VBUS_DETECT_TCPC=y # RAA489000 uses TCPCI but not a separate PPC, so custom function is required CONFIG_PLATFORM_EC_USB_PD_5V_EN_CUSTOM=y +# type C port 1 redriver +CONFIG_PLATFORM_EC_USBC_RETIMER_ANX7483=y # Charger driver and configuration CONFIG_PLATFORM_EC_CHARGER_RAA489000=y diff --git a/zephyr/projects/nissa/src/common.c b/zephyr/projects/nissa/src/common.c index 1dd9d3f024..78116f9f7a 100644 --- a/zephyr/projects/nissa/src/common.c +++ b/zephyr/projects/nissa/src/common.c @@ -15,7 +15,7 @@ #include "usb_mux.h" #include "system.h" -#include "sub_board.h" +#include "nissa_common.h" #include LOG_MODULE_REGISTER(nissa, CONFIG_NISSA_LOG_LEVEL); @@ -30,6 +30,10 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_MAX_COUNT] = { .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. + */ }, }; diff --git a/zephyr/projects/nissa/src/nereid/board_config.c b/zephyr/projects/nissa/src/nereid/board_config.c index ac667d89ce..0292ca8753 100644 --- a/zephyr/projects/nissa/src/nereid/board_config.c +++ b/zephyr/projects/nissa/src/nereid/board_config.c @@ -16,7 +16,7 @@ #include "usb_pd.h" #include "task.h" -#include "sub_board.h" +#include "nissa_common.h" LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL); diff --git a/zephyr/projects/nissa/src/nereid/charger.c b/zephyr/projects/nissa/src/nereid/charger.c index 168179694c..eef49d1979 100644 --- a/zephyr/projects/nissa/src/nereid/charger.c +++ b/zephyr/projects/nissa/src/nereid/charger.c @@ -8,7 +8,7 @@ #include "driver/charger/sm5803.h" #include "extpower.h" #include "usb_pd.h" -#include "sub_board.h" +#include "nissa_common.h" const struct charger_config_t chg_chips[] = { { diff --git a/zephyr/projects/nissa/src/nereid/usbc.c b/zephyr/projects/nissa/src/nereid/usbc.c index 8a7dde4cc0..6ae6edba51 100644 --- a/zephyr/projects/nissa/src/nereid/usbc.c +++ b/zephyr/projects/nissa/src/nereid/usbc.c @@ -15,7 +15,7 @@ #include "driver/tcpm/ps8xxx_public.h" #include "driver/tcpm/tcpci.h" -#include "sub_board.h" +#include "nissa_common.h" LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL); diff --git a/zephyr/projects/nissa/src/nivviks/board_config.c b/zephyr/projects/nissa/src/nivviks/board_config.c index eddbcb1ff3..24531b62c6 100644 --- a/zephyr/projects/nissa/src/nivviks/board_config.c +++ b/zephyr/projects/nissa/src/nivviks/board_config.c @@ -11,15 +11,23 @@ #include #include "driver/charger/isl923x_public.h" +#include "driver/retimer/anx7483_public.h" #include "gpio/gpio_int.h" #include "hooks.h" #include "usb_pd.h" #include "task.h" -#include "sub_board.h" +#include "nissa_common.h" LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL); +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, +}; + static void nivviks_subboard_init(void) { enum nissa_sub_board_type sb = nissa_get_sb_type(); @@ -50,6 +58,8 @@ static void nivviks_subboard_init(void) gpio_pin_configure_dt( GPIO_DT_FROM_ALIAS(gpio_en_usb_a1_vbus), GPIO_OUTPUT_LOW); + /* Enable redriver */ + usb_muxes[1].next_mux = &usbc1_anx7483; } else { /* Disable the port 1 charger task */ task_disable_task(TASK_ID_USB_CHG_P1); diff --git a/zephyr/projects/nissa/src/nivviks/charger.c b/zephyr/projects/nissa/src/nivviks/charger.c index be29a2e183..969d9b9dfe 100644 --- a/zephyr/projects/nissa/src/nivviks/charger.c +++ b/zephyr/projects/nissa/src/nivviks/charger.c @@ -8,7 +8,7 @@ #include "charger/isl923x_public.h" #include "extpower.h" #include "usb_pd.h" -#include "sub_board.h" +#include "nissa_common.h" const struct charger_config_t chg_chips[] = { { diff --git a/zephyr/projects/nissa/src/nivviks/usbc.c b/zephyr/projects/nissa/src/nivviks/usbc.c index 40f60f2bf0..8cdd9852b6 100644 --- a/zephyr/projects/nissa/src/nivviks/usbc.c +++ b/zephyr/projects/nissa/src/nivviks/usbc.c @@ -13,7 +13,7 @@ #include "driver/tcpm/tcpci.h" #include "driver/tcpm/raa489000.h" -#include "sub_board.h" +#include "nissa_common.h" LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL); -- cgit v1.2.1