summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/coral/board.c11
-rw-r--r--board/coral/board.h2
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 \