[PATCH 1/2] pinctrl: add pinctrl-mxs support
Shawn Guo
shawn.guo at linaro.org
Mon Apr 23 19:25:16 EDT 2012
On Mon, Apr 23, 2012 at 01:01:47PM -0600, Stephen Warren wrote:
> I can't really comment on what Dong was suggesting, but. The Tegra
> bindings have a 2-level binding - a top-level node per state, and then
> an arbitrary number of nodes that configuration something (mux, or
> config, or both) for an arbitrary set of pins. That allows you to
> represent any possible set of mux/config variations with no duplication
> of those mux/config values, e.g.:
>
> state_i2cmux_ddc: pinmux_i2cmux_ddc {
> ddc {
> nvidia,pins = "ddc";
> nvidia,function = "i2c2";
> };
> pta {
> nvidia,pins = "pta";
> nvidia,function = "rsvd4";
> };
> conf {
> nvidia,pins = "ddc", "pta";
> nvidia,pull = <1>;
> };
> };
>
> This is very flexible and about as minimal as you can get from a
> repetitiveness point-of-view.
>
> However, I guess it doesn't play too well into your desire to create the
> group and function definitions from device tree. That's part of the
> reason I don't like doing that; the SW desire to do that imposes
> artificial restrictions on the rest of the binding.
>
I think we have agreed that individual pin controller binding can
choose to create the groups and functions from device tree?
> > I think I have a understanding on "function" defined by pinctrl
> > subsystem. To me, mmc0-4bit and mmc0-8bit are two functions.
> > Linus, help clarify a little bit?
>
> I suppose there may be disagreement on this, but to me, a function is a
> specific mux option (the HW register value typically) that can be
> selected for a particular pin. Typically, these mux options would
> correspond directly to the HW module whose signals were being muxed onto
> that pin.
>
Yes, I have read the disagreement between you and Linus. I created
my understanding by reading Documentation/pinctrl.txt.
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list