diff --git a/board/neo1973/gta02/gta02.c b/board/neo1973/gta02/gta02.c
index df41f5a..3e6ce49 100644
--- a/board/neo1973/gta02/gta02.c
+++ b/board/neo1973/gta02/gta02.c
@@ -71,6 +71,7 @@ extern void smedia3362_lcm_reset(int);
 extern void glamo_core_init(void);
 
 unsigned int neo1973_wakeup_cause;
+static int force_maxcurrent = 0;
 extern unsigned char booted_from_nand;
 extern unsigned char booted_from_nor;
 extern int nobootdelay;
@@ -322,11 +323,17 @@ static void set_revision(void)
 
 static void poll_charger(void)
 {
+    int current;
+
+    current = udc_usb_maxcurrent;
+    if (force_maxcurrent) {
+        current = 500;
+    }
 	if (pcf50633_read_charger_type() == 1000)
 		pcf50633_usb_maxcurrent(1000);
 	else /* track what the time-critical udc callback allows us */
-		if (pcf50633_usb_last_maxcurrent != udc_usb_maxcurrent)
-			pcf50633_usb_maxcurrent(udc_usb_maxcurrent);
+            if (pcf50633_usb_last_maxcurrent != current)
+                pcf50633_usb_maxcurrent(current);
 }
 
 static int have_int(uint8_t mask1, uint8_t mask2);
@@ -794,7 +801,8 @@ const char *neo1973_get_charge_status(void)
 int neo1973_set_charge_mode(enum neo1973_charger_cmd cmd)
 {
 	/* FIXME */
-	puts("not implemented yet\n");
+	puts("forcing 500 mA\n");
+        force_maxcurrent = 1;
 	return -1;
 }
 
