[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
>> reset.
>> 
>>> 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
>> driver.
>> 
>> @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
3. boot
4. ITG does not respond (i.e. probe fails)

If you do:
1. insert battery
2. attach USB power
3. boot
4. ITG does respond

BR,
Nikolaus



More information about the Gta04-owner mailing list