Re: [RFC] Proposal: common kernel-wide GPIO interface

From: Robert Schwebel
Date: Mon Jul 31 2006 - 16:15:35 EST


On Mon, Jul 31, 2006 at 05:10:56PM +0100, Chris Boot wrote:
> My current idea is to divide the interfaces by GPIO device and port.
> I've so far not seen a GPIO device that couldn't be divided into ports
> of <= 32 bits. How wide can a 'port' actually become?

Not all GPIOs can be abstracted into "ports" in a sane way. For example,
the PXAs have something like 80 GPIOs, which might be randomly divided
into alternate functions and "real" GPIOs.

> Somehow I think that a separate device/file for each pin or possibly
> even port might not be a wise idea. For example, twiddling individual
> pins on a GPIO when you connect an LCD, I2C, or SPI interface seems
> extremely inefficient...

I think you have to take care about two things: a) a registration
infrastructure (which GPIO pin was requested, similar to mem and irq)
and b) an access API. For slow things like LEDs you might want to have
unified access functions, but for fast GPIOs (bitbanging i2c etc) you
want to directly manipulate the registers once you've requested them.

Robert
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/