Thread (41 messages) 41 messages, 7 authors, 2011-08-23

[RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT

From: Stephen Warren <hidden>
Date: 2011-08-23 18:50:29
Also in: linux-devicetree, linux-tegra, lkml

Linus Walleij wrote at Tuesday, August 23, 2011 6:51 AM:
On Tue, Aug 16, 2011 at 7:12 PM, Stephen Warren [off-list ref] wrote:
quoted
One issue here: There isn't always a single gpio/pinmux parent; as a
concrete example, the ALSA/ASoC driver for Tegra+WM8903 uses GPIOs both
from Tegra itself, and from the WM8903 audio codec.
The Ux500 have pinmuxing on the DB8500 and AB8500 - the latter
is a PMIC (&misc) connected to the DB8500 via I2C.

In the pincontrol subsystem I'm brewing, each of these will have
their own pin controller instance and their own struct gpio_chip as
well, so:

DB8500: pinctrl.0, gpio.0
AB8500: pinctrl.1, gpio.1
Makes sense to far.
Each GPIO chip may have it's respective pin controller as parent
I guess, or they may simply be the same struct device * whatdoIknow.
I'm not clear on why the GPIO and pinmux would have any kind of parent
relationship. Perhaps that's how your HW is designed. In Tegra, GPIO
and pinmux are completely separate HW blocks without much of a defined
relationship.

I can certainly see both being implemented by the same code if it makes
sense to do so. On Tegra, I think I'd still lean towards keeping them
as separate devices, since they have separate register spaces and are
documented separately etc. However, I can certainly see that other HW
might have both sets of functionality in one HW block.
I know this is vaporware, but does this reasoning hold also to
the Tegra+WM8903 combo?
-- 
nvpublic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help