diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2017-02-22 10:39:33 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2017-02-26 21:16:45 +0000 |
commit | c15aaa4bfbabeb90ccd7f4d26fe33f337488030c (patch) | |
tree | 4c0984219fbd2de234e94f035b9dac1a9e6e1c55 | |
parent | 372ee8c894fedeef0760e5d7477eb35ba4b0f902 (diff) | |
download | chrome-ec-c15aaa4bfbabeb90ccd7f4d26fe33f337488030c.tar.gz |
Reef: Fix power-up sequence for Anx3429
Power-up sequence must bring up PWR_NE followed by RESETN according
to Figure 5-16 of the datasheet.
BUG=chrome-os-partner:63045
BRANCH=none
TEST=Test charging, external monitor, usb flash drive in s0/s3/s5.
Change-Id: I0e69f0fd0a06f3c828ca59172e0ca045cdc4f5d7
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/445934
Reviewed-by: Kevin K Wong <kevin.k.wong@intel.com>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
(cherry picked from commit 918cb2ca3aacf6fa4bda71619fbeaea1c0257bdf)
Reviewed-on: https://chromium-review.googlesource.com/446708
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | board/reef/board.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/board/reef/board.c b/board/reef/board.c index 33309d8a7e..0df05cb832 100644 --- a/board/reef/board.c +++ b/board/reef/board.c @@ -294,10 +294,22 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = { /* called from anx74xx_set_power_mode() */ void board_set_tcpc_power_mode(int port, int mode) { - if (port == 0) { - gpio_set_level(GPIO_USB_C0_PD_RST_L, mode); - msleep(mode ? 10 : 1); - gpio_set_level(GPIO_EN_USB_TCPC_PWR, mode); + if (port != USB_PD_PORT_ANX74XX) + return; + + switch (mode) { + case ANX74XX_NORMAL_MODE: + gpio_set_level(GPIO_EN_USB_TCPC_PWR, 1); + msleep(10); + gpio_set_level(GPIO_USB_C0_PD_RST_L, 1); + break; + case ANX74XX_STANDBY_MODE: + gpio_set_level(GPIO_USB_C0_PD_RST_L, 0); + msleep(1); + gpio_set_level(GPIO_EN_USB_TCPC_PWR, 0); + break; + default: + break; } } |