[Gta04-owner] [Community] GTA04 power management

H. Nikolaus Schaller hns at goldelico.com
Mon Oct 12 11:02:53 CEST 2015


Hi all,
I have fixed some minor issues in the Letux 4.3-rc5 release and now it is possible
to boot (again) on the OpenPandora.

I have also adapted the measurement script so that it uses the bq27500 inside the
pandora:

http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=Letux/root/measure-suspend;h=95f9ebcba688f91002b2da72bbc03f7dfcf1f82d;hb=dae7865eff2e4ce9a2c8375e5f11e2fcb2b8fde6

Setup:
* OpenPandora 600MHz
* external RS232 (level shifter is externally powered so ther eis no need and mechanism to turn it off)
* one LED enabled
* USB cable connected
* display backlight is turned off
* Letux 4.3-rc5 (branch work/hns/pm with omapdrm)
* WLAN turned off (ifconfig wlan0 down)
* boot from MMC

The two results are:

72240 uA over 299 seconds
84000 uA over 300 seconds

So I would conclude that it is more likely that some component on the SoC is not disabled correctly.
Or are MMCs generally not powered down? But they do not draw 50mA in standby mode (no clock).

BR,
Nikolaus


Am 07.10.2015 um 10:06 schrieb H. Nikolaus Schaller <hns at goldelico.com>:

> Hi Neil.
> 
> Am 03.10.2015 um 05:16 schrieb Neil Brown <neilb at suse.de>:
> 
>> "H. Nikolaus Schaller" <hns at goldelico.com> writes:
>>> 
>>> Could you share a complete description of your setup? So that it is reproducible?
>>> I.e. which kernel, which user space, command to suspend/wakeup, boot loader
>>> version, how you measure suspend current etc.
>>> 
>> My test board in a GTA04A3, though my GTA04A4 shows much the same sort
>> of numbers.
> 
> There shouldn't be big differences (some A3 boards may have an additional LIS302)
> 
>> 
>> 
>> User space is Debian/testing ... possibly with a bit of
>> Debian/experimental (it is listed in my sources.list but I don't
>> remember why).
>> 
>> I have a few of my own tools running, but they are all idle while I test
>> power usage.
>> So screen is blank, sound is off, GPS is off etc.  There is no SIM card
>> and I haven't tried to access the GSM module at all.
>> 
>> I use the following script while connected to the serial console.
>> The script disables RS-232 (as the sucks several mA) and turns of the
>> power source (my board is powered via a 5V source on the 'AC' pins of
>> the serial connector).
>> Then it checks the battery, suspends for 5 minutes (default), wakes up
>> and checks the power usage.
>> I run that several times and discard the outliers.
>> 
>> With a 4.2 kernel at:
>>  http://git.neil.brown.name/?p=gta04.git;a=shortlog;h=refs/heads/4.2-gta04
>> I get numbers like:
>> 
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 46967 uA over 301 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47124 uA over 300 seconds
>> 47281 uA over 299 seconds
>> 47281 uA over 299 seconds
>> 47600 uA over 297 seconds
>> 
>> 
>> With the 3.7 kernel
>> http://git.neil.brown.name/?p=gta04.git;a=shortlog;h=refs/heads/3.7-gta04
>> I get:
>> 
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21420 uA over 300 seconds
>> 21709 uA over 296 seconds
>> 23556 uA over 300 seconds
>> 23568 uA over 300 seconds
>> 36420 uA over 300 seconds
>> 36420 uA over 300 seconds
>> 
>> 
>> Disabling the RS-232 doesn't work on my 3.7 kernel (because the required
>> GPIO isn't exported by the board file) so I have to unplug the RS-232 to
>> get proper reading there, but I could easily fix that.
>> 
>> I'd be interested to hear what other people measure.
> 
> I have run a quick test with our Letux 4.3-rc4 kernel (on a GTA04A3 with
> broken WiFi) and get readings ~170-190 mA.
> 
> Well, this is with backlight still enabled (we have no proper config for
> that in our tree - it remains "white") and the red power button LED stays
> on.
> 
> Backlight needs ~20mA at 18V which translates to ~100 mA (depends
> on battery voltage). So this means the core goes down to less than
> 70 - 90mA.
> 
> And, I did not take care of turning off everything yet. Just a first test.
> 
> Subtracting the red LED and some peripherals which may stay powered
> makes you readings reasonable. But to really compare I would need a
> better test setup (which also requires to be able to charge the battery without
> downgrading the kernel).
> 
> One observation is that the RTC wakeup does not trigger. I have to wake
> up by pressing the power button.
> 
>> If you don't have a serial port connected you probably need to arrange
>> some way to start in from the touch-screen, and then make sure the
>> screen turns off.
>> 
>> NeilBrown
>> 
>> Script is:
>> #!/bin/sh
> 
> I had to replace by /bin/bash to make $[...] recognised.
> 
>> 
>> # disable charging, suspend for 5 minutes and report apparent
>> # power usage by monitoring battery.
>> 
>> power1=/sys/class/power_supply/twl4030_usb/mode
>> power2=/sys/class/power_supply/twl4030_ac/mode
>> chg=/sys/class/power_supply/bq27000-battery/charge_now
>> rs232=/sys/class/gpio/gpio13/value
>> rs232dir=/sys/class/gpio/gpio13/direction
>> delay=${1-300}
>> [ -f $rs232 ] || { echo 13 > /sys/class/gpio/export; echo high > $rs232dir;}
>> 
>> stty raw -echo -cread
>> echo 0 > $rs232
>> echo off > $power1
>> echo off > $power2
>> before=`cat $chg`
>> start=`date '+%s'`
>> echo $[start+delay] > /sys/class/rtc/rtc0/wakealarm
>> echo mem > /sys/power/state
>> after=`cat $chg`
>> end=`date '+%s'`
>> echo 1 > $rs232
>> stty sane
>> echo auto > $power1
>> echo auto > $power2
>> 
>> echo $[(before-after)*3600/(end-start)] uA over $[end-start] seconds
> 
> 
> BR and thanks for sharing!
> 
> Nikolaus
> 



More information about the Gta04-owner mailing list