diff options
author | Ting Shen <phoenixshen@google.com> | 2019-09-05 01:20:19 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-09-05 11:09:00 +0000 |
commit | 5094437e865bb00c672288b5420b3a257c14d236 (patch) | |
tree | 45684833fab426f5436d599bbd23d81833cb20e8 /baseboard | |
parent | 7c16f9c666f20daf9c360678f92fcc7145665315 (diff) | |
download | chrome-ec-5094437e865bb00c672288b5420b3a257c14d236.tar.gz |
krane: add it5205 driver
An it5205 is added in kukui/krane rev 5, and deprecated gpio pin
USB_C0_DP_OE_L and USB_C0_DP_POLARITY.
This CL is intended to make the fw works for both old and new boards:
1) the default usb_mux driver is updated to rev 5, and board_rev_init
may change it back for old boards.
2) keep VARIANT_KUKUI_DP_MUX_GPIO in kukui/board.h, and add a customized
function to set/clear these gpio pins.
BUG=b:135079572
TEST=verify that type c display works on board rev 4/5
BRANCH=master
Change-Id: Ibe28816eed026ccb8a9a5234a612f80b038884f1
Signed-off-by: Ting Shen <phoenixshen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1785197
Reviewed-by: Yilun Lin <yllin@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/kukui/baseboard.h | 8 | ||||
-rw-r--r-- | baseboard/kukui/usb_pd_policy.c | 13 |
2 files changed, 12 insertions, 9 deletions
diff --git a/baseboard/kukui/baseboard.h b/baseboard/kukui/baseboard.h index b22b1cdf01..c1d99db39b 100644 --- a/baseboard/kukui/baseboard.h +++ b/baseboard/kukui/baseboard.h @@ -56,6 +56,8 @@ * Define this flag if board controls dp mux via gpio pins USB_C0_DP_OE_L and * USB_C0_DP_POLARITY. * + * board must provide function board_set_dp_mux_control(output_enable, polarity) + * * #define VARIANT_KUKUI_DP_MUX_GPIO */ @@ -219,4 +221,10 @@ #define CONFIG_MKBP_EVENT #define CONFIG_MKBP_USE_GPIO +#ifndef __ASSEMBLER__ +#ifdef VARIANT_KUKUI_DP_MUX_GPIO +void board_set_dp_mux_control(int output_enable, int polarity); +#endif /* VARIANT_KUKUI_DP_MUX_GPIO */ +#endif /* !__ASSEMBLER__ */ + #endif /* __CROS_EC_BASEBOARD_H */ diff --git a/baseboard/kukui/usb_pd_policy.c b/baseboard/kukui/usb_pd_policy.c index 95ed4290b7..d6b5ddf764 100644 --- a/baseboard/kukui/usb_pd_policy.c +++ b/baseboard/kukui/usb_pd_policy.c @@ -318,8 +318,7 @@ static void svdm_dp_post_config(int port) gpio_set_level(GPIO_USB_C0_HPD_OD, 1); #ifdef VARIANT_KUKUI_DP_MUX_GPIO - gpio_set_level(GPIO_USB_C0_DP_OE_L, 0); - gpio_set_level(GPIO_USB_C0_DP_POLARITY, board_get_polarity(port)); + board_set_dp_mux_control(1, board_get_polarity(port)); #endif /* set the minimum time delay (2ms) for the next HPD IRQ */ @@ -357,9 +356,7 @@ static int svdm_dp_attention(int port, uint32_t *payload) gpio_set_level(GPIO_USB_C0_HPD_OD, 1); #ifdef VARIANT_KUKUI_DP_MUX_GPIO - gpio_set_level(GPIO_USB_C0_DP_OE_L, 0); - gpio_set_level(GPIO_USB_C0_DP_POLARITY, - board_get_polarity(port)); + board_set_dp_mux_control(1, board_get_polarity(port)); #endif /* set the minimum time delay (2ms) for the next HPD IRQ */ @@ -370,9 +367,7 @@ static int svdm_dp_attention(int port, uint32_t *payload) } else { gpio_set_level(GPIO_USB_C0_HPD_OD, lvl); #ifdef VARIANT_KUKUI_DP_MUX_GPIO - gpio_set_level(GPIO_USB_C0_DP_OE_L, !lvl); - gpio_set_level(GPIO_USB_C0_DP_POLARITY, - board_get_polarity(port)); + board_set_dp_mux_control(lvl, board_get_polarity(port)); #endif /* set the minimum time delay (2ms) for the next HPD IRQ */ hpd_deadline[port] = get_time().val + HPD_USTREAM_DEBOUNCE_LVL; @@ -389,7 +384,7 @@ static void svdm_exit_dp_mode(int port) svdm_safe_dp_mode(port); gpio_set_level(GPIO_USB_C0_HPD_OD, 0); #ifdef VARIANT_KUKUI_DP_MUX_GPIO - gpio_set_level(GPIO_USB_C0_DP_OE_L, 1); + board_set_dp_mux_control(0, 0); #endif mux->hpd_update(port, 0, 0); } |