summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoro Chen <koro.chen@mediatek.com>2016-05-25 21:25:38 +0800
committerchrome-bot <chrome-bot@chromium.org>2016-06-16 09:40:42 -0700
commitb12662080799859b326461ae498a10d61dd87e2e (patch)
treea9a02cef521e3e57cfab21839076e3a1da10c726
parent93e2d00d03d6fc6fef5d9e2126c3785ef91dae7d (diff)
downloadchrome-ec-b12662080799859b326461ae498a10d61dd87e2e.tar.gz
elm: anx7688: make anx7688 always on
This makes the boot time less painful since it requires a long delay for FW loading after power on this chip. This also makes it easier to upgrade FW as we don't need to power on the chip before doing upgrade. BRANCH=none BUG=chrome-os-partner:52815 TEST=plug and unplug dongle and check DP output plug/unplug adapter and check pd 0 state Change-Id: Ia344c748697a3b1d06c9b442e1bf1d7227861f9b Signed-off-by: Tang Zhentian1 <ztang@analogixsemi.com> Signed-off-by: Koro Chen <koro.chen@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/347181 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--board/elm/board.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/board/elm/board.c b/board/elm/board.c
index c0083c625b..ed985f6158 100644
--- a/board/elm/board.c
+++ b/board/elm/board.c
@@ -68,19 +68,8 @@ DECLARE_DEFERRED(deferred_reset_pd_mcu);
void usb_evt(enum gpio_signal signal)
{
- /*
- * check if this is from BC12 or ANX7688 CABLE_DET
- * note that CABLE_DET can only trigger irq when 0 -> 1 (plug in)
- */
if (!gpio_get_level(GPIO_BC12_WAKE_L))
task_set_event(TASK_ID_USB_CHG_P0, USB_CHG_EVENT_BC12, 0);
-
- if (!gpio_get_level(GPIO_USB_C0_CABLE_DET_L) &&
- gpio_get_level(GPIO_USB_C0_PWR_EN_L)) {
- hook_call_deferred(&deferred_reset_pd_mcu_data, -1);
- /* pull PWR_EN after 10ms */
- hook_call_deferred(&deferred_reset_pd_mcu_data, 10*MSEC);
- }
}
#include "gpio_list.h"
@@ -220,12 +209,8 @@ void deferred_reset_pd_mcu(void)
case 3:
/*
* PWR_EN_L high, RST high
- * cable detected - enable power
- * cable not detected - do nothing
+ * enable power and wait for 10ms then pull RESET_N
*/
- if (gpio_get_level(GPIO_USB_C0_CABLE_DET_L))
- return;
- /* enable power and wait for 10ms then pull RESET_N */
gpio_set_level(GPIO_USB_C0_PWR_EN_L, 0);
hook_call_deferred(&deferred_reset_pd_mcu_data, 10*MSEC);
break;
@@ -239,6 +224,14 @@ void deferred_reset_pd_mcu(void)
}
}
+static void board_power_on_pd_mcu(void)
+{
+ /* check if power is already on */
+ if (!gpio_get_level(GPIO_USB_C0_PWR_EN_L))
+ return;
+ hook_call_deferred(&deferred_reset_pd_mcu_data, 1*MSEC);
+}
+
void board_reset_pd_mcu(void)
{
/* enable port controller's cable detection before reset */
@@ -283,7 +276,7 @@ static void board_init(void)
gpio_enable_interrupt(GPIO_BC12_CABLE_INT);
/* Check if typeC is already connected, and do 7688 power on flow */
- usb_evt(0);
+ board_power_on_pd_mcu();
/* Update VBUS supplier */
usb_charger_vbus_change(0, pd_snk_is_vbus_provided(0));