Messages in this thread | | | Date | Mon, 9 Jan 2012 09:56:27 +0800 | From | Shawn Guo <> | Subject | Re: [RFC PATCH v3 2/5] pinctrl: add dt binding support for pinmux mappings |
| |
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@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
| |