[PATCH v4 2/2] ARM: dts: am33xx-l4: change #pinctrl-cells from 1 to 2
Tony Lindgren
tony at atomide.com
Mon Jan 18 02:41:00 EST 2021
* Drew Fustini <drew at beagleboard.org> [210115 21:40]:
> On Fri, Jan 15, 2021 at 07:02:01PM +0100, Emmanuel Vadot wrote:
> >
> > Hello Drew,
> >
> > On Wed, 1 Jul 2020 03:33:20 +0200
> > Drew Fustini <drew at beagleboard.org> wrote:
> >
> > > Increase #pinctrl-cells to 2 so that mux and conf be kept separate. This
> > > requires the AM33XX_PADCONF macro in omap.h to also be modified to keep pin
> > > conf and pin mux values separate.
> > >
> > > Signed-off-by: Drew Fustini <drew at beagleboard.org>
> > > ---
> > > arch/arm/boot/dts/am33xx-l4.dtsi | 2 +-
> > > include/dt-bindings/pinctrl/omap.h | 2 +-
> > > 2 files changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi
> > > index a9cbefc80c0c..3141590e5889 100644
> > > --- a/arch/arm/boot/dts/am33xx-l4.dtsi
> > > +++ b/arch/arm/boot/dts/am33xx-l4.dtsi
> > > @@ -278,7 +278,7 @@ scm: scm at 0 {
> > > am33xx_pinmux: pinmux at 800 {
> > > compatible = "pinctrl-single";
> > > reg = <0x800 0x238>;
> > > - #pinctrl-cells = <1>;
> > > + #pinctrl-cells = <2>;
> > > pinctrl-single,register-width = <32>;
> > > pinctrl-single,function-mask = <0x7f>;
> > > };
> > > diff --git a/include/dt-bindings/pinctrl/omap.h b/include/dt-bindings/pinctrl/omap.h
> > > index 625718042413..2d2a8c737822 100644
> > > --- a/include/dt-bindings/pinctrl/omap.h
> > > +++ b/include/dt-bindings/pinctrl/omap.h
> > > @@ -65,7 +65,7 @@
> > > #define DM814X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
> > > #define DM816X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
> > > #define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
> > > -#define AM33XX_PADCONF(pa, dir, mux) OMAP_IOPAD_OFFSET((pa), 0x0800) ((dir) | (mux))
> > > +#define AM33XX_PADCONF(pa, conf, mux) OMAP_IOPAD_OFFSET((pa), 0x0800) (conf) (mux)
> > >
> > > /*
> > > * Macros to allow using the offset from the padconf physical address
> > > --
> > > 2.25.1
> >
> > Based on the bindings doc a value of 2 is only acceptable if one uses
> > pinctrl-single,bits but all the am33xx pins still uses
> > pinctrl-single,pins.
> > I noticed this because this breaks FreeBSD when I tried with 5.9 dts.
> >
> > --
> > Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
>
> Hello Emmanuel,
>
> Sorry to hear about that. This change was made based on discussion with
> Tony Lindgren this past July. Trent Piepho later pointed out issues wtih
> the change including the binding documentation. I had tried to fix
> the documentation in September [1]. However, I notice that it seems I
> missed changing the lines near the top of pinctrl-single.txt [2]:
>
> - #pinctrl-cells : number of cells in addition to the index, set to 1
> for pinctrl-single,pins and 2 for pinctrl-single,bits
>
> I am thinking that should be re-written as:
>
> - #pinctrl-cells : number of cells in addition to the index, this value
> can be 1 or 2 for pinctrl-single,pins and must be 2 for pinctrl-single,bits
>
> Tony - what do you think?
Sounds good to me.
Regards,
Tony
> [1] https://lore.kernel.org/linux-gpio/20200919200836.3218536-1-drew@beagleboard.org/
> [2] https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
More information about the linux-arm-kernel
mailing list