summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/samus_pd/board.c6
-rw-r--r--common/usb_pd_protocol.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/board/samus_pd/board.c b/board/samus_pd/board.c
index 561563a6e5..9105c9322e 100644
--- a/board/samus_pd/board.c
+++ b/board/samus_pd/board.c
@@ -18,7 +18,8 @@
void vbus_evt(enum gpio_signal signal)
{
- ccprintf("VBUS %d!\n", signal);
+ ccprintf("VBUS %d, %d!\n", signal, gpio_get_level(signal));
+ task_wake(TASK_ID_PD);
}
void bc12_evt(enum gpio_signal signal)
@@ -176,6 +177,9 @@ static void board_init(void)
* to specify device mode.
*/
gpio_set_level(GPIO_USB_C_CC_EN, 1);
+
+ /* Enable interrupts on VBUS transitions. */
+ gpio_enable_interrupt(GPIO_USB_C0_VBUS_WAKE);
}
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 48e2763712..55a5c97334 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -784,6 +784,7 @@ void pd_task(void)
pd_task_state = PD_STATE_SNK_DISCONNECTED;
/* set timeout small to reconnect fast */
timeout = 5*MSEC;
+ break;
}
/* check vital parameters from time to time */