[RFC PATCH v3 2/5] pinctrl: add dt binding support for pinmux mappings
Shawn Guo
shawn.guo at linaro.org
Sun Jan 8 20:56:27 EST 2012
On Sun, Jan 08, 2012 at 08:51:59PM +0800, Richard Zhao wrote:
...
> > > So, this does appear to be conflating the two things: The definition of
> > > what pins are in a pingroup, and the mux function for a particular
> > > setting of that pingroup. I think you need separate nodes for this.
> > >
> > At least for imx, we do not have mux function setting for pingroup.
> > Instead, it only applies to individual pin.
> I think it depends on function definition of pinmux driver. For the
> imx example patch, it's one-to-one.
It should depend on particular imx soc pinmux design rather than
pinmux driver. If it's always one-to-one case, we do not need
pinmux at all. Aisheng's patch just did not enumerate all the groups
for given function. Instead, it puts a couple simple examples there
for demonstration.
...
> > > uart4func: func at 1 {
> > > func-name = "uart4";
> > > locations = <&bargrp &bazgrp>;
> > > mux-value = <6 3>;
> > > };
> >
> > I prefer to have function node defined in <board>.dtsi, since it's
> > all about defining phandle to the correct pingroup, which should be
> > decided by board design.
> group and function are one-to-one mapped for imx.
Again, it's not the case.
> So if you put function
> in board dts, why not put pin group there too?
If we put pingroup data in <board>.dts, the data will be likely get
duplicated a lot in different board dts files. For example, if
imx6q-sabrelite chooses the same pingroup for usdhc3 and usdhc4 as
imx6q-arm2, the pingroup data will be duplicated between imx6q-arm2.dts
and imx6q-sabrelite.dts.
On the contrary, putting pingroup data in <soc>.dtsi and having function
node in <board>.dts with phandle pointing to the correct pingroup will
help avoid such data duplication.
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list