Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Aug 2012 17:45:27 -0700
From:      Tim Kientzle <tim@kientzle.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        gonzo@freebsd.org, freebsd-arm@freebsd.org
Subject:   Re: gpiobus_hinted_child >32 pins support, pin_getname method, and gpio-sysctl bridge patch
Message-ID:  <1501020F-38C8-44E9-82B3-64DF1090A983@kientzle.com>
In-Reply-To: <974EEF9B-08C2-4876-9223-48DD4ABDFC99@bsdimp.com>
References:  <20120819.171723.523519054460575158.hrs@allbsd.org> <8CDAB51C-14A0-42F0-8E16-43A3EABA2703@bsdimp.com> <E7C5ED5C-7120-4B69-9146-D9CC7A8E14C2@kientzle.com> <7E6C76BE-1D3F-40E4-BFE3-DC88715C234C@bsdimp.com> <12A967D8-BC49-49AF-BBD9-40E259932617@kientzle.com> <974EEF9B-08C2-4876-9223-48DD4ABDFC99@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Aug 19, 2012, at 4:42 PM, Warner Losh wrote:

>=20
> On Aug 19, 2012, at 5:04 PM, Tim Kientzle wrote:
>=20
>> On Aug 19, 2012, at 10:02 AM, Warner Losh wrote:
>>>=20
>>> On Aug 19, 2012, at 10:03 AM, Tim Kientzle wrote:
>>>=20
>>>> On Aug 19, 2012, at 8:38 AM, Warner Losh wrote:
>>>>=20
>>>>>=20
>>>>> In general, I like this code in the context of the current GPIO =
framework.  I've been growing dissatisfied with the current GPIO =
framework, however, and some of my comments reflect that more than any =
comments about this specific code.
>>>>=20
>>>> I noticed that Linux on BeagleBone does not
>>>> simply number all pins as we do.  Pins are identified by
>>>> two numbers:  a unit number and a pin number.
>>>=20
>>> Is this in the code, or just in the FTD?  On Atmel, there's a single =
number from 0 to max-1 with all negative numbers being invalid.  But =
Atmel doesn't have proper FTD support in Linux just yet (3.5 has a good =
start, and 3.6 will add the missing pinmux/pinctl stuff).
>>=20
>> I'm not exactly sure what you mean.  The Linux DTS file:
>>=20
>> =
http://git.kernel.org/?p=3Dlinux/kernel/git/torvalds/linux.git;a=3Dblob;f=3D=
arch/arm/boot/dts/am335x-bone.dts
>>=20
>> inherits most of the real functionality from
>>=20
>> =
http://git.kernel.org/?p=3Dlinux/kernel/git/torvalds/linux.git;a=3Dblob;f=3D=
arch/arm/boot/dts/am33xx.dtsi
>>=20
>> There are certainly separate entries there for each GPIO module.  I =
presume (but haven't verified) that the unit number maps directly to a =
"gpio#" device name.
>=20
> There's similar things in the Atmel DTS files, but under the covers =
the gpio pins map into a uniform space number 0 to 32*N-1, where N is =
the number of GPIO units.

The "under the covers" part is exactly what bothers me
about this.

I've been reading documentation that says things like
"LED#0 on the board is connected to GPIO#1 pin 13".  I'd
like to be able to take that to the command line and type in:
    $ gpio 1 13 on
or
    $ gpio /dev/gpio1 13 on
and see LED#0 turn on.

Since GPIO is used by a lot of folks interfacing new
hardware, this kind of translation between hardware
interface and software API needs to be trivial.

How would the linear addressing approach
handle, for example, hot-plugging of a device that
provided a USB interface to a group of GPIO pins?
(That is, it plugs into the USB port on the board
and provides a GPIO header on the other end.
Not vice versa. ;-)

Tim




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1501020F-38C8-44E9-82B3-64DF1090A983>