GSM flow-control non-functional on GTA01 (and possibly GTA02)

Andy Green andy at
Mon Apr 28 22:32:31 CEST 2008

Hash: SHA1

Somebody in the thread at some point said:
| On 4/28/08, Andy Green <andy at> wrote:
| [..]
|> The FIQ is only lightly used actually, so as not to eat power the bulk
|> of the time no FIQs occur.  Only when we want to do something like read
|> the battery state it runs a timer to cause FIQs.  At all other times it
|> doesn't hurt if the FIQ source is something different since no timer
|> events will come.
| This sounds strange to me. Why do we use FIQ to run a timer when we
| have RTC and why is this needed for reading the battery state? I think
| this can be solved in other ways.

We use a timer to generate a bunch of  interrupts that are closely and
accurately spaced with almost no jitter, allowing generating waveforms
to, and sampling them from the single wire to the battery.

The protocol the battery uses is asynchronous and we need to write, read
and decode it accurately just using one GPIO, over several milliseconds
but without blocking the CPU and regardless of what drivers might be
doing turning off interrupts or whatever.

That's actually quite a trick.

- -Andy
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -


More information about the openmoko-kernel mailing list