diff options
author | Kevin K Wong <kevin.k.wong@intel.com> | 2016-11-11 10:27:16 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-11-11 23:11:41 -0800 |
commit | 3de9c1dcd04b73c069204fcabfc1db4eafc309fe (patch) | |
tree | 26fa2ddfb12dc1dc6c9c9a576fe8c937d082f039 | |
parent | bb3ab2fbc4a9d4e9ee1fe7d833e03fe19b6bff05 (diff) | |
download | chrome-ec-3de9c1dcd04b73c069204fcabfc1db4eafc309fe.tar.gz |
reef/ps8751: Add force wake for PS8751.
If PS8751 goes into low power mode during sysjump, then tcpm_init will
fail since PS8751 is not accessible via I2C, so force it to wake up
during hook_init.
BUG=chrome-os-partner:59693
BRANCH=none
TEST=Verified PS8751 port on reef is functional after sysjump.
Change-Id: I2aa5a80b2ea9c17a01e4cba04493f83cb0a39955
Signed-off-by: Kevin K Wong <kevin.k.wong@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/410132
Reviewed-by: David Hendricks <dhendrix@chromium.org>
-rw-r--r-- | board/reef/board.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/board/reef/board.c b/board/reef/board.c index 87bc929d60..d75f1bca91 100644 --- a/board/reef/board.c +++ b/board/reef/board.c @@ -303,12 +303,23 @@ void board_print_tcpc_fw_version(int port) void board_tcpc_init(void) { - int port; + int port, reg; /* Only reset TCPC if not sysjump */ if (!system_jumped_to_this_image()) board_reset_pd_mcu(); + /* + * TODO: Remove when Reef is updated with PS8751 A3. + * + * Force PS8751 A2 to wake from low power mode. + * If PS8751 remains in low power mode after sysjump, + * TCPM_INIT will fail due to not able to access PS8751. + * + * NOTE: PS8751 A3 will wake on any I2C access. + */ + i2c_read8(NPCX_I2C_PORT0_1, 0x10, 0xA0, ®); + /* Enable TCPC0 interrupt */ gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL); |