AMD Geode CS553X GPIO driver

David Brownell david-b at pacbell.net
Sat Dec 27 12:42:03 EST 2008


On Saturday 27 December 2008, jordan at cosmicpenguin.net wrote:
> > On Saturday 27 December 2008, jordan at cosmicpenguin.net wrote:
> >> The
> >> generic GPIO infrastructure is missing a few of the more obscure GPIO
> >> features on the Geode that are used in the DCON code, but I know Deepak
> >> was planning to write code for those; until then we can use the "legacy'
> >> functions.
> >
> > Could you elaborate please?  If the issue is pin configuration,
> > then that *should* be a platform-specific function.
> 
> It is pin configuration - auxiliary functions, edge detection, event
> configuration, etc.  If they work better as platform-specific functions,
> then that is fine with me.  Deepak was looking into the whole mess - he
> probably has more insight into the matter then I do.

Auxiliary functions, a.k.a. "pin muxing", is highly platform-specific.

Likewise pullups/pulldowns, drive strength, output voltage, and drive
type (push/pull vs open-drain).  As a rule, that all gets done once as
part of board setup (because we can't trust boot loaders to be reliable
for much more than starting a kernel image) from __init code, and is
never touched again.

Stuff like IRQ edge configuration is irq_chip stuff; it's common to
need a specialized irq_chip to work in conjunction with a gpio_chip.
Board setup can establish initial values, and most drivers will never
change them, but irq_chip.set_type() can still be provided.

- Dave




More information about the Linux-geode mailing list