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