Re: [RFC] Proposal: common kernel-wide GPIO interface
- From: Ben Dooks <ben@xxxxxxxxx>
- Date: Sun, 30 Jul 2006 23:02:00 +0100
On Sun, Jul 30, 2006 at 03:08:11PM +0200, Robert Schwebel wrote:
Chris,
On Fri, Jul 28, 2006 at 09:44:40PM +0100, Chris Boot wrote:
I propose to develop a common way of registering and accessing GPIO pins on
various devices.
I've attached the gpio framework we have developed a while ago; it is
not ready for upstream, only tested on pxa and has probably several
other drawbacks, but may be a start for your activities. One of the
problems we've recently seen is that for example on PowerPCs you don't
have such a clear "this is gpio pin x" nomenclature, so the question
would be how to do the mapping here.
Right, my $0.02 worth:
1) The system does not currently allow for other GPIO sources
than the CPU. There are a variety of GPIOs, that could come
from expansion chips, on board CPLDs, etc.
2) The GPIO configuration from my last thought experiment have the
following properties for each pin:
input:
- input
- inverted input
output:
- normal output
- inverted output
- tristatable output
- open collector (can only pull to zero)
- open emmitor (can only pull to high)
The allowance of inverted outputs, is very useful to allow
drivers to assume either '0' or '1' is an active signal, allowing
per-board fixups when the designer suddely decides the best way
of connecting device A to B is via a spare inverter...
The other way would be to allow the mapping of '0' and '1' states
to either of the states:
- output 1
- output 0
- tri-state
The classing of tri-state as a seperate from input, is in case the
hardware does not see input as a valid state, or that input and
output are somehow different.
pull resistor:
- tristate (no resistor)
- pull low
- pull high
The input and output are seperate, assuming that there is the
possiblity the system can read back the line even if the GPIO
is set as an output.
3) The sysfs interface should be configurable, as systems
with lots of GPIO would end up with large numbers of
files and directories in sysfs.
4) you probably want to ensure pull-up resistors are off if the
output is being driven.
--
Ben (ben@xxxxxxxxx, http://www.fluff.org/)
'a smiley only costs 4 bytes'
-
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/
- Follow-Ups:
- Re: [RFC] Proposal: common kernel-wide GPIO interface
- From: Chris Boot
- Re: [RFC] Proposal: common kernel-wide GPIO interface
- References:
- [RFC] Proposal: common kernel-wide GPIO interface
- From: Chris Boot
- Re: [RFC] Proposal: common kernel-wide GPIO interface
- From: Robert Schwebel
- [RFC] Proposal: common kernel-wide GPIO interface
- Prev by Date: Re: REGRESSION: the new i386 timer code fails to sync CPUs
- Next by Date: [PATCH 18-rc3] Fix typos in /Documentation : 'Q'-'R'
- Previous by thread: Re: [RFC] Proposal: common kernel-wide GPIO interface
- Next by thread: Re: [RFC] Proposal: common kernel-wide GPIO interface
- Index(es):
Relevant Pages
|