diff --git a/board/spring/board.h b/board/spring/board.h index 03bb785af1..31043b0f13 100644 --- a/board/spring/board.h +++ b/board/spring/board.h @@ -26,8 +26,8 @@ #undef CONFIG_TASK_PROFILING #define CONFIG_WATCHDOG_HELP -/* DE-ACTIVATED: use STOP mode when we have nothing to do */ -#undef CONFIG_LOW_POWER_IDLE +/* use STOP mode when we have nothing to do */ +#define CONFIG_LOW_POWER_IDLE /* Smart battery and TPSchrome are on a private I2C bus behind the EC */ #define CONFIG_I2C_PASSTHROUGH diff --git a/board/spring/usb_charging.c b/board/spring/usb_charging.c index b050917435..e57e6ebd46 100644 --- a/board/spring/usb_charging.c +++ b/board/spring/usb_charging.c @@ -8,6 +8,7 @@ #include "adc.h" #include "board.h" #include "chipset.h" +#include "clock.h" #include "console.h" #include "hooks.h" #include "gpio.h" @@ -494,6 +495,10 @@ static void usb_device_change(int dev_type) keyboard_send_battery_key(); current_dev_type = dev_type; + if (dev_type) + disable_sleep(SLEEP_MASK_USB_PWR); + else + enable_sleep(SLEEP_MASK_USB_PWR); } /* diff --git a/include/clock.h b/include/clock.h index b2e3b81ac1..e70df962b1 100644 --- a/include/clock.h +++ b/include/clock.h @@ -46,6 +46,7 @@ enum { SLEEP_MASK_UART = (1 << 1), /* UART communication on-going */ SLEEP_MASK_I2C = (1 << 2), /* I2C master communication on-going */ SLEEP_MASK_CHARGING = (1 << 3), /* Charging loop on-going */ + SLEEP_MASK_USB_PWR = (1 << 4), /* USB power loop on-going */ SLEEP_MASK_FORCE = (1 << 31), /* Force disabling low power modes */ };