[PATCH 1/3] pinctrl: pinctrl-imx: add imx pinctrl core driver
Dong Aisheng
aisheng.dong at freescale.com
Tue Apr 17 05:57:23 EDT 2012
On Mon, Apr 16, 2012 at 11:46:49AM +0800, Shawn Guo wrote:
> On Mon, Apr 16, 2012 at 11:47:14AM +0800, Dong Aisheng wrote:
> ...
> > Good suggestion.
> > I can do it and it's easy to change.
> > But as i said above, before the dtc macro support is available, the pinctrl
> > setting in dts file will be hard to read since it's all raw data.
> > It becomes
> > fsl,pins = <1 2 3 4 5 6 ....>;
> > People have to search the binding doc to see what the data means.
> >
> It does not make the thing any worse. You were asking people to search
> pinctrl-imx6q.c for the meaning of the following.
>
> fsl,mux = <0 0 1 1 1 1 1 1 1 1>;
>
> IMO, it makes a bit more sense to look at binding doc than code to
> understand the dts file.
>
Yes if this is binding rather than data.
> > The question is how long the dtc macro support will be available?
> > I'm very willing to do like as you said if it's just a short time.
> > But if it's long time, do we still want to lose the readability right now?
> >
> The point is with my suggestion taken, we do not need to change code
> when the dtc macro support is available.
>
Yes, that's the benefit.
I'm fine with both method, but i was personally a little intend to the
original one before dtc macro support is available(Stehpen said it's
possible not a short-term) since it's better readable.
But considering minimize the changes after convert many other platforms
to pinctrl subsystem, the new one may be a good choice.
Sascha & Shawn,
Just let you know:
After changes the pinctrl table may look like:
(i also removed fsl,* config properties since it was introduced for better
readability before, but after dtc macro support is available, it could also
be removed. So i removed now. Then the using is much similar as iomux-v3).
iomuxc at 020e0000 {
compatible = "fsl,imx6q-iomuxc";
reg = <0x020e0000 0x4000>;
/* shared pinctrl settings */
uart4 {
pinctrl_uart4_1: uart4grp-1 {
fsl,pins = <58 61>;
fsl,configs = <0x12407>
};
};
usdhc4 {
pinctrl_usdhc4_1: usdhc4grp-1 {
fsl,pins = <101 102 103 104 105 ...>;
fsl,configs = <0x12407>
};
};
};
When dt macro is available, it may be like:
/define/ MX6Q_UART_PAD_CTRL 0x12407 /* pull: 100KOhm Pull Up, speed: 50Mhz... */
/define/ MX6Q_USDHC_PAD_CTRL 0x12407 /* pull: 100KOhm Pull Up, speed: 50Mhz... */
iomuxc at 020e0000 {
compatible = "fsl,imx6q-iomuxc";
rt4 {
pinctrl_uart4_1: uart4grp-1 {
fsl,pins = <MX6Q_PAD_KEY_COL0__UART4_RX
MX6Q_PAD_KEY_ROW0__UART4_TX>;
fsl,configs = <MX6Q_UART_PAD_CTRL>
};
};
usdhc4 {
pinctrl_usdhc4_1: usdhc4grp-1 {
fsl,pins = <MX6Q_PAD_SD4_CMD__SD4_CMD
MX6Q_PAD_SD4_CLK__SD4_CLK
......>;
fsl,configs = <MX6Q_USDHC_PAD_CTRL>
};
};
};
If you're also fine with it, i will do like this.
Regards
Dong Aisheng
More information about the linux-arm-kernel
mailing list