diff options
-rw-r--r-- | board/coral/board.c | 11 | ||||
-rw-r--r-- | board/coral/board.h | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/board/coral/board.c b/board/coral/board.c index 319252040d..9ec589aea3 100644 --- a/board/coral/board.c +++ b/board/coral/board.c @@ -364,6 +364,16 @@ void board_reset_pd_mcu(void) void board_tcpc_init(void) { int port, reg; + int count = 0; + + /* Wait for disconnected battery to wake up */ + while (battery_hw_present() == BP_YES && + battery_is_present() == BP_NO) { + usleep(100 * MSEC); + /* Give up waiting after 2 seconds */ + if (++count > 20) + break; + } /* Only reset TCPC if not sysjump */ if (!system_jumped_to_this_image()) @@ -400,7 +410,6 @@ void board_tcpc_init(void) mux->hpd_update(port, 0, 0); } } -DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1); /* * Data derived from Seinhart-Hart equation in a resistor divider circuit with diff --git a/board/coral/board.h b/board/coral/board.h index c3f06eda65..6523cc2ff1 100644 --- a/board/coral/board.h +++ b/board/coral/board.h @@ -87,6 +87,7 @@ #define CONFIG_USB_PD_PORT_COUNT 2 #define CONFIG_USB_PD_QUIRK_SLOW_CC_STATUS #define CONFIG_USB_PD_VBUS_DETECT_CHARGER +#define CONFIG_USB_PD_TCPC_BOARD_INIT #define CONFIG_USB_PD_TCPC_LOW_POWER #define CONFIG_USB_PD_TCPM_MUX /* for both PS8751 and ANX3429 */ #define CONFIG_USB_PD_TCPM_ANX74XX @@ -326,6 +327,7 @@ void board_reset_pd_mcu(void); int board_get_version(void); void board_set_tcpc_power_mode(int port, int mode); +void board_tcpc_init(void); /* Sensors without hardware FIFO are in forced mode */ #define CONFIG_ACCEL_FORCE_MODE_MASK \ |