[PATCH v2] ARM: dts: vf610: make pinctrl nodes board specific

Bill Pringlemeir bpringlemeir at nbsps.com
Thu Dec 12 14:32:28 EST 2013


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,

   #define VF610_NFC_PINGRP_8BIT \
     ...

   #define VF610_NFC_PINGRP_16BIT \
     VF610_NFC_PINGRP_8BIT        \
     VF610_PAD_PTD31__NF_IO15	0x28df \
     VF610_PAD_PTD30__NF_IO14	0x28df \
     VF610_PAD_PTD29__NF_IO13	0x28df \
     ...

It makes the board file look more straight forward,

   &nfc {  /* 16 bit with group in group */
           /* ... */
           pinctrl-names = "default";
           pinctrl-0 = <&pinctrl_nfc_16bit>;
   };

Versus,

   &nfc {  /* old way _OR_ separate groups */
           /* ... */
           pinctrl-names = "default";
           pinctrl-0 = <&pinctrl_nfc_8bit>; /* 8-bit */
           pinctrl-1 = <&pinctrl_nfc_16_bit>; /* 16-bit extras */
   };

Although for a 'multi-machine' configuration, the sharing maybe
appropriate?  But I guess that is your point; it is not helpful.  

Is a group within a group appropriate in vf610-pingrp.h?  Maybe a
comment?

Regards,
Bill Pringlemeir.



More information about the linux-arm-kernel mailing list