summaryrefslogtreecommitdiff
path: root/board/spring/usb_charging.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/spring/usb_charging.c')
-rw-r--r--board/spring/usb_charging.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/board/spring/usb_charging.c b/board/spring/usb_charging.c
index fea46b333a..66b6ad667c 100644
--- a/board/spring/usb_charging.c
+++ b/board/spring/usb_charging.c
@@ -8,6 +8,7 @@
#include "board.h"
#include "console.h"
#include "gpio.h"
+#include "lp5562.h"
#include "registers.h"
#include "task.h"
#include "timer.h"
@@ -129,6 +130,11 @@ static void usb_device_change(int dev_type)
else
gpio_set_level(GPIO_BOOST_EN, 1);
+ if (dev_type & TSU6721_TYPE_VBUS_DEBOUNCED)
+ lp5562_poweron();
+ else
+ lp5562_poweroff();
+
/* Log to console */
CPRINTF("[%T USB Attached: ");
if (dev_type == TSU6721_TYPE_NONE)
@@ -157,13 +163,13 @@ static void usb_device_change(int dev_type)
CPRINTF("Unknown]\n");
}
-void board_usb_charge_update(void)
+void board_usb_charge_update(int force_update)
{
int int_val = tsu6721_get_interrupts();
if (int_val & TSU6721_INT_DETACH)
usb_device_change(TSU6721_TYPE_NONE);
- else if (int_val)
+ else if (int_val || force_update)
usb_device_change(tsu6721_get_device_type());
}