[Gta04-owner] various powermanagement issues

H. Nikolaus Schaller hns at goldelico.com
Sun Oct 25 17:32:21 CET 2015


Hi Andreas,

Am 25.10.2015 um 14:10 schrieb Andreas Kemnade <andreas at kemnade.info>:

> On Sun, 25 Oct 2015 08:41:40 +0100
> "H. Nikolaus Schaller" <hns at goldelico.com> wrote:
> 
>>>> When I find time (sigh... I assume people are still waiting for GTA04A5
>>>> news...), I can look into the U-Boot systest approach.
>>>> 
>>> I managed to hang uboot with systest ch...
>> 
>> Yes, for me it hangs as well. So there might be another bug.
>> 
> PHY_DPLL clock does not come up for some reason. And systest ch waits
> forever for it.

I have fixed the

#define BCIAUTOWEN       (TWL4030_BASEADD_PM_MASTER + 0x020)

to become

#define BCIAUTOWEN       0x020

(TWL4030_BASEADD_PM_MASTER is 0x036 so summing things up
makes 0x056 which is a really wrong bit pattern).

and now it appears to work (PHY_DPLL fixed as well):

GTA04 # systest cha     
USB charger detected
Main battery charge:    3557 mV
Battery temperature:    39 C
Backup battery voltage: 3206 mV
AC charger voltage:     0 mV
USB charger voltage:    5124 mV
Charging current:       66 mA
GTA04 # 
GTA04 # 
GTA04 # 
GTA04 # 
GTA04 # systest cha
USB charger detected
Main battery charge:    4215 mV
Battery temperature:    39 C
Backup battery voltage: 3210 mV
AC charger voltage:     0 mV
USB charger voltage:    5028 mV
Charging current:       173 mA
GTA04 # 
GTA04 # 

Only the charging current doesn't appear to be reasonable, but I can
now take out the battery while connected to USB. So there is more
than 60 mA or 173 mA available...

So I will make a patch for our letux-u-boot and provide new SD card
images so that everyone who wants can upgrade the U-Boot in flash.

The binary of this u-boot is already here:

	http://download.goldelico.com/letux-u-boot/GTA04/latest/

Thanks for identifying the root cause of this issue!

BR,
Nikolaus

> Found that out by doing everything via i2c mw/md commands
> Linear charging works with less things enabled. 
> 
>>> I tried to insert these lines into boot.scr
>>> 
>>> i2c dev 0 
>>> i2c mw 0x4b 0x3d 0x30 1
>>> i2c mw 0x4a 0x75 0x26 1
>>> i2c mw 0x4a 0x95 0xf3 1
>>> 
>>> That starts charging for me.
>> 
>> Great!
>> 
> #enable madc
> i2c mw 0x4a 0x00 0x01 1
> #disable charging it bciboot 
> i2c mw 0x4b 0x3d 0x30 1
> #enable linear charging
> i2c mw 0x4a 0x75 0x26 1
> i2c mw 0x4a 0x95 0xf3 1
> #current monitoring
> i2c mw 0x4a 0x85 0x9c 1
> i2c mw 0x4a 0x88 0xf0 1
> 
> gives a bit better behavior. Drawback is that some kernels do not
> behave well when linear charging is enabled before bootup.
> And I would prefer if the kernel switches back to automagic charging.
> 
>>> I found this line in board/goldelico/gta04/twl4030-additions.h:
>>> #define BCIAUTOWEN       (TWL4030_BASEADD_PM_MASTER + 0x020)
>>> 
>>> That looks wrong for a *bit*  definition.
>> 
>> Indeed!
>> 
>> I have looked around and it appears to come from some TI / WindRiver source
>> code from 2009 or so. E.g.
>> 
>> https://github.com/CMNookTablet/acclaim_cyanoboot/blob/master/include/twl4030.h
>> 
>> This may indeed be buggy.
>> 
>> In Linux it was suggested (today's code is very different) as a bit value:
>> 
>> https://lwn.net/Articles/364310/
>> 
>> #define BCIAUTOWEN		0x20
>> 
> The uboot stuff was an exercise to refresh my knowledge about charging
> to be able to deal with current kernel code.
> I have stolen i2c 0x4a and 0x4b (via echo 0x4a >unbind)from the twl4030
> driver. Via i2cget I could find out that
> bciiref was set to 0! I could enable charging with i2cset. And when the
> kernel notices that theft. It became angry of course!
> 
> Regards,
> Andreas



More information about the Gta04-owner mailing list