[Gta04-owner] Current consumption during suspend
Dr. H. Nikolaus Schaller
hns at goldelico.com
Mon Aug 27 18:41:06 CEST 2012
Am 27.08.2012 um 12:50 schrieb NeilBrown:
> On Sat, 25 Aug 2012 19:29:09 +0200 "Dr. H. Nikolaus Schaller"
> <hns at goldelico.com> wrote:
>>> Further observations: If the sleep current is not somewhere around
>>> 20mA but near 25mA the ITG-3200 may caused the additional power
>>> consumption. There seem to be a few cases where the chip isn't reset
>> I know one case where it happens for sure: if you connect USB power
>> without battery, the device will not visibly boot. Rather it will try to boot,
>> but shuts down after some 100-500 ms. This makes the ITG state machine
>> run into "no-response" mode. Even if you insert the battery later and the
>> device finally boots.
>> If you put in the battery first and the USB power next, it will properly
>>> correctly which causes its I2C interface to malfunction and therefore
>> I2C will timeout in this situation.
>> In this case it should be possible to shortly pulse off the VAUX that
>> powers the sensors. Although this makes the ITG being operated outside
>> of the spec shortly (VIO > VDD) it resets the chip. This is IMHO acceptable
>> since the VAUX LDO is current limited and is only a fallback for the rare
>> case that the ITG does no longer respond.
>> This could be hacked into the driver - although it makes it *very* specific
>> to the GTA04 boards and probably nobody else needs it in a ITG3200
>> @NeilBrown: is it possible that the ITG3200 can notify the board file
>> or some VAUX regulator just about the I2C timeout? So that generating
>> the emergency reset is clearly separated from the driver?
> I can't immediately think of a neat way to do this. The ITG3200 driver
> doesn't get called at all until the I2C bus find a device with the right
> signature, so if the ITG3200 isn't responding properly to that first problem,
> there is nothing we can do in it's driver to trigger a reset.
> May we could arrange to always reset the sensors on boot. i.e. do it
> completely in the board file...
> What exactly is the symptom here? How reproducible is it? Can you reproduce
I think the symptom is that the ITG3200 is simply not responding on I2C.
I.e. you get a timeout and/or probing fails.
> with a sequence of warm reboots or do you need to remove and re-add power.
> i.e. how can I test a possible fix to see if it makes a difference?
I have not tested this deeply but it appears that it indeed needs a power-cycle
for the chip to reset since it has no reset input line.
If you have the virtual regulator for VAUX you could cycle it from user space.
The sequence I know for getting into this problem:
0. remove battery
1. attach USB power
2. insert battery
4. ITG does not respond (i.e. probe fails)
If you do:
1. insert battery
2. attach USB power
4. ITG does respond
More information about the Gta04-owner