Pinmux bindings proposal

Stephen Warren swarren at nvidia.com
Fri Jan 27 11:58:47 EST 2012


Linus Walleij wrote at Friday, January 27, 2012 5:01 AM:
> On Fri, Jan 20, 2012 at 9:28 PM, Stephen Warren <swarren at nvidia.com> wrote:
> > Dong Aisheng wrote at Wednesday, January 18, 2012 4:06 AM:
> >>
> >> Each entry in the list is PIN rather than group.
> >> So we cannot create each map for each entry in the list except we treat the PIN as
> >> A group(this will cause a huge maps and predefined groups and functions).
> >
> > Linusw has NAKd the idea that we should not use these "virtual groups",
> > i.e. he believes they're fine to use if you wish.
> 
> Interesting double inversion here: I NACK to NOT use groups
> this way...

I don't think that's true.

If you did that, you would be /forcing/ people to use virtual pin groups,
which means that the Tegra driver I proposed wouldn't be acceptable
since it only defines groups that actually exist in HW.

> The groups are not "virtual" if they share some physical
> property. Such as being used by the same device.

No, that's not what a virtual group is (I'm the person who came up
with that term, and really the only person using it, so I get to decide
what I mean by it!) I suppose you can mean something different, but that's
just going to be ridiculously confusing.

In HW, there are individual register fields. Each one of these affects
often a single pin, but on some chips n pins at a time. A physical
group would be precisely those groups of pins which the actual HW
registers affect. A virtual group is a SW group that ends up affecting
more than one of those physical groups, since when a virtual groups is
programmed, the pinctrl driver goes and programs n register fields and
hence affects n physical groups.

And those registers and either physical or virtual groups don't have to
be anything to do with muxing. On Tegra, there are certainly groups that
only affect e.g. drive strength and not mux selection.

-- 
nvpublic




More information about the linux-arm-kernel mailing list