[Bug 1329] New: GTA02: LEDs are not individually controllable

Werner Almesberger werner at openmoko.org
Wed Apr 9 03:52:50 CEST 2008


bugzilla-daemon at bugzilla.openmoko.org wrote:
> If you turn one LED off, all others go off as well. The device driver probably
> needs a shadow register for the GPIOs.

Easier said than done ... GPB has the following outputs, which would
all have to know about the shadow register, in one way or another:

- USB pull-up
- MODEM_ON (GPB7)
- MODEM_RST (GPB5)
- BT_EN (GPB6)
- VIBRATOR_ON (GPB3)
- EXTINT0 (GPS) (GPB8)

Worse yet, most of the code properly abstracts GPIOs, e.g., the
vibrator doesn't even know that it's sharing a port with the LEDs.

So one way to fix this would be to make all these separate
subsystems aware of the shadow register, or give them a special set
of GPIO-handling functions that implement the shadow register more
or less transparently.

Introducting a shadow register only in the LED driver would cause
any other output to GPB to still extinguish the LEDs.

This is very messy to solve :-(

- Werner




More information about the openmoko-kernel mailing list