diff options
-rw-r--r-- | board/spring/usb_charging.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/board/spring/usb_charging.c b/board/spring/usb_charging.c index e4d9a362fd..ee87d896ea 100644 --- a/board/spring/usb_charging.c +++ b/board/spring/usb_charging.c @@ -20,6 +20,10 @@ #define CPUTS(outstr) cputs(CC_USBCHARGE, outstr) #define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) +/* Devices that need VBUS power */ +#define POWERED_DEVICE_TYPE (TSU6721_TYPE_OTG | \ + TSU6721_TYPE_JIG_UART_ON) + static enum ilim_config current_ilim_config = ILIM_CONFIG_MANUAL_OFF; static void board_ilim_use_gpio(void) @@ -119,6 +123,13 @@ static void usb_device_change(int dev_type) return; last_dev_type = dev_type; + /* Supply VBUS if needed */ + if (dev_type & POWERED_DEVICE_TYPE) + gpio_set_level(GPIO_BOOST_EN, 0); + else + gpio_set_level(GPIO_BOOST_EN, 1); + + /* Log to console */ CPRINTF("[%T USB Attached: "); if (dev_type == TSU6721_TYPE_NONE) CPRINTF("Nothing]\n"); |