imx233: enable charging in bootloader USB mode by including powermgmt

Change-Id: I8b91b3ab60cb9ffaa127333e9bcef8c33be742fa
diff --git a/bootloader/imx233.c b/bootloader/imx233.c
index 2380dfa..6d356b9 100644
--- a/bootloader/imx233.c
+++ b/bootloader/imx233.c
@@ -39,6 +39,7 @@
 #include "system-target.h"
 #include "fmradio_i2c.h"
 #include "version.h"
+#include "powermgmt.h"
 
 #include "usb.h"
 
@@ -81,6 +82,8 @@
     {
         /* Got the message - wait for disconnect */
         printf("Bootloader USB mode");
+        /* Enable power management to charge */
+        powermgmt_init();
 
         usb_acknowledge(SYS_USB_CONNECTED_ACK);
 
@@ -89,6 +92,16 @@
             button = button_get_w_tmo(HZ/2);
             if(button == SYS_USB_DISCONNECTED)
                 break;
+            struct imx233_powermgmt_info_t info = imx233_powermgmt_get_info();
+            lcd_putsf(0, 7, "Charging status: %s",
+                info.state == CHARGE_STATE_DISABLED ? "disabled" :
+                info.state == CHARGE_STATE_ERROR ? "error" :
+                info.state == DISCHARGING ? "discharging" :
+                info.state == TRICKLE ? "trickle" :
+                info.state == TOPOFF ? "topoff" :
+                info.state == CHARGING ? "charging" : "<unknown>");
+            lcd_putsf(0, 8, "Battery: %d%%", battery_level());
+            lcd_update();
         }
     }
 
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 9b0f83d..a791cbb 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -1335,9 +1335,9 @@
 target/arm/imx233/sansa-fuzeplus/debug-fuzeplus.c
 target/arm/imx233/sansa-fuzeplus/power-fuzeplus.c
 target/arm/imx233/sansa-fuzeplus/adc-fuzeplus.c
+target/arm/imx233/sansa-fuzeplus/powermgmt-fuzeplus.c
 #ifndef BOOTLOADER
 target/arm/imx233/sansa-fuzeplus/audio-fuzeplus.c
-target/arm/imx233/sansa-fuzeplus/powermgmt-fuzeplus.c
 #endif
 #endif
 
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c
index b31dc81..379b91c 100644
--- a/firmware/powermgmt.c
+++ b/firmware/powermgmt.c
@@ -889,9 +889,9 @@
     sleeptimer_key_restarts = enable;
 }
 
+#ifndef BOOTLOADER
 static void handle_sleep_timer(void)
 {
-#ifndef BOOTLOADER
     if (!sleeptimer_active)
       return;
 
@@ -912,8 +912,8 @@
             sys_poweroff();
         }
     }
-#endif /* BOOTLOADER */
 }
+#endif /* BOOTLOADER */
 
 /*
  * We shut off in the following cases:
@@ -929,6 +929,7 @@
  */
 void handle_auto_poweroff(void)
 {
+#ifndef BOOTLOADER
     long timeout = poweroff_timeout*60*HZ;
     int audio_stat = audio_status();
     long tick = current_tick;
@@ -968,4 +969,5 @@
         }
     } else
         handle_sleep_timer();
+#endif
 }