Index: apps/debug_menu.c
===================================================================
RCS file: /cvsroot/rockbox/apps/debug_menu.c,v
retrieving revision 1.167
diff -u -r1.167 debug_menu.c
--- apps/debug_menu.c	17 Feb 2006 22:38:38 -0000	1.167
+++ apps/debug_menu.c	4 Mar 2006 18:53:25 -0000
@@ -49,6 +49,7 @@
 #include "misc.h"
 #include "splash.h"
 #include "lcd-remote.h"
+#include "usb.h"
 
 #ifdef HAVE_LCD_BITMAP
 #include "widgets.h"
@@ -1300,6 +1301,9 @@
                 snprintf(buf, 30, "Charger: %s",
                          charger_inserted() ? "present" : "absent");
                 lcd_puts(0, 3, buf);
+                snprintf(buf, 30, "USB Inserted: %s",
+                         usb_inserted() ? "present" : "absent");
+                lcd_puts(0, 4, buf);
 #endif
 #endif /* !HAVE_CHARGE_CTRL */
 #endif /* HAVE_CHARGING */
                 break;
Index: apps/gui/statusbar.c
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/statusbar.c,v
retrieving revision 1.23
diff -u -r1.23 statusbar.c
--- apps/gui/statusbar.c	2 Mar 2006 13:37:50 -0000	1.23
+++ apps/gui/statusbar.c	4 Mar 2006 18:53:25 -0000
@@ -130,6 +130,9 @@
 #ifdef HAVE_CHARGING
     bar->info.inserted = (charger_input_state == CHARGER);
 #endif
+#ifdef HAVE_USB_POWER
+    bar->info.usb_inserted = usb_inserted();
+#endif /* HAVE_USB_POWER */
     bar->info.battlevel = battery_level();
     bar->info.battery_safe = battery_level_safe();
 
@@ -156,10 +159,6 @@
         bar->info.led = led_read(HZ/2); /* delay should match polling interval */
 #endif
 
-#ifdef HAVE_USB_POWER
-    bar->info.usb_power = usb_powered();
-#endif /* HAVE_USB_POWER */
-
     /* only redraw if forced to, or info has changed */
     if (force_redraw ||
         bar->info.inserted ||
@@ -226,7 +225,7 @@
         if (battery_state)
             gui_statusbar_icon_battery(display, bar->info.battlevel);
 #ifdef HAVE_USB_POWER
-        if (bar->info.usb_power)
+        if (bar->info.usb_inserted)
             display->mono_bitmap(bitmap_icons_7x8[Icon_USBPlug],
                                  STATUSBAR_PLUG_X_POS,
                                  STATUSBAR_Y_POS, STATUSBAR_PLUG_WIDTH,
Index: apps/gui/statusbar.h
===================================================================
RCS file: /cvsroot/rockbox/apps/gui/statusbar.h,v
retrieving revision 1.14
diff -u -r1.14 statusbar.h
--- apps/gui/statusbar.h	7 Dec 2005 23:07:07 -0000	1.14
+++ apps/gui/statusbar.h	4 Mar 2006 18:53:25 -0000
@@ -39,6 +39,9 @@
     int playmode;
     int repeat;
     bool inserted;
+#ifdef HAVE_USB_POWER
+    bool usb_inserted;
+#endif
     bool shuffle;
     bool keylock;
 #ifdef HAS_REMOTE_BUTTON_HOLD
@@ -50,9 +53,6 @@
     bool led; /* disk LED simulation in the status bar */
 #endif
 
-#ifdef HAVE_USB_POWER
-    bool usb_power;
-#endif
 };
 
 struct gui_statusbar
 Index: firmware/powermgmt.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/powermgmt.c,v
retrieving revision 1.103
diff -u -r1.103 powermgmt.c
--- firmware/powermgmt.c	4 Mar 2006 09:48:53 -0000	1.103
+++ firmware/powermgmt.c	4 Mar 2006 18:53:25 -0000
@@ -499,8 +499,8 @@
          * transition to the appropriate steady state charger on/off state.
          */
         if(charger_inserted()
-#ifdef HAVE_USB_POWER
-                || usb_powered()
+#ifdef HAVE_USB_POWER /* USB powered or USB inserted both provide power */
+                || usb_powered() || usb_inserted()
 #endif
                 ) {
             switch(charger_input_state) {
Index: firmware/drivers/pcf50606.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/drivers/pcf50606.c,v
retrieving revision 1.10
diff -u -r1.10 pcf50606.c
--- firmware/drivers/pcf50606.c	19 Jan 2006 13:10:15 -0000	1.10
+++ firmware/drivers/pcf50606.c	4 Mar 2006 18:53:25 -0000
@@ -282,6 +282,7 @@
     pcf50606_write(0x08, 0x60); /* Wake on USB and charger insertion */
     pcf50606_write(0x09, 0x05); /* USB and ON key debounce: 14ms */
     pcf50606_write(0x29, 0x1C); /* Disable the unused MBC module */
+    pcf50606_write(0x39, 0x00); /* Set GPOOD2 to High-Z for USB Charge Enable */
     
     pcf50606_write(0x35, 0x13); /* Backlight PWM = 512Hz 50/50 */
 }
