summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin K Wong <kevin.k.wong@intel.com>2016-11-11 10:27:16 -0800
committerchrome-bot <chrome-bot@chromium.org>2016-11-11 23:11:41 -0800
commit3de9c1dcd04b73c069204fcabfc1db4eafc309fe (patch)
tree26fa2ddfb12dc1dc6c9c9a576fe8c937d082f039
parentbb3ab2fbc4a9d4e9ee1fe7d833e03fe19b6bff05 (diff)
downloadchrome-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.c13
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, &reg);
+
/* Enable TCPC0 interrupt */
gpio_enable_interrupt(GPIO_USB_C0_PD_INT_ODL);