How is gta01 charger ID resistor detected?

Ben Wilson ben at
Tue Jan 26 01:09:47 CET 2010

I could be wrong, but I thought the 47K resistor cable ID feature was 
one of the things they added into GTA02.
I assumed GTA01 didn't have it.


Andy Poling wrote:
> I have made a couple of custom charging cables for use with my gta01 and dumb
> USB chargers (selected because they were rated at least 500ma).  I made the
> cables by connecting a 47K resistor between the ID pin and ground leads.
> However, after struggling with constantly inability to reliably charge my
> gta01 on dumb chargers, some investigation has shown that the phone (running,
> at the moment, a recent git pull) is settling into trickle charge despite the
> presence of the ID resistor.
> What is supposed to detect the resistor?  What happens when it does?  How can
> I tell if it's working?
> I've modified the pcf50606 reporting in my kernel to reveal more bits of the
> registers to track this down.  I've changed the charger sysfs online attribute
> to use the low bit of CHGVINSTAT for bit 0 and CHGAPE for bit 1.  I've changed
> the chgmod attribute to also reveal the CHGAPE and AUTOFST bits.
> The first thing I noticed is that CHGVINSTAT is always set, even when there's
> no charger present.  I don't know why.  That seems contrary to the pcf50606
> spec.  It's possible it's a bug in my change to the driver.
> But the real problem I noticed is that AUTOFST is getting cleared when a cable
> with the ID resistor is connected.  Here's a log made by a shell script
> monitoring changes in the values reported through sysfs as I unplugged from my
> desktop and then plugged into a dumb charger with my modified cable:
> Jan 24 23:47:50 neo logger: BATSTAT=Charging BATCHG=100 CHARGER=3 CHARGEMODE=15
> (bits set indicate CHGAPE=1, AUTOFST=0, CHGMOD=fastcccv)
> ** unplugged from desktop USB **
> Jan 25 03:24:02 neo logger: BATSTAT=Discharging BATCHG=100 CHARGER=3 CHARGEMODE=31
> (bits set indicate CHGAPE=1, AUTOFST=1, CHGMOD=idle)
> [...]
> Jan 25 03:28:03 neo logger: BATSTAT=Discharging BATCHG=94 CHARGER=3 CHARGEMODE=31
> ** plugged into dumb charger and modified cable **
> Jan 25 03:28:34 neo logger: BATSTAT=Charging BATCHG=96 CHARGER=3 CHARGEMODE=5
> (bits set indicate CHGAPE=1, AUTOFST=0, CHGMOD=precharge)
> [...]
> Jan 25 10:53:46 neo logger: BATSTAT=Charging BATCHG=23 CHARGER=3 CHARGEMODE=5
> ** unplugged from dumb charger and modified cable **
> Jan 25 10:54:16 neo logger: BATSTAT=Discharging BATCHG=18 CHARGER=3 CHARGEMODE=29
> (bits set indicate CHGAPE=1, AUTOFST=0, CHGMOD=idle)
> [...]
> Jan 25 10:56:48 neo logger: BATSTAT=Discharging BATCHG=20 CHARGER=3 CHARGEMODE=29
> ** plugged into desktop USB **
> Jan 25 10:57:18 neo logger: BATSTAT=Charging BATCHG=43 CHARGER=3 CHARGEMODE=15
> (bits set indicate CHGAPE=1, AUTOFST=0, CHGMOD=fastcccv)
> [...]
> Jan 25 10:59:19 neo logger: BATSTAT=Charging BATCHG=56 CHARGER=3 CHARGEMODE=15
> As you can see, I never get more than trickle charge when on the dumb charger
> and modified cable.
> Along the way I encountered several things about the pcf50606 MBC control
> driver that I think can be improved/fixed.  I guess I'll take that discussion
> to the openmoko kernel list.
> -Andy
> It ain't what you don't know that gets you into trouble.
> It's what you know for sure that just ain't so. - Mark Twain
> _______________________________________________
> Openmoko community mailing list
> community at
> ------------------------------------------------------------------------
> No virus found in this incoming message.
> Checked by AVG - 
> Version: 9.0.730 / Virus Database: 271.1.1/2645 - Release Date: 01/26/10 08:36:00

More information about the community mailing list