[U-Boot] Power Savings on ARM/OMAP4
Michael Cashwell
mboards at prograde.net
Thu Apr 25 17:38:03 CEST 2013
Greetings,
I've been playing with controlling a bq2415x battery charger chip on I2C on a custom OMAP4 board. In USB/OTG charging mode the code currently monitors the charger chip in a loop to which I added a msleep(2000) call.
I did that thinking that since battery parameters don't change very fast I'd slow things down and save power. But it doesn't seem to. That delay ends up in an ARMv7/omap-common/timer.c function that is a full-speed read/compare loop targeting a CPU timer register. It seems to leave precious little USB power for the battery.
Is there any way to make use of the ARM idle instruction and, I assume, an interrupt from a timer?
I don't want anything complicated but *something* that would help reduce the power being wasted by the _udelay() routine would be nice. If there is I'd like to find a way to apply it to the interactive console so sitting at a u-boot prompt (instead of in _udelay()) would also not suck power like crazy.
Any ideas?
Is there some solution perhaps on one of the other architectures?
-Mike
More information about the U-Boot
mailing list