Linus Walleij wrote at Tuesday, August 23, 2011 6:51 AM: > On Tue, Aug 16, 2011 at 7:12 PM, Stephen Warren <swarren@xxxxxxxxxx> wrote: > > > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html