From 19552a15af11e6a0d3fc1498aabf8338c8804b80 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Mon, 25 Oct 2021 17:59:54 +0000 Subject: board/woomax,board/morphius: Fix return type clang warns: board/morphius/board.c:406:8: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] ? IOEX_USB_C1_HPD_IN_DB ^~~~~~~~~~~~~~~~~~~~~ board/woomax/board.c:864:6: error: implicit conversion from enumeration type 'enum ioex_signal' to different enumeration type 'enum gpio_signal' [-Werror,-Wenum-conversion] : IOEX_USB_C1_HPD_IN_DB; ^~~~~~~~~~~~~~~~~~~~~ The only caller appears to be svdm_set_hpd_gpio() and svdm_get_hpd_gpio(), which correctly calls gpio_or_ioex_set_level() since the signal may be either gpio_signal or ioex_signal. Rename the board_usbc_port* function to indicate that it can return gpio or ioex. BRANCH=none BUG=b:172020503 TEST=make buildall TEST=CC=clang make BOARD=woomax TEST=CC=clang make BOARD=morphius Signed-off-by: Tom Hughes Change-Id: I7be75c8a714ba103362b293413aadc6a92ab72c3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243008 Reviewed-by: Eric Yilun Lin --- board/morphius/board.c | 2 +- board/morphius/board.h | 11 +++++++++-- board/woomax/board.c | 2 +- board/woomax/board.h | 12 ++++++++---- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/board/morphius/board.c b/board/morphius/board.c index 35988b6723..4680109e18 100644 --- a/board/morphius/board.c +++ b/board/morphius/board.c @@ -383,7 +383,7 @@ static void setup_v0_charger(void) */ DECLARE_HOOK(HOOK_INIT, setup_v0_charger, HOOK_PRIO_INIT_I2C); -enum gpio_signal board_usbc_port_to_hpd_gpio(int port) +int board_usbc_port_to_hpd_gpio_or_ioex(int port) { /* USB-C0 always uses USB_C0_HPD (= DP3_HPD). */ if (port == 0) diff --git a/board/morphius/board.h b/board/morphius/board.h index 603bcec69b..a38fd93fc1 100644 --- a/board/morphius/board.h +++ b/board/morphius/board.h @@ -209,8 +209,15 @@ static inline bool ec_config_has_mst_hub_rtd2141b(void) } void motion_interrupt(enum gpio_signal signal); -enum gpio_signal board_usbc_port_to_hpd_gpio(int port); -#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio(port) + +/** + * @warning Callers must use gpio_or_ioex_set_level to handle the return result + * since either type of signal can be returned. + * + * @return GPIO (gpio_signal) or IOEX (ioex_signal) + */ +int board_usbc_port_to_hpd_gpio_or_ioex(int port); +#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio_or_ioex(port) extern const struct usb_mux usbc0_pi3dpx1207_usb_retimer; extern const struct usb_mux usbc1_ps8802; diff --git a/board/woomax/board.c b/board/woomax/board.c index 106f21db59..f10bb227da 100644 --- a/board/woomax/board.c +++ b/board/woomax/board.c @@ -835,7 +835,7 @@ void hdmi_hpd_interrupt(enum gpio_signal signal) hook_call_deferred(&hdmi_hpd_handler_data, (2 * MSEC)); } -enum gpio_signal board_usbc_port_to_hpd_gpio(int port) +int board_usbc_port_to_hpd_gpio_or_ioex(int port) { /* USB-C0 always uses USB_C0_HPD */ if (port == 0) diff --git a/board/woomax/board.h b/board/woomax/board.h index d81c82f181..f5289f2bd1 100644 --- a/board/woomax/board.h +++ b/board/woomax/board.h @@ -194,15 +194,19 @@ static inline bool ec_config_has_mst_hub_rtd2141b(void) HAS_MST_HUB_RTD2141B); } -/* +/** + * @warning Callers must use gpio_or_ioex_set_level to handle the return result + * since either type of signal can be returned. + * * USB-C0 always uses USB_C0_HPD (= DP3_HPD). * USB-C1 OPT1 DB uses DP2_HPD. * USB-C1 OPT3 DB uses DP1_HPD via RTD2141B MST hub to drive AP * HPD, EC drives MST hub HPD input from USB-PD messages. + * + * @return GPIO (gpio_signal) or IOEX (ioex_signal) */ - -enum gpio_signal board_usbc_port_to_hpd_gpio(int port); -#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio(port) +int board_usbc_port_to_hpd_gpio_or_ioex(int port); +#define PORT_TO_HPD(port) board_usbc_port_to_hpd_gpio_or_ioex(port) extern const struct usb_mux usbc0_pi3dpx1207_usb_retimer; extern const struct usb_mux usbc1_ps8802; -- cgit v1.2.1