summaryrefslogtreecommitdiff
path: root/board/nami/board.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-05-29 12:29:33 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-06-05 02:15:32 -0700
commit0988c5875f92c38e560ecd4c6889167c738f66a8 (patch)
treea697477f2d6aee3db7c8e8d5c84ef633e48fb367 /board/nami/board.c
parent8f21950cc04811865383f25c24557226568e3c70 (diff)
downloadchrome-ec-0988c5875f92c38e560ecd4c6889167c738f66a8.tar.gz
Nami: Toggle Anx7447 reset line at start-up
This patch configures the GPIO pin connected to the reset pin of Anx7447 as push-pull low. When the EC start up from reset, it pulls it high, waits for 1 msec, then pulls it low. This allows the tcpc to recover from a hang and guarantees it to start from a known state. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b:79868559 BRANCH=none TEST=Verify Anx7447 port charges on Nami with a rework. Change-Id: Ib7683e20160edf0f320a8c6af25f5f74d4f74538 Reviewed-on: https://chromium-review.googlesource.com/1077015 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Diffstat (limited to 'board/nami/board.c')
-rw-r--r--board/nami/board.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/board/nami/board.c b/board/nami/board.c
index afc3d802ed..b6d35d29c1 100644
--- a/board/nami/board.c
+++ b/board/nami/board.c
@@ -77,7 +77,7 @@ static void tcpc_alert_event(enum gpio_signal signal)
!gpio_get_level(GPIO_USB_C0_PD_RST_L))
return;
else if ((signal == GPIO_USB_C1_PD_INT_ODL) &&
- !gpio_get_level(GPIO_USB_C1_PD_RST_L))
+ gpio_get_level(GPIO_USB_C1_PD_RST))
return;
#ifdef HAS_TASK_PDCMD
@@ -241,10 +241,13 @@ void board_reset_pd_mcu(void)
/* Assert reset */
gpio_set_level(GPIO_USB_C0_PD_RST_L, 0);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 0);
+ gpio_set_level(GPIO_USB_C1_PD_RST, 1);
msleep(1);
gpio_set_level(GPIO_USB_C0_PD_RST_L, 1);
- gpio_set_level(GPIO_USB_C1_PD_RST_L, 1);
+ gpio_set_level(GPIO_USB_C1_PD_RST, 0);
+ /* After TEST_R release, anx7447/3447 needs 2ms to finish eFuse
+ * loading. */
+ msleep(2);
}
void board_tcpc_init(void)
@@ -265,7 +268,6 @@ void board_tcpc_init(void)
*/
for (port = 0; port < CONFIG_USB_PD_PORT_COUNT; port++) {
const struct usb_mux *mux = &usb_muxes[port];
-
mux->hpd_update(port, 0, 0);
}
}
@@ -281,7 +283,7 @@ uint16_t tcpc_get_alert_status(void)
}
if (!gpio_get_level(GPIO_USB_C1_PD_INT_ODL)) {
- if (gpio_get_level(GPIO_USB_C1_PD_RST_L))
+ if (!gpio_get_level(GPIO_USB_C1_PD_RST))
status |= PD_STATUS_TCPC_ALERT_1;
}