[PATCH v2] ARM: dts: vf610: make pinctrl nodes board specific
Shawn Guo
shawn.guo at linaro.org
Sat Dec 14 00:44:57 EST 2013
On Thu, Dec 12, 2013 at 03:12:50PM -0500, Bill Pringlemeir wrote:
> On 12 Dec 2013, bpringlemeir at nbsps.com wrote:
>
> > On 10 Dec 2013, shawn.guo at linaro.org wrote:
> >
> >> Currently, all pinctrl setting nodes are defined in <soc>.dtsi, so that
> >> boards that share the same pinctrl setting do not have to define it time
> >> and time again in <board>.dts. However, along with the devices and use
> >> cases being added continuously, the pinctrl setting nodes under iomuxc
> >> becomes more than expected. This bloats device tree blob for particular
> >> board unnecessarily since only a small subset of those pinctrl setting
> >> nodes will be used by the board. It impacts not only the DTB file size
> >> but also the run-time device tree lookup efficiency.
>
> >> arch/arm/boot/dts/vf610-pingrp.h | 127 ++++++++++++++++++++++++++
>
> > Thanks for including this file. I was looking a NAND flash and the
> > common configuration are 8/16 bit. This solution is better as,
>
> Actually, this is a generic file but we have,
>
> +#define VF610_SAI2_PINGRP1 \
> + VF610_PAD_PTA16__SAI2_TX_BCLK 0x02ed \
> + VF610_PAD_PTA18__SAI2_TX_DATA 0x02ee \
> + VF610_PAD_PTA19__SAI2_TX_SYNC 0x02ed \
> + VF610_PAD_PTA21__SAI2_RX_BCLK 0x02ed \
> + VF610_PAD_PTA22__SAI2_RX_DATA 0x02ed \
> + VF610_PAD_PTA23__SAI2_RX_SYNC 0x02ed \
> + VF610_PAD_PTB18__EXT_AUDIO_MCLK 0x02ed
>
> The SAI might not use 'VF610_PAD_PTB18__EXT_AUDIO_MCLK' nor either
> 'VF610_PAD_PTA16__SAI2_TX_BCLK' or 'VF610_PAD_PTA21__SAI2_RX_BCLK'.
> There are some pins that are absolutely needed for a module to function
> and then there are some optional pins.
>
> That said, this is nothing that you have changed. It was like this to
> begin with in the generic 'vf610.dtsi' file.
Yea, the PINGRP defined in vf610-pingrp.h should be generic rather than
board specific. It seems that VF610_SAI2_PINGRP1 is used nowhere for
now, so we can change it easily. Patch is welcomed.
Shawn
>
> For instance some designs may have NAND flash CS0 and CS1 and other may
> only include one (or they have no NAND at all). Anything that uses the
> NAND flash driver needs at least,
>
> VF610_PAD_PTD23__NF_IO7 0x28df
> VF610_PAD_PTD22__NF_IO6 0x28df
> VF610_PAD_PTD21__NF_IO5 0x28df
> VF610_PAD_PTD20__NF_IO4 0x28df
> VF610_PAD_PTD19__NF_IO3 0x28df
> VF610_PAD_PTD18__NF_IO2 0x28df
> VF610_PAD_PTD17__NF_IO1 0x28df
> VF610_PAD_PTD16__NF_IO0 0x28df
> VF610_PAD_PTB24__NF_WE_B 0x28c2
> VF610_PAD_PTB27__NF_RE_B 0x28c2
> VF610_PAD_PTC26__NF_RB_B 0x280d
> VF610_PAD_PTC27__NF_ALE 0x28c2
> VF610_PAD_PTC28__NF_CLE 0x28c2
>
> and one of,
>
> VF610_PAD_PTB25__NF_CE0_B 0x28c2
> VF610_PAD_PTB26__NF_CE1_B 0x28c2
>
> For the SAI, I am pretty sure that there are multiple master clocks
> possible and that for synchronous modes, only one TX or RX clk is needed
> and possibly the SYNC as well (I am thinking I2S). If these are generic
> definitions for any board, then maybe they should be separated more or
> the group should be 'VF610_TWR_SAI2_PINGRP1'; Ie, particular to the
> machine.
>
> Anyways, this is a pre-existing issue.
>
> Fwiw,
> Bill Pringlemeir.
More information about the linux-arm-kernel
mailing list