summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2019-09-05 01:20:19 +0800
committerCommit Bot <commit-bot@chromium.org>2019-09-05 11:09:00 +0000
commit5094437e865bb00c672288b5420b3a257c14d236 (patch)
tree45684833fab426f5436d599bbd23d81833cb20e8 /baseboard
parent7c16f9c666f20daf9c360678f92fcc7145665315 (diff)
downloadchrome-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.h8
-rw-r--r--baseboard/kukui/usb_pd_policy.c13
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);
}