Messages in this thread | | | Date | Tue, 16 Aug 2011 16:45:42 +0200 | Subject | Re: [RFC PATCH v2 00/13] arm/tegra: Initialize GPIO & pinmux from DT | From | Linus Walleij <> |
| |
On Tue, Aug 16, 2011 at 4:37 PM, Arnd Bergmann <arnd@arndb.de> wrote: > On Tuesday 16 August 2011, Linus Walleij wrote: >> Say mmc instance 0 need pingroup foo on pincontroller bar >> means that there must be a specific reference from mmc.0:s >> struct device * to pinctrl bar:s struct device *. Maybe this is >> peanuts in DT, sorry not enough insight. > > I think what you are looking for is the equivalent of the > interrupt-parent property for pinmux. The idea is that each > node in the device tree can point to a device managing the > pinmux, so reference would point to a local number in that > space. We have discussed this for the GPIO case already, and > I suspect that the two should be identical (gpio-controller > and pinmux-controller using the same device node and same > property to refer to them).
Yes. I discussed with Grant and his idea is for e.g. advanced combined pincontrol + GPIO blocks that handle a lot of stuff like muxing, biasing and GPIO, to expose a single pinctrl device that in turn provide also a gpio_chip in addition to the pinctrl interfaces so tehy should be all on the same struct device *
> Since the pinmux-parent > (gpio-parent, ...) property gets inherited by all child > devices, you only need to set it once at the root of the > device tree for the simple case where there is only one > controller.
This will likely be the case for most of the advanced muxes I know of, OMAP, Tegra and Nomadik.
Thanks, Linus Walleij
| |