summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baseboard/intelrvp/adlrvp.c3
-rw-r--r--board/brya/usbc_config.c5
-rw-r--r--board/primus/usbc_config.c5
-rw-r--r--board/tglrvpu_ite/board.c3
-rw-r--r--driver/retimer/bb_retimer.c7
-rw-r--r--include/driver/retimer/bb_retimer_public.h5
6 files changed, 18 insertions, 10 deletions
diff --git a/baseboard/intelrvp/adlrvp.c b/baseboard/intelrvp/adlrvp.c
index fcb590b16e..d992154c49 100644
--- a/baseboard/intelrvp/adlrvp.c
+++ b/baseboard/intelrvp/adlrvp.c
@@ -247,7 +247,7 @@ void board_overcurrent_event(int port, int is_overcurrented)
ioex_set_level(oc_signal, is_overcurrented ? 0 : 1);
}
-__override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
+__override int bb_retimer_power_handle(const struct usb_mux *me, int on_off)
{
/* Handle retimer's power domain.*/
if (on_off) {
@@ -273,6 +273,7 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
msleep(1);
ioex_set_level(bb_controls[me->usb_port].usb_ls_en_gpio, 0);
}
+ return EC_SUCCESS;
}
static void board_connect_c0_sbu_deferred(void)
diff --git a/board/brya/usbc_config.c b/board/brya/usbc_config.c
index 2436c5472c..34ae44f2fa 100644
--- a/board/brya/usbc_config.c
+++ b/board/brya/usbc_config.c
@@ -187,7 +187,7 @@ void config_usb_db_type(void)
CPRINTS("Configured USB DB type number is %d", db_type);
}
-__override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
+__override int bb_retimer_power_handle(const struct usb_mux *me, int on_off)
{
enum ioex_signal rst_signal;
@@ -199,7 +199,7 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
} else if (me->usb_port == USBC_PORT_C2) {
rst_signal = IOEX_USB_C2_RT_RST_ODL;
} else {
- return;
+ return EC_ERROR_INVAL;
}
/*
@@ -224,6 +224,7 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
ioex_set_level(rst_signal, 0);
msleep(1);
}
+ return EC_SUCCESS;
}
void board_reset_pd_mcu(void)
diff --git a/board/primus/usbc_config.c b/board/primus/usbc_config.c
index 5fa69121db..f6770c8f27 100644
--- a/board/primus/usbc_config.c
+++ b/board/primus/usbc_config.c
@@ -187,7 +187,7 @@ void config_usb_db_type(void)
CPRINTS("Configured USB DB type number is %d", db_type);
}
-__override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
+__override int bb_retimer_power_handle(const struct usb_mux *me, int on_off)
{
enum ioex_signal rst_signal;
@@ -199,7 +199,7 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
} else if (me->usb_port == USBC_PORT_C2) {
rst_signal = IOEX_USB_C2_RT_RST_ODL;
} else {
- return;
+ return EC_ERROR_INVAL;
}
/*
@@ -224,6 +224,7 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
ioex_set_level(rst_signal, 0);
msleep(1);
}
+ return EC_SUCCESS;
}
void board_reset_pd_mcu(void)
diff --git a/board/tglrvpu_ite/board.c b/board/tglrvpu_ite/board.c
index 88f74054f3..ba5ca0282d 100644
--- a/board/tglrvpu_ite/board.c
+++ b/board/tglrvpu_ite/board.c
@@ -223,7 +223,7 @@ int board_get_version(void)
return board_id | (fab_id << 8);
}
-__override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
+__override int bb_retimer_power_handle(const struct usb_mux *me, int on_off)
{
const struct bb_usb_control *control = &bb_controls[me->usb_port];
@@ -266,4 +266,5 @@ __override void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
msleep(1);
gpio_set_level(control->usb_ls_en_gpio, 0);
}
+ return EC_SUCCESS;
}
diff --git a/driver/retimer/bb_retimer.c b/driver/retimer/bb_retimer.c
index 26369ca7f5..3aa1f001f8 100644
--- a/driver/retimer/bb_retimer.c
+++ b/driver/retimer/bb_retimer.c
@@ -123,7 +123,7 @@ static int bb_retimer_write(const struct usb_mux *me,
return rv;
}
-__overridable void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
+__overridable int bb_retimer_power_handle(const struct usb_mux *me, int on_off)
{
const struct bb_usb_control *control = &bb_controls[me->usb_port];
@@ -149,6 +149,7 @@ __overridable void bb_retimer_power_handle(const struct usb_mux *me, int on_off)
msleep(1);
gpio_set_level(control->usb_ls_en_gpio, 0);
}
+ return EC_SUCCESS;
}
static void retimer_set_state_dfp(int port, mux_state_t mux_state,
@@ -490,7 +491,9 @@ static int retimer_init(const struct usb_mux *me)
return EC_ERROR_NOT_POWERED;
}
- bb_retimer_power_handle(me, 1);
+ rv = bb_retimer_power_handle(me, 1);
+ if (rv != EC_SUCCESS)
+ return rv;
rv = bb_retimer_read(me, BB_RETIMER_REG_VENDOR_ID, &data);
if (rv)
diff --git a/include/driver/retimer/bb_retimer_public.h b/include/driver/retimer/bb_retimer_public.h
index c13ec67685..7d9832f4ea 100644
--- a/include/driver/retimer/bb_retimer_public.h
+++ b/include/driver/retimer/bb_retimer_public.h
@@ -36,8 +36,9 @@ extern struct bb_usb_control bb_controls[];
* @param me Pointer to USB mux
* @param on_off BB retimer state to be changed
*
+ * @return EC_SUCCESS, or non-zero on error.
*/
-__override_proto void bb_retimer_power_handle(const struct usb_mux *me,
- int on_off);
+__override_proto int bb_retimer_power_handle(const struct usb_mux *me,
+ int on_off);
#endif /* __CROS_EC_DRIVER_RETIMER_BB_RETIMER_PUBLIC_H */