Thread (15 messages) 15 messages, 7 authors, 2021-01-18

Re: [PATCH v4 2/2] ARM: dts: am33xx-l4: change #pinctrl-cells from 1 to 2

From: Drew Fustini <hidden>
Date: 2021-01-15 21:41:20
Also in: linux-arm-kernel, linux-devicetree, linux-omap, lkml

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 [off-list ref] wrote:
quoted
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 <redacted>
---
 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@0 {
 				am33xx_pinmux: pinmux@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 [off-list ref] [off-list ref]
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?


Thanks,
Drew

[1] https://lore.kernel.org/linux-gpio/20200919200836.3218536-1-drew@beagleboard.org/ (local)
[2] https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help