diff options
-rw-r--r-- | baseboard/intelrvp/adlrvp.c | 3 | ||||
-rw-r--r-- | board/brya/usbc_config.c | 5 | ||||
-rw-r--r-- | board/primus/usbc_config.c | 5 | ||||
-rw-r--r-- | board/tglrvpu_ite/board.c | 3 | ||||
-rw-r--r-- | driver/retimer/bb_retimer.c | 7 | ||||
-rw-r--r-- | include/driver/retimer/bb_retimer_public.h | 5 |
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 */ |