From 3de9c1dcd04b73c069204fcabfc1db4eafc309fe Mon Sep 17 00:00:00 2001 From: Kevin K Wong Date: Fri, 11 Nov 2016 10:27:16 -0800 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/410132 Reviewed-by: David Hendricks --- board/reef/board.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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); -- cgit v1.2.1