summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/nocturne/board.c11
-rw-r--r--board/nocturne/board.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/board/nocturne/board.c b/board/nocturne/board.c
index 93452d6ed8..7cb856de3f 100644
--- a/board/nocturne/board.c
+++ b/board/nocturne/board.c
@@ -620,12 +620,23 @@ static void board_report_pmic_fault(const char *str)
void board_reset_pd_mcu(void)
{
+ cprints(CC_USB, "Resetting TCPCs...");
+ cflush();
/* GPIO_USB_PD_RST_L resets all the TCPCs. */
gpio_set_level(GPIO_USB_PD_RST_L, 0);
msleep(10); /* TODO(aaboagye): Verify min hold time. */
gpio_set_level(GPIO_USB_PD_RST_L, 1);
}
+void board_set_tcpc_power_mode(int port, int mode)
+{
+ /* Ignore the "mode" to turn the chip on. We can only do a reset. */
+ if (mode)
+ return;
+
+ board_reset_pd_mcu();
+}
+
void board_rtc_reset(void)
{
cprints(CC_SYSTEM, "Asserting RTCRST# to PCH");
diff --git a/board/nocturne/board.h b/board/nocturne/board.h
index abe90b94ca..6e2bc300a4 100644
--- a/board/nocturne/board.h
+++ b/board/nocturne/board.h
@@ -261,6 +261,7 @@ int board_get_version(void);
/* Reset all TCPCs. */
void board_reset_pd_mcu(void);
+void board_set_tcpc_power_mode(int port, int mode);
#endif /* __ASSEMBLER__ */