linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions
@ 2022-10-06 10:41 Krzysztof Kozlowski
  2022-10-06 10:41 ` [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 " Krzysztof Kozlowski
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-06 10:41 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

Configure UART1 and UART2 pins to respective functions in default state,
otherwise the pins might stay as GPIOs.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/sdm630.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index e119060ac56c..bc7c341e793c 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -723,6 +723,7 @@ tlmm: pinctrl@3100000 {
 
 			blsp1_uart1_default: blsp1-uart1-default {
 				pins = "gpio0", "gpio1", "gpio2", "gpio3";
+				function = "blsp_uart1";
 				drive-strength = <2>;
 				bias-disable;
 			};
@@ -735,6 +736,7 @@ blsp1_uart1_sleep: blsp1-uart1-sleep {
 
 			blsp1_uart2_default: blsp1-uart2-default {
 				pins = "gpio4", "gpio5";
+				function = "blsp_uart2";
 				drive-strength = <2>;
 				bias-disable;
 			};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 pin functions
  2022-10-06 10:41 [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Krzysztof Kozlowski
@ 2022-10-06 10:41 ` Krzysztof Kozlowski
  2022-10-07 19:39   ` Konrad Dybcio
  2022-10-06 10:41 ` [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema Krzysztof Kozlowski
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-06 10:41 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

The I2C8 pins are split into i2c8_a (GPIO30 and GPIO31) and i2c8_b
(GPIO44 and GPIO52).  Correct the name of function for I2C8 pins.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 arch/arm64/boot/dts/qcom/sdm630.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index bc7c341e793c..796c19b9b2eb 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -885,14 +885,14 @@ i2c7_sleep: i2c7-sleep {
 
 			i2c8_default: i2c8-default {
 				pins = "gpio30", "gpio31";
-				function = "blsp_i2c8";
+				function = "blsp_i2c8_a";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
 			i2c8_sleep: i2c8-sleep {
 				pins = "gpio30", "gpio31";
-				function = "blsp_i2c8";
+				function = "blsp_i2c8_a";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema
  2022-10-06 10:41 [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Krzysztof Kozlowski
  2022-10-06 10:41 ` [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 " Krzysztof Kozlowski
@ 2022-10-06 10:41 ` Krzysztof Kozlowski
  2022-10-07 19:40   ` Konrad Dybcio
  2022-10-06 10:41 ` [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema Krzysztof Kozlowski
  2022-10-07 19:38 ` [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Konrad Dybcio
  3 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-06 10:41 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

DT schema expects TLMM pin configuration nodes to be named with
'-state' suffix and their optional children with '-pins' suffix.  All
nodes for GPIOs must also define the function property.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../boot/dts/qcom/sda660-inforce-ifc6560.dts  |   6 +-
 .../dts/qcom/sdm630-sony-xperia-nile.dtsi     |  18 ++-
 arch/arm64/boot/dts/qcom/sdm630.dtsi          | 121 ++++++++----------
 .../sdm636-sony-xperia-ganges-mermaid.dts     |   2 +-
 .../boot/dts/qcom/sdm660-xiaomi-lavender.dts  |   6 +-
 5 files changed, 75 insertions(+), 78 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
index 28050bc5f081..f8f8a9f35e27 100644
--- a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
+++ b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
@@ -401,16 +401,18 @@ vreg_bob: bob {
 };
 
 &sdc2_state_on {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-pull-up;
 		drive-strength = <2>;
 	};
 };
 
 &sdc2_state_off {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-disable;
 		drive-strength = <2>;
 	};
diff --git a/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi b/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
index 09c07800793a..d604a9675508 100644
--- a/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
@@ -577,16 +577,18 @@ vreg_l19a_3p3: l19 {
 };
 
 &sdc2_state_on {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-pull-up;
 		drive-strength = <2>;
 	};
 };
 
 &sdc2_state_off {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-disable;
 		drive-strength = <2>;
 	};
@@ -615,33 +617,35 @@ &sdhc_2 {
 &tlmm {
 	gpio-reserved-ranges = <8 4>;
 
-	ts_int_active: ts-int-active {
+	ts_int_active: ts-int-active-state {
 		pins = "gpio45";
+		function = "gpio";
 		drive-strength = <8>;
 		bias-pull-up;
 	};
 
-	ts_lcd_id_active: ts-lcd-id-active {
+	ts_lcd_id_active: ts-lcd-id-active-state {
 		pins = "gpio56";
+		function = "gpio";
 		drive-strength = <8>;
 		bias-disable;
 	};
 
-	imx300_vana_default: imx300-vana-default {
+	imx300_vana_default: imx300-vana-default-state {
 		pins = "gpio50";
 		function = "gpio";
 		bias-disable;
 		drive-strength = <2>;
 	};
 
-	imx219_vana_default: imx219-vana-default {
+	imx219_vana_default: imx219-vana-default-state {
 		pins = "gpio51";
 		function = "gpio";
 		bias-disable;
 		drive-strength = <2>;
 	};
 
-	cam_vdig_default: cam-vdig-default {
+	cam_vdig_default: cam-vdig-default-state {
 		pins = "gpio52";
 		function = "gpio";
 		bias-disable;
diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index 796c19b9b2eb..41481493c1e5 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -721,35 +721,36 @@ tlmm: pinctrl@3100000 {
 			interrupt-controller;
 			#interrupt-cells = <2>;
 
-			blsp1_uart1_default: blsp1-uart1-default {
+			blsp1_uart1_default: blsp1-uart1-default-state {
 				pins = "gpio0", "gpio1", "gpio2", "gpio3";
 				function = "blsp_uart1";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			blsp1_uart1_sleep: blsp1-uart1-sleep {
+			blsp1_uart1_sleep: blsp1-uart1-sleep-state {
 				pins = "gpio0", "gpio1", "gpio2", "gpio3";
+				function = "gpio";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			blsp1_uart2_default: blsp1-uart2-default {
+			blsp1_uart2_default: blsp1-uart2-default-state {
 				pins = "gpio4", "gpio5";
 				function = "blsp_uart2";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			blsp2_uart1_default: blsp2-uart1-active {
-				tx-rts {
+			blsp2_uart1_default: blsp2-uart1-active-state {
+				tx-rts-pins {
 					pins = "gpio16", "gpio19";
 					function = "blsp_uart5";
 					drive-strength = <2>;
 					bias-disable;
 				};
 
-				rx {
+				rx-pins {
 					/*
 					 * Avoid garbage data while BT module
 					 * is powered off or not driving signal
@@ -760,7 +761,7 @@ rx {
 					bias-pull-up;
 				};
 
-				cts {
+				cts-pins {
 					/* Match the pull of the BT module */
 					pins = "gpio18";
 					function = "blsp_uart5";
@@ -769,15 +770,15 @@ cts {
 				};
 			};
 
-			blsp2_uart1_sleep: blsp2-uart1-sleep {
-				tx {
+			blsp2_uart1_sleep: blsp2-uart1-sleep-state {
+				tx-pins {
 					pins = "gpio16";
 					function = "gpio";
 					drive-strength = <2>;
 					bias-pull-up;
 				};
 
-				rx-cts-rts {
+				rx-cts-rts-pins {
 					pins = "gpio17", "gpio18", "gpio19";
 					function = "gpio";
 					drive-strength = <2>;
@@ -785,228 +786,216 @@ rx-cts-rts {
 				};
 			};
 
-			i2c1_default: i2c1-default {
+			i2c1_default: i2c1-default-state {
 				pins = "gpio2", "gpio3";
 				function = "blsp_i2c1";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c1_sleep: i2c1-sleep {
+			i2c1_sleep: i2c1-sleep-state {
 				pins = "gpio2", "gpio3";
 				function = "blsp_i2c1";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c2_default: i2c2-default {
+			i2c2_default: i2c2-default-state {
 				pins = "gpio6", "gpio7";
 				function = "blsp_i2c2";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c2_sleep: i2c2-sleep {
+			i2c2_sleep: i2c2-sleep-state {
 				pins = "gpio6", "gpio7";
 				function = "blsp_i2c2";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c3_default: i2c3-default {
+			i2c3_default: i2c3-default-state {
 				pins = "gpio10", "gpio11";
 				function = "blsp_i2c3";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c3_sleep: i2c3-sleep {
+			i2c3_sleep: i2c3-sleep-state {
 				pins = "gpio10", "gpio11";
 				function = "blsp_i2c3";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c4_default: i2c4-default {
+			i2c4_default: i2c4-default-state {
 				pins = "gpio14", "gpio15";
 				function = "blsp_i2c4";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c4_sleep: i2c4-sleep {
+			i2c4_sleep: i2c4-sleep-state {
 				pins = "gpio14", "gpio15";
 				function = "blsp_i2c4";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c5_default: i2c5-default {
+			i2c5_default: i2c5-default-state {
 				pins = "gpio18", "gpio19";
 				function = "blsp_i2c5";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c5_sleep: i2c5-sleep {
+			i2c5_sleep: i2c5-sleep-state {
 				pins = "gpio18", "gpio19";
 				function = "blsp_i2c5";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c6_default: i2c6-default {
+			i2c6_default: i2c6-default-state {
 				pins = "gpio22", "gpio23";
 				function = "blsp_i2c6";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c6_sleep: i2c6-sleep {
+			i2c6_sleep: i2c6-sleep-state {
 				pins = "gpio22", "gpio23";
 				function = "blsp_i2c6";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c7_default: i2c7-default {
+			i2c7_default: i2c7-default-state {
 				pins = "gpio26", "gpio27";
 				function = "blsp_i2c7";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c7_sleep: i2c7-sleep {
+			i2c7_sleep: i2c7-sleep-state {
 				pins = "gpio26", "gpio27";
 				function = "blsp_i2c7";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			i2c8_default: i2c8-default {
+			i2c8_default: i2c8-default-state {
 				pins = "gpio30", "gpio31";
 				function = "blsp_i2c8_a";
 				drive-strength = <2>;
 				bias-disable;
 			};
 
-			i2c8_sleep: i2c8-sleep {
+			i2c8_sleep: i2c8-sleep-state {
 				pins = "gpio30", "gpio31";
 				function = "blsp_i2c8_a";
 				drive-strength = <2>;
 				bias-pull-up;
 			};
 
-			cci0_default: cci0_default {
-				pinmux {
-					pins = "gpio36","gpio37";
-					function = "cci_i2c";
-				};
-
-				pinconf {
-					pins = "gpio36","gpio37";
-					bias-pull-up;
-					drive-strength = <2>;
-				};
+			cci0_default: cci0-default-state {
+				pins = "gpio36","gpio37";
+				function = "cci_i2c";
+				bias-pull-up;
+				drive-strength = <2>;
 			};
 
-			cci1_default: cci1_default {
-				pinmux {
-					pins = "gpio38","gpio39";
-					function = "cci_i2c";
-				};
-
-				pinconf {
-					pins = "gpio38","gpio39";
-					bias-pull-up;
-					drive-strength = <2>;
-				};
+			cci1_default: cci1-default-state {
+				pins = "gpio38","gpio39";
+				function = "cci_i2c";
+				bias-pull-up;
+				drive-strength = <2>;
 			};
 
-			sdc1_state_on: sdc1-on {
-				clk {
+			sdc1_state_on: sdc1-on-state {
+				clk-pins {
 					pins = "sdc1_clk";
 					bias-disable;
 					drive-strength = <16>;
 				};
 
-				cmd {
+				cmd-pins {
 					pins = "sdc1_cmd";
 					bias-pull-up;
 					drive-strength = <10>;
 				};
 
-				data {
+				data-pins {
 					pins = "sdc1_data";
 					bias-pull-up;
 					drive-strength = <10>;
 				};
 
-				rclk {
+				rclk-pins {
 					pins = "sdc1_rclk";
 					bias-pull-down;
 				};
 			};
 
-			sdc1_state_off: sdc1-off {
-				clk {
+			sdc1_state_off: sdc1-off-state {
+				clk-pins {
 					pins = "sdc1_clk";
 					bias-disable;
 					drive-strength = <2>;
 				};
 
-				cmd {
+				cmd-pins {
 					pins = "sdc1_cmd";
 					bias-pull-up;
 					drive-strength = <2>;
 				};
 
-				data {
+				data-pins {
 					pins = "sdc1_data";
 					bias-pull-up;
 					drive-strength = <2>;
 				};
 
-				rclk {
+				rclk-pins {
 					pins = "sdc1_rclk";
 					bias-pull-down;
 				};
 			};
 
-			sdc2_state_on: sdc2-on {
-				clk {
+			sdc2_state_on: sdc2-on-state {
+				clk-pins {
 					pins = "sdc2_clk";
 					bias-disable;
 					drive-strength = <16>;
 				};
 
-				cmd {
+				cmd-pins {
 					pins = "sdc2_cmd";
 					bias-pull-up;
 					drive-strength = <10>;
 				};
 
-				data {
+				data-pins {
 					pins = "sdc2_data";
 					bias-pull-up;
 					drive-strength = <10>;
 				};
 			};
 
-			sdc2_state_off: sdc2-off {
-				clk {
+			sdc2_state_off: sdc2-off-state {
+				clk-pins {
 					pins = "sdc2_clk";
 					bias-disable;
 					drive-strength = <2>;
 				};
 
-				cmd {
+				cmd-pins {
 					pins = "sdc2_cmd";
 					bias-pull-up;
 					drive-strength = <2>;
 				};
 
-				data {
+				data-pins {
 					pins = "sdc2_data";
 					bias-pull-up;
 					drive-strength = <2>;
diff --git a/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts b/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
index 58f687fc49e0..9702e5f59a1d 100644
--- a/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
+++ b/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
@@ -19,7 +19,7 @@ / {
 };
 
 &sdc2_state_on {
-	clk {
+	clk-pins {
 		drive-strength = <14>;
 	};
 };
diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
index a3559f6e34a5..270091db48fc 100644
--- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
+++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
@@ -372,16 +372,18 @@ &pm660l_wled {
 };
 
 &sdc2_state_on {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-pull-up;
 		drive-strength = <2>;
 	};
 };
 
 &sdc2_state_off {
-	sd-cd {
+	sd-cd-pins {
 		pins = "gpio54";
+		function = "gpio";
 		bias-disable;
 		drive-strength = <2>;
 	};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema
  2022-10-06 10:41 [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Krzysztof Kozlowski
  2022-10-06 10:41 ` [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 " Krzysztof Kozlowski
  2022-10-06 10:41 ` [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema Krzysztof Kozlowski
@ 2022-10-06 10:41 ` Krzysztof Kozlowski
  2022-10-06 12:27   ` Rob Herring
  2022-10-06 20:06   ` Rob Herring
  2022-10-07 19:38 ` [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Konrad Dybcio
  3 siblings, 2 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-06 10:41 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Konrad Dybcio, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel
  Cc: Krzysztof Kozlowski

Convert Qualcomm SDM630 and SDM660 pin controller bindings to DT schema.
Keep the parsing of pin configuration subnodes consistent with other
Qualcomm schemas (children named with '-state' suffix, their children
with '-pins').

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 .../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 189 +++++++++++++++++
 .../bindings/pinctrl/qcom,sdm660-pinctrl.txt  | 191 ------------------
 2 files changed, 189 insertions(+), 191 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
 delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt

diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
new file mode 100644
index 000000000000..057801652d1a
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
@@ -0,0 +1,189 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sdm630-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDM630 and SDM660 TLMM pin controller
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
+
+description:
+  Top Level Mode Multiplexer pin controller node in Qualcomm SDM630 and SDM660
+  SoC.
+
+allOf:
+  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - qcom,sdm630-pinctrl
+      - qcom,sdm660-pinctrl
+
+  reg:
+    maxItems: 3
+
+  reg-names:
+    items:
+      - const: south
+      - const: center
+      - const: north
+
+  interrupts: true
+  interrupt-controller: true
+  "#interrupt-cells": true
+  gpio-controller: true
+
+  gpio-reserved-ranges:
+    minItems: 1
+    maxItems: 57
+
+  gpio-line-names:
+    maxItems: 114
+
+  "#gpio-cells": true
+  gpio-ranges: true
+  wakeup-parent: true
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sdm630-tlmm-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sdm630-tlmm-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sdm630-tlmm-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          oneOf:
+            - pattern: "^gpio([0-9]|[1-9][0-9]|10[0-9]|11[0-3])$"
+            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc1_rclk, sdc2_clk,
+                      sdc2_cmd, sdc2_data ]
+        minItems: 1
+        maxItems: 36
+
+      function:
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+        enum: [ adsp_ext, agera_pll, atest_char, atest_char0, atest_char1,
+                atest_char2, atest_char3, atest_gpsadc0, atest_gpsadc1,
+                atest_tsens, atest_tsens2, atest_usb1, atest_usb10,
+                atest_usb11, atest_usb12, atest_usb13, atest_usb2, atest_usb20,
+                atest_usb21, atest_usb22, atest_usb23, audio_ref, bimc_dte0,
+                bimc_dte1, blsp_i2c1, blsp_i2c2, blsp_i2c3, blsp_i2c4,
+                blsp_i2c5, blsp_i2c6, blsp_i2c7, blsp_i2c8_a, blsp_i2c8_b,
+                blsp_spi1, blsp_spi2, blsp_spi3, blsp_spi3_cs1, blsp_spi3_cs2,
+                blsp_spi4, blsp_spi5, blsp_spi6, blsp_spi7, blsp_spi8_a,
+                blsp_spi8_b, blsp_spi8_cs1, blsp_spi8_cs2, blsp_uart1,
+                blsp_uart2, blsp_uart5, blsp_uart6_a, blsp_uart6_b, blsp_uim1,
+                blsp_uim2, blsp_uim5, blsp_uim6, cam_mclk, cci_async, cci_i2c,
+                cri_trng, cri_trng0, cri_trng1, dbg_out, ddr_bist, gcc_gp1,
+                gcc_gp2, gcc_gp3, gpio, gps_tx_a, gps_tx_b, gps_tx_c,
+                isense_dbg, jitter_bist, ldo_en, ldo_update, m_voc, mdp_vsync,
+                mdss_vsync0, mdss_vsync1, mdss_vsync2, mdss_vsync3, mss_lte,
+                nav_pps_a, nav_pps_b, nav_pps_c, pa_indicator, phase_flag0,
+                phase_flag1, phase_flag10, phase_flag11, phase_flag12,
+                phase_flag13, phase_flag14, phase_flag15, phase_flag16,
+                phase_flag17, phase_flag18, phase_flag19, phase_flag2,
+                phase_flag20, phase_flag21, phase_flag22, phase_flag23,
+                phase_flag24, phase_flag25, phase_flag26, phase_flag27,
+                phase_flag28, phase_flag29, phase_flag3, phase_flag30,
+                phase_flag31, phase_flag4, phase_flag5, phase_flag6,
+                phase_flag7, phase_flag8, phase_flag9, pll_bypassnl, pll_reset,
+                pri_mi2s, pri_mi2s_ws, prng_rosc, pwr_crypto, pwr_modem,
+                pwr_nav, qdss_cti0_a, qdss_cti0_b, qdss_cti1_a, qdss_cti1_b,
+                qdss_gpio, qdss_gpio0, qdss_gpio1, qdss_gpio10, qdss_gpio11,
+                qdss_gpio12, qdss_gpio13, qdss_gpio14, qdss_gpio15, qdss_gpio2,
+                qdss_gpio3, qdss_gpio4, qdss_gpio5, qdss_gpio6, qdss_gpio7,
+                qdss_gpio8, qdss_gpio9, qlink_enable, qlink_request, qspi_clk,
+                qspi_cs, qspi_data0, qspi_data1, qspi_data2, qspi_data3,
+                qspi_resetn, sec_mi2s, sndwire_clk, sndwire_data, sp_cmu,
+                ssc_irq, tgu_ch0, tgu_ch1, tsense_pwm1, tsense_pwm2, uim1_clk,
+                uim1_data, uim1_present, uim1_reset, uim2_clk, uim2_data,
+                uim2_present, uim2_reset, uim_batt, vfr_1, vsense_clkout,
+                vsense_data0, vsense_data1, vsense_mode, wlan1_adc0,
+                wlan1_adc1, wlan2_adc0, wlan2_adc1 ]
+
+      bias-disable: true
+      bias-pull-down: true
+      bias-pull-up: true
+      drive-strength: true
+      input-enable: true
+      output-high: true
+      output-low: true
+
+    required:
+      - pins
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    pinctrl@3100000 {
+        compatible = "qcom,sdm630-pinctrl";
+        reg = <0x03100000 0x400000>,
+              <0x03500000 0x400000>,
+              <0x03900000 0x400000>;
+        reg-names = "south", "center", "north";
+        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+        gpio-controller;
+        gpio-ranges = <&tlmm 0 0 114>;
+        #gpio-cells = <2>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+
+        blsp1-uart1-default-state {
+            pins = "gpio0", "gpio1", "gpio2", "gpio3";
+            function = "gpio";
+            drive-strength = <2>;
+            bias-disable;
+        };
+
+        blsp2_uart1_default: blsp2-uart1-active-state {
+            tx-rts-pins {
+                pins = "gpio16", "gpio19";
+                function = "blsp_uart5";
+                drive-strength = <2>;
+                bias-disable;
+            };
+
+            rx-pins {
+                pins = "gpio17";
+                function = "blsp_uart5";
+                drive-strength = <2>;
+                bias-pull-up;
+            };
+
+            cts-pins {
+                pins = "gpio18";
+                function = "blsp_uart5";
+                drive-strength = <2>;
+                bias-pull-down;
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
deleted file mode 100644
index be034d329e10..000000000000
--- a/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-Qualcomm Technologies, Inc. SDM660 TLMM block
-
-This binding describes the Top Level Mode Multiplexer block found in the
-SDM660 platform.
-
-- compatible:
-	Usage: required
-	Value type: <string>
-	Definition: must be "qcom,sdm660-pinctrl" or
-		    "qcom,sdm630-pinctrl".
-
-- reg:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: the base address and size of the north, center and south
-		    TLMM tiles.
-
-- reg-names:
-       Usage: required
-       Value type: <stringlist>
-       Definition: names for the cells of reg, must contain "north", "center"
-                   and "south".
-
-- interrupts:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: should specify the TLMM summary IRQ.
-
-- interrupt-controller:
-	Usage: required
-	Value type: <none>
-	Definition: identifies this node as an interrupt controller
-
-- #interrupt-cells:
-	Usage: required
-	Value type: <u32>
-	Definition: must be 2. Specifying the pin number and flags, as defined
-		    in <dt-bindings/interrupt-controller/irq.h>
-
-- gpio-controller:
-	Usage: required
-	Value type: <none>
-	Definition: identifies this node as a gpio controller
-
-- gpio-ranges:
-	Usage: required
-	Value type: <prop-encoded-array>
-	Definition: Specifies the mapping between gpio controller and
-		    pin-controller pins.
-
-- #gpio-cells:
-	Usage: required
-	Value type: <u32>
-	Definition: must be 2. Specifying the pin number and flags, as defined
-		    in <dt-bindings/gpio/gpio.h>
-
-Please refer to ../gpio/gpio.txt and ../interrupt-controller/interrupts.txt for
-a general description of GPIO and interrupt bindings.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-The pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-pin, a group, or a list of pins or groups. This configuration can include the
-mux function to select on those pin(s)/group(s), and various pin configuration
-parameters, such as pull-up, drive strength, etc.
-
-
-PIN CONFIGURATION NODES:
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-
-The following generic properties as defined in pinctrl-bindings.txt are valid
-to specify in a pin configuration subnode:
-
-- pins:
-	Usage: required
-	Value type: <string-array>
-	Definition: List of gpio pins affected by the properties specified in
-		    this subnode.  Valid pins are:
-		    gpio0-gpio113,
-		        Supports mux, bias and drive-strength
-		    sdc1_clk, sdc1_cmd, sdc1_data sdc2_clk, sdc2_cmd, sdc2_data sdc1_rclk,
-		        Supports bias and drive-strength
-
-- function:
-	Usage: required
-	Value type: <string>
-	Definition: Specify the alternative function to be configured for the
-		    specified pins. Functions are only valid for gpio pins.
-		    Valid values are:
-		    adsp_ext, agera_pll, atest_char, atest_char0, atest_char1,
-		    atest_char2, atest_char3, atest_gpsadc0, atest_gpsadc1,
-		    atest_tsens, atest_tsens2, atest_usb1, atest_usb10,
-		    atest_usb11, atest_usb12, atest_usb13, atest_usb2,
-		    atest_usb20, atest_usb21, atest_usb22, atest_usb23,
-		    audio_ref, bimc_dte0, bimc_dte1, blsp_i2c1, blsp_i2c2,
-		    blsp_i2c3, blsp_i2c4, blsp_i2c5, blsp_i2c6, blsp_i2c7,
-		    blsp_i2c8_a, blsp_i2c8_b, blsp_spi1, blsp_spi2, blsp_spi3,
-		    blsp_spi3_cs1, blsp_spi3_cs2, blsp_spi4, blsp_spi5,
-		    blsp_spi6, blsp_spi7, blsp_spi8_a, blsp_spi8_b,
-		    blsp_spi8_cs1, blsp_spi8_cs2, blsp_uart1, blsp_uart2,
-		    blsp_uart5, blsp_uart6_a, blsp_uart6_b, blsp_uim1,
-		    blsp_uim2, blsp_uim5, blsp_uim6, cam_mclk, cci_async,
-		    cci_i2c, cri_trng, cri_trng0, cri_trng1, dbg_out, ddr_bist,
-		    gcc_gp1, gcc_gp2, gcc_gp3, gpio, gps_tx_a, gps_tx_b, gps_tx_c,
-		    isense_dbg, jitter_bist, ldo_en, ldo_update, m_voc, mdp_vsync,
-		    mdss_vsync0, mdss_vsync1, mdss_vsync2, mdss_vsync3, mss_lte,
-		    nav_pps_a, nav_pps_b, nav_pps_c, pa_indicator, phase_flag0,
-		    phase_flag1, phase_flag10, phase_flag11, phase_flag12,
-		    phase_flag13, phase_flag14, phase_flag15, phase_flag16,
-		    phase_flag17, phase_flag18, phase_flag19, phase_flag2,
-		    phase_flag20, phase_flag21, phase_flag22, phase_flag23,
-		    phase_flag24, phase_flag25, phase_flag26, phase_flag27,
-		    phase_flag28, phase_flag29, phase_flag3, phase_flag30,
-		    phase_flag31, phase_flag4, phase_flag5, phase_flag6,
-		    phase_flag7, phase_flag8, phase_flag9, pll_bypassnl,
-		    pll_reset, pri_mi2s, pri_mi2s_ws, prng_rosc, pwr_crypto,
-		    pwr_modem, pwr_nav, qdss_cti0_a, qdss_cti0_b, qdss_cti1_a,
-		    qdss_cti1_b, qdss_gpio, qdss_gpio0, qdss_gpio1, qdss_gpio10,
-		    qdss_gpio11, qdss_gpio12, qdss_gpio13, qdss_gpio14, qdss_gpio15,
-		    qdss_gpio2, qdss_gpio3, qdss_gpio4, qdss_gpio5, qdss_gpio6,
-		    qdss_gpio7, qdss_gpio8, qdss_gpio9, qlink_enable, qlink_request,
-		    qspi_clk, qspi_cs, qspi_data0, qspi_data1, qspi_data2,
-		    qspi_data3, qspi_resetn, sec_mi2s, sndwire_clk, sndwire_data,
-		    sp_cmu, ssc_irq, tgu_ch0, tgu_ch1, tsense_pwm1, tsense_pwm2,
-		    uim1_clk, uim1_data, uim1_present, uim1_reset, uim2_clk,
-		    uim2_data, uim2_present, uim2_reset, uim_batt, vfr_1,
-		    vsense_clkout, vsense_data0, vsense_data1, vsense_mode,
-		    wlan1_adc0, wlan1_adc1, wlan2_adc0, wlan2_adc1
-
-- bias-disable:
-	Usage: optional
-	Value type: <none>
-	Definition: The specified pins should be configured as no pull.
-
-- bias-pull-down:
-	Usage: optional
-	Value type: <none>
-	Definition: The specified pins should be configured as pull down.
-
-- bias-pull-up:
-	Usage: optional
-	Value type: <none>
-	Definition: The specified pins should be configured as pull up.
-
-- output-high:
-	Usage: optional
-	Value type: <none>
-	Definition: The specified pins are configured in output mode, driven
-		    high.
-		    Not valid for sdc pins.
-
-- output-low:
-	Usage: optional
-	Value type: <none>
-	Definition: The specified pins are configured in output mode, driven
-		    low.
-		    Not valid for sdc pins.
-
-- drive-strength:
-	Usage: optional
-	Value type: <u32>
-	Definition: Selects the drive strength for the specified pins, in mA.
-		    Valid values are: 2, 4, 6, 8, 10, 12, 14 and 16
-
-Example:
-
-	tlmm: pinctrl@3100000 {
-		compatible = "qcom,sdm660-pinctrl";
-		reg = <0x3100000 0x200000>,
-		      <0x3500000 0x200000>,
-		      <0x3900000 0x200000>;
-		reg-names = "south", "center", "north";
-		interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
-		gpio-controller;
-		gpio-ranges = <&tlmm 0 0 114>;
-		#gpio-cells = <2>;
-		interrupt-controller;
-		#interrupt-cells = <2>;
-	};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema
  2022-10-06 10:41 ` [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema Krzysztof Kozlowski
@ 2022-10-06 12:27   ` Rob Herring
  2022-10-06 20:14     ` Krzysztof Kozlowski
  2022-10-06 20:06   ` Rob Herring
  1 sibling, 1 reply; 10+ messages in thread
From: Rob Herring @ 2022-10-06 12:27 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: devicetree, Rob Herring, Konrad Dybcio, Krzysztof Kozlowski,
	linux-arm-msm, linux-gpio, linux-kernel, Andy Gross,
	Linus Walleij, Bjorn Andersson

On Thu, 06 Oct 2022 12:41:04 +0200, Krzysztof Kozlowski wrote:
> Convert Qualcomm SDM630 and SDM660 pin controller bindings to DT schema.
> Keep the parsing of pin configuration subnodes consistent with other
> Qualcomm schemas (children named with '-state' suffix, their children
> with '-pins').
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 189 +++++++++++++++++
>  .../bindings/pinctrl/qcom,sdm660-pinctrl.txt  | 191 ------------------
>  2 files changed, 189 insertions(+), 191 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


pinctrl@3100000: 'blsp1-uart1-default', 'blsp1-uart1-sleep', 'blsp1-uart2-default', 'blsp2-uart1-active', 'blsp2-uart1-sleep', 'cam-vdig-default', 'cci0_default', 'cci1_default', 'i2c1-default', 'i2c1-sleep', 'i2c2-default', 'i2c2-sleep', 'i2c3-default', 'i2c3-sleep', 'i2c4-default', 'i2c4-sleep', 'i2c5-default', 'i2c5-sleep', 'i2c6-default', 'i2c6-sleep', 'i2c7-default', 'i2c7-sleep', 'i2c8-default', 'i2c8-sleep', 'imx219-vana-default', 'imx300-vana-default', 'sdc1-off', 'sdc1-on', 'sdc2-off', 'sdc2-on', 'ts-int-active', 'ts-lcd-id-active' do not match any of the regexes: '-state$', 'pinctrl-[0-9]+'
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb

pinctrl@3100000: 'blsp1-uart1-default', 'blsp1-uart1-sleep', 'blsp1-uart2-default', 'blsp2-uart1-active', 'blsp2-uart1-sleep', 'cci0_default', 'cci1_default', 'i2c1-default', 'i2c1-sleep', 'i2c2-default', 'i2c2-sleep', 'i2c3-default', 'i2c3-sleep', 'i2c4-default', 'i2c4-sleep', 'i2c5-default', 'i2c5-sleep', 'i2c6-default', 'i2c6-sleep', 'i2c7-default', 'i2c7-sleep', 'i2c8-default', 'i2c8-sleep', 'sdc1-off', 'sdc1-on', 'sdc2-off', 'sdc2-on' do not match any of the regexes: '-state$', 'pinctrl-[0-9]+'
	arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb
	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema
  2022-10-06 10:41 ` [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema Krzysztof Kozlowski
  2022-10-06 12:27   ` Rob Herring
@ 2022-10-06 20:06   ` Rob Herring
  1 sibling, 0 replies; 10+ messages in thread
From: Rob Herring @ 2022-10-06 20:06 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: linux-gpio, Linus Walleij, linux-arm-msm, Andy Gross,
	Krzysztof Kozlowski, devicetree, linux-kernel, Konrad Dybcio,
	Rob Herring, Bjorn Andersson

On Thu, 06 Oct 2022 12:41:04 +0200, Krzysztof Kozlowski wrote:
> Convert Qualcomm SDM630 and SDM660 pin controller bindings to DT schema.
> Keep the parsing of pin configuration subnodes consistent with other
> Qualcomm schemas (children named with '-state' suffix, their children
> with '-pins').
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
>  .../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 189 +++++++++++++++++
>  .../bindings/pinctrl/qcom,sdm660-pinctrl.txt  | 191 ------------------
>  2 files changed, 189 insertions(+), 191 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm630-pinctrl.yaml
>  delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm660-pinctrl.txt
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema
  2022-10-06 12:27   ` Rob Herring
@ 2022-10-06 20:14     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-06 20:14 UTC (permalink / raw)
  To: Rob Herring
  Cc: devicetree, Rob Herring, Konrad Dybcio, Krzysztof Kozlowski,
	linux-arm-msm, linux-gpio, linux-kernel, Andy Gross,
	Linus Walleij, Bjorn Andersson

On 06/10/2022 14:27, Rob Herring wrote:
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
> 
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
> 
> Full log is available here: https://patchwork.ozlabs.org/patch/
> 
> 
> pinctrl@3100000: 'blsp1-uart1-default', 'blsp1-uart1-sleep', 'blsp1-uart2-default', 'blsp2-uart1-active', 'blsp2-uart1-sleep', 'cam-vdig-default', 'cci0_default', 'cci1_default', 'i2c1-default', 'i2c1-sleep', 'i2c2-default', 'i2c2-sleep', 'i2c3-default', 'i2c3-sleep', 'i2c4-default', 'i2c4-sleep', 'i2c5-default', 'i2c5-sleep', 'i2c6-default', 'i2c6-sleep', 'i2c7-default', 'i2c7-sleep', 'i2c8-default', 'i2c8-sleep', 'imx219-vana-default', 'imx300-vana-default', 'sdc1-off', 'sdc1-on', 'sdc2-off', 'sdc2-on', 'ts-int-active', 'ts-lcd-id-active' do not match any of the regexes: '-state$', 'pinctrl-[0-9]+'
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb

This is fixed by earlier DTS patches in the series. Maybe they did not
apply cleanly.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions
  2022-10-06 10:41 [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Krzysztof Kozlowski
                   ` (2 preceding siblings ...)
  2022-10-06 10:41 ` [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema Krzysztof Kozlowski
@ 2022-10-07 19:38 ` Konrad Dybcio
  3 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2022-10-07 19:38 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel



On 6.10.2022 12:41, Krzysztof Kozlowski wrote:
> Configure UART1 and UART2 pins to respective functions in default state,
> otherwise the pins might stay as GPIOs.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>

Konrad
>  arch/arm64/boot/dts/qcom/sdm630.dtsi | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> index e119060ac56c..bc7c341e793c 100644
> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> @@ -723,6 +723,7 @@ tlmm: pinctrl@3100000 {
>  
>  			blsp1_uart1_default: blsp1-uart1-default {
>  				pins = "gpio0", "gpio1", "gpio2", "gpio3";
> +				function = "blsp_uart1";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
> @@ -735,6 +736,7 @@ blsp1_uart1_sleep: blsp1-uart1-sleep {
>  
>  			blsp1_uart2_default: blsp1-uart2-default {
>  				pins = "gpio4", "gpio5";
> +				function = "blsp_uart2";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 pin functions
  2022-10-06 10:41 ` [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 " Krzysztof Kozlowski
@ 2022-10-07 19:39   ` Konrad Dybcio
  0 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2022-10-07 19:39 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel



On 6.10.2022 12:41, Krzysztof Kozlowski wrote:
> The I2C8 pins are split into i2c8_a (GPIO30 and GPIO31) and i2c8_b
> (GPIO44 and GPIO52).  Correct the name of function for I2C8 pins.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>

Konrad
>  arch/arm64/boot/dts/qcom/sdm630.dtsi | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> index bc7c341e793c..796c19b9b2eb 100644
> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> @@ -885,14 +885,14 @@ i2c7_sleep: i2c7-sleep {
>  
>  			i2c8_default: i2c8-default {
>  				pins = "gpio30", "gpio31";
> -				function = "blsp_i2c8";
> +				function = "blsp_i2c8_a";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
>  			i2c8_sleep: i2c8-sleep {
>  				pins = "gpio30", "gpio31";
> -				function = "blsp_i2c8";
> +				function = "blsp_i2c8_a";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema
  2022-10-06 10:41 ` [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema Krzysztof Kozlowski
@ 2022-10-07 19:40   ` Konrad Dybcio
  0 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2022-10-07 19:40 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Andy Gross, Bjorn Andersson, Linus Walleij,
	Rob Herring, Krzysztof Kozlowski, linux-arm-msm, linux-gpio,
	devicetree, linux-kernel



On 6.10.2022 12:41, Krzysztof Kozlowski wrote:
> DT schema expects TLMM pin configuration nodes to be named with
> '-state' suffix and their optional children with '-pins' suffix.  All
> nodes for GPIOs must also define the function property.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>

Konrad
>  .../boot/dts/qcom/sda660-inforce-ifc6560.dts  |   6 +-
>  .../dts/qcom/sdm630-sony-xperia-nile.dtsi     |  18 ++-
>  arch/arm64/boot/dts/qcom/sdm630.dtsi          | 121 ++++++++----------
>  .../sdm636-sony-xperia-ganges-mermaid.dts     |   2 +-
>  .../boot/dts/qcom/sdm660-xiaomi-lavender.dts  |   6 +-
>  5 files changed, 75 insertions(+), 78 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
> index 28050bc5f081..f8f8a9f35e27 100644
> --- a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
> +++ b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
> @@ -401,16 +401,18 @@ vreg_bob: bob {
>  };
>  
>  &sdc2_state_on {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-pull-up;
>  		drive-strength = <2>;
>  	};
>  };
>  
>  &sdc2_state_off {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-disable;
>  		drive-strength = <2>;
>  	};
> diff --git a/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi b/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
> index 09c07800793a..d604a9675508 100644
> --- a/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
> @@ -577,16 +577,18 @@ vreg_l19a_3p3: l19 {
>  };
>  
>  &sdc2_state_on {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-pull-up;
>  		drive-strength = <2>;
>  	};
>  };
>  
>  &sdc2_state_off {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-disable;
>  		drive-strength = <2>;
>  	};
> @@ -615,33 +617,35 @@ &sdhc_2 {
>  &tlmm {
>  	gpio-reserved-ranges = <8 4>;
>  
> -	ts_int_active: ts-int-active {
> +	ts_int_active: ts-int-active-state {
>  		pins = "gpio45";
> +		function = "gpio";
>  		drive-strength = <8>;
>  		bias-pull-up;
>  	};
>  
> -	ts_lcd_id_active: ts-lcd-id-active {
> +	ts_lcd_id_active: ts-lcd-id-active-state {
>  		pins = "gpio56";
> +		function = "gpio";
>  		drive-strength = <8>;
>  		bias-disable;
>  	};
>  
> -	imx300_vana_default: imx300-vana-default {
> +	imx300_vana_default: imx300-vana-default-state {
>  		pins = "gpio50";
>  		function = "gpio";
>  		bias-disable;
>  		drive-strength = <2>;
>  	};
>  
> -	imx219_vana_default: imx219-vana-default {
> +	imx219_vana_default: imx219-vana-default-state {
>  		pins = "gpio51";
>  		function = "gpio";
>  		bias-disable;
>  		drive-strength = <2>;
>  	};
>  
> -	cam_vdig_default: cam-vdig-default {
> +	cam_vdig_default: cam-vdig-default-state {
>  		pins = "gpio52";
>  		function = "gpio";
>  		bias-disable;
> diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> index 796c19b9b2eb..41481493c1e5 100644
> --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
> @@ -721,35 +721,36 @@ tlmm: pinctrl@3100000 {
>  			interrupt-controller;
>  			#interrupt-cells = <2>;
>  
> -			blsp1_uart1_default: blsp1-uart1-default {
> +			blsp1_uart1_default: blsp1-uart1-default-state {
>  				pins = "gpio0", "gpio1", "gpio2", "gpio3";
>  				function = "blsp_uart1";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			blsp1_uart1_sleep: blsp1-uart1-sleep {
> +			blsp1_uart1_sleep: blsp1-uart1-sleep-state {
>  				pins = "gpio0", "gpio1", "gpio2", "gpio3";
> +				function = "gpio";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			blsp1_uart2_default: blsp1-uart2-default {
> +			blsp1_uart2_default: blsp1-uart2-default-state {
>  				pins = "gpio4", "gpio5";
>  				function = "blsp_uart2";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			blsp2_uart1_default: blsp2-uart1-active {
> -				tx-rts {
> +			blsp2_uart1_default: blsp2-uart1-active-state {
> +				tx-rts-pins {
>  					pins = "gpio16", "gpio19";
>  					function = "blsp_uart5";
>  					drive-strength = <2>;
>  					bias-disable;
>  				};
>  
> -				rx {
> +				rx-pins {
>  					/*
>  					 * Avoid garbage data while BT module
>  					 * is powered off or not driving signal
> @@ -760,7 +761,7 @@ rx {
>  					bias-pull-up;
>  				};
>  
> -				cts {
> +				cts-pins {
>  					/* Match the pull of the BT module */
>  					pins = "gpio18";
>  					function = "blsp_uart5";
> @@ -769,15 +770,15 @@ cts {
>  				};
>  			};
>  
> -			blsp2_uart1_sleep: blsp2-uart1-sleep {
> -				tx {
> +			blsp2_uart1_sleep: blsp2-uart1-sleep-state {
> +				tx-pins {
>  					pins = "gpio16";
>  					function = "gpio";
>  					drive-strength = <2>;
>  					bias-pull-up;
>  				};
>  
> -				rx-cts-rts {
> +				rx-cts-rts-pins {
>  					pins = "gpio17", "gpio18", "gpio19";
>  					function = "gpio";
>  					drive-strength = <2>;
> @@ -785,228 +786,216 @@ rx-cts-rts {
>  				};
>  			};
>  
> -			i2c1_default: i2c1-default {
> +			i2c1_default: i2c1-default-state {
>  				pins = "gpio2", "gpio3";
>  				function = "blsp_i2c1";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c1_sleep: i2c1-sleep {
> +			i2c1_sleep: i2c1-sleep-state {
>  				pins = "gpio2", "gpio3";
>  				function = "blsp_i2c1";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c2_default: i2c2-default {
> +			i2c2_default: i2c2-default-state {
>  				pins = "gpio6", "gpio7";
>  				function = "blsp_i2c2";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c2_sleep: i2c2-sleep {
> +			i2c2_sleep: i2c2-sleep-state {
>  				pins = "gpio6", "gpio7";
>  				function = "blsp_i2c2";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c3_default: i2c3-default {
> +			i2c3_default: i2c3-default-state {
>  				pins = "gpio10", "gpio11";
>  				function = "blsp_i2c3";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c3_sleep: i2c3-sleep {
> +			i2c3_sleep: i2c3-sleep-state {
>  				pins = "gpio10", "gpio11";
>  				function = "blsp_i2c3";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c4_default: i2c4-default {
> +			i2c4_default: i2c4-default-state {
>  				pins = "gpio14", "gpio15";
>  				function = "blsp_i2c4";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c4_sleep: i2c4-sleep {
> +			i2c4_sleep: i2c4-sleep-state {
>  				pins = "gpio14", "gpio15";
>  				function = "blsp_i2c4";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c5_default: i2c5-default {
> +			i2c5_default: i2c5-default-state {
>  				pins = "gpio18", "gpio19";
>  				function = "blsp_i2c5";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c5_sleep: i2c5-sleep {
> +			i2c5_sleep: i2c5-sleep-state {
>  				pins = "gpio18", "gpio19";
>  				function = "blsp_i2c5";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c6_default: i2c6-default {
> +			i2c6_default: i2c6-default-state {
>  				pins = "gpio22", "gpio23";
>  				function = "blsp_i2c6";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c6_sleep: i2c6-sleep {
> +			i2c6_sleep: i2c6-sleep-state {
>  				pins = "gpio22", "gpio23";
>  				function = "blsp_i2c6";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c7_default: i2c7-default {
> +			i2c7_default: i2c7-default-state {
>  				pins = "gpio26", "gpio27";
>  				function = "blsp_i2c7";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c7_sleep: i2c7-sleep {
> +			i2c7_sleep: i2c7-sleep-state {
>  				pins = "gpio26", "gpio27";
>  				function = "blsp_i2c7";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			i2c8_default: i2c8-default {
> +			i2c8_default: i2c8-default-state {
>  				pins = "gpio30", "gpio31";
>  				function = "blsp_i2c8_a";
>  				drive-strength = <2>;
>  				bias-disable;
>  			};
>  
> -			i2c8_sleep: i2c8-sleep {
> +			i2c8_sleep: i2c8-sleep-state {
>  				pins = "gpio30", "gpio31";
>  				function = "blsp_i2c8_a";
>  				drive-strength = <2>;
>  				bias-pull-up;
>  			};
>  
> -			cci0_default: cci0_default {
> -				pinmux {
> -					pins = "gpio36","gpio37";
> -					function = "cci_i2c";
> -				};
> -
> -				pinconf {
> -					pins = "gpio36","gpio37";
> -					bias-pull-up;
> -					drive-strength = <2>;
> -				};
> +			cci0_default: cci0-default-state {
> +				pins = "gpio36","gpio37";
> +				function = "cci_i2c";
> +				bias-pull-up;
> +				drive-strength = <2>;
>  			};
>  
> -			cci1_default: cci1_default {
> -				pinmux {
> -					pins = "gpio38","gpio39";
> -					function = "cci_i2c";
> -				};
> -
> -				pinconf {
> -					pins = "gpio38","gpio39";
> -					bias-pull-up;
> -					drive-strength = <2>;
> -				};
> +			cci1_default: cci1-default-state {
> +				pins = "gpio38","gpio39";
> +				function = "cci_i2c";
> +				bias-pull-up;
> +				drive-strength = <2>;
>  			};
>  
> -			sdc1_state_on: sdc1-on {
> -				clk {
> +			sdc1_state_on: sdc1-on-state {
> +				clk-pins {
>  					pins = "sdc1_clk";
>  					bias-disable;
>  					drive-strength = <16>;
>  				};
>  
> -				cmd {
> +				cmd-pins {
>  					pins = "sdc1_cmd";
>  					bias-pull-up;
>  					drive-strength = <10>;
>  				};
>  
> -				data {
> +				data-pins {
>  					pins = "sdc1_data";
>  					bias-pull-up;
>  					drive-strength = <10>;
>  				};
>  
> -				rclk {
> +				rclk-pins {
>  					pins = "sdc1_rclk";
>  					bias-pull-down;
>  				};
>  			};
>  
> -			sdc1_state_off: sdc1-off {
> -				clk {
> +			sdc1_state_off: sdc1-off-state {
> +				clk-pins {
>  					pins = "sdc1_clk";
>  					bias-disable;
>  					drive-strength = <2>;
>  				};
>  
> -				cmd {
> +				cmd-pins {
>  					pins = "sdc1_cmd";
>  					bias-pull-up;
>  					drive-strength = <2>;
>  				};
>  
> -				data {
> +				data-pins {
>  					pins = "sdc1_data";
>  					bias-pull-up;
>  					drive-strength = <2>;
>  				};
>  
> -				rclk {
> +				rclk-pins {
>  					pins = "sdc1_rclk";
>  					bias-pull-down;
>  				};
>  			};
>  
> -			sdc2_state_on: sdc2-on {
> -				clk {
> +			sdc2_state_on: sdc2-on-state {
> +				clk-pins {
>  					pins = "sdc2_clk";
>  					bias-disable;
>  					drive-strength = <16>;
>  				};
>  
> -				cmd {
> +				cmd-pins {
>  					pins = "sdc2_cmd";
>  					bias-pull-up;
>  					drive-strength = <10>;
>  				};
>  
> -				data {
> +				data-pins {
>  					pins = "sdc2_data";
>  					bias-pull-up;
>  					drive-strength = <10>;
>  				};
>  			};
>  
> -			sdc2_state_off: sdc2-off {
> -				clk {
> +			sdc2_state_off: sdc2-off-state {
> +				clk-pins {
>  					pins = "sdc2_clk";
>  					bias-disable;
>  					drive-strength = <2>;
>  				};
>  
> -				cmd {
> +				cmd-pins {
>  					pins = "sdc2_cmd";
>  					bias-pull-up;
>  					drive-strength = <2>;
>  				};
>  
> -				data {
> +				data-pins {
>  					pins = "sdc2_data";
>  					bias-pull-up;
>  					drive-strength = <2>;
> diff --git a/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts b/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
> index 58f687fc49e0..9702e5f59a1d 100644
> --- a/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts
> @@ -19,7 +19,7 @@ / {
>  };
>  
>  &sdc2_state_on {
> -	clk {
> +	clk-pins {
>  		drive-strength = <14>;
>  	};
>  };
> diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
> index a3559f6e34a5..270091db48fc 100644
> --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts
> @@ -372,16 +372,18 @@ &pm660l_wled {
>  };
>  
>  &sdc2_state_on {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-pull-up;
>  		drive-strength = <2>;
>  	};
>  };
>  
>  &sdc2_state_off {
> -	sd-cd {
> +	sd-cd-pins {
>  		pins = "gpio54";
> +		function = "gpio";
>  		bias-disable;
>  		drive-strength = <2>;
>  	};

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-10-07 19:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-06 10:41 [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Krzysztof Kozlowski
2022-10-06 10:41 ` [PATCH 2/4] arm64: dts: qcom: sdm630: correct I2C8 " Krzysztof Kozlowski
2022-10-07 19:39   ` Konrad Dybcio
2022-10-06 10:41 ` [PATCH 3/4] arm64: dts: qcom: sdm630: align TLMM pin configuration with DT schema Krzysztof Kozlowski
2022-10-07 19:40   ` Konrad Dybcio
2022-10-06 10:41 ` [PATCH 4/4] dt-bindings: pinctrl: qcom,sdm630: convert to dtschema Krzysztof Kozlowski
2022-10-06 12:27   ` Rob Herring
2022-10-06 20:14     ` Krzysztof Kozlowski
2022-10-06 20:06   ` Rob Herring
2022-10-07 19:38 ` [PATCH 1/4] arm64: dts: qcom: sdm630: add UART pin functions Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).