Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH 0/4] Add SPI0 support for IPQ5424
@ 2024-11-22 12:45 Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function Manikanta Mylavarapu
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-11-22 12:45 UTC (permalink / raw)
  To: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada

Add an SPI0 node to the IPQ5424 device tree and update the relevant
bindings, GPIO pin mappings accordingly.

Manikanta Mylavarapu (4):
  dt-bindings: pinctrl: qcom: update spi0 function
  pinctrl: qcom: ipq5424: split spi0 pin group
  arm64: dts: qcom: ipq5424: add spi0 node
  arm64: dts: qcom: ipq5424: configure spi0 node for rdp466

 .../bindings/pinctrl/qcom,ipq5424-tlmm.yaml   |  4 +-
 arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts   | 45 +++++++++++++++++++
 arch/arm64/boot/dts/qcom/ipq5424.dtsi         | 11 +++++
 drivers/pinctrl/qcom/pinctrl-ipq5424.c        | 34 ++++++++++----
 4 files changed, 84 insertions(+), 10 deletions(-)

-- 
2.34.1


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

* [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function
  2024-11-22 12:45 [PATCH 0/4] Add SPI0 support for IPQ5424 Manikanta Mylavarapu
@ 2024-11-22 12:45 ` Manikanta Mylavarapu
  2024-11-26  7:23   ` Krzysztof Kozlowski
  2024-11-22 12:45 ` [PATCH 2/4] pinctrl: qcom: ipq5424: split spi0 pin group Manikanta Mylavarapu
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-11-22 12:45 UTC (permalink / raw)
  To: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada

The GPIO configuration differs for the spi0 clk, cs, miso, mosi pins.
Therefore, split the spi0 pin group and document each pin function.

Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
---
 .../devicetree/bindings/pinctrl/qcom,ipq5424-tlmm.yaml        | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,ipq5424-tlmm.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,ipq5424-tlmm.yaml
index 5e64a232fc7a..df284d3645c1 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,ipq5424-tlmm.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,ipq5424-tlmm.yaml
@@ -79,8 +79,8 @@ $defs:
                 qdss_cti_trig_out_b0, qdss_cti_trig_in_b1, qdss_cti_trig_out_b1,
                 qdss_traceclk_a, qdss_tracectl_a, qdss_tracedata_a, qspi_clk,
                 qspi_cs, qspi_data, resout, rx0, rx1, rx2, sdc_clk, sdc_cmd,
-                sdc_data, spi0, spi1, spi10, spi11, tsens_max, uart0, uart1,
-                wci_txd, wci_rxd, wsi_clk, wsi_data ]
+                sdc_data, spi0_cs, spi0_clk, spi0_miso, spi0_mosi, spi1, spi10,
+                spi11, tsens_max, uart0, uart1, wci_txd, wci_rxd, wsi_clk, wsi_data ]
 
     required:
       - pins
-- 
2.34.1


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

* [PATCH 2/4] pinctrl: qcom: ipq5424: split spi0 pin group
  2024-11-22 12:45 [PATCH 0/4] Add SPI0 support for IPQ5424 Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function Manikanta Mylavarapu
@ 2024-11-22 12:45 ` Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 3/4] arm64: dts: qcom: ipq5424: add spi0 node Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466 Manikanta Mylavarapu
  3 siblings, 0 replies; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-11-22 12:45 UTC (permalink / raw)
  To: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada

The GPIO configuration differs for the spi0 clk, cs, miso, mosi pins.
Therefore, split the spi0 pin group and assign function to each pin
as per the specification.

Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
---
 drivers/pinctrl/qcom/pinctrl-ipq5424.c | 34 ++++++++++++++++++++------
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/drivers/pinctrl/qcom/pinctrl-ipq5424.c b/drivers/pinctrl/qcom/pinctrl-ipq5424.c
index 796299cd2e4e..0d610b076da3 100644
--- a/drivers/pinctrl/qcom/pinctrl-ipq5424.c
+++ b/drivers/pinctrl/qcom/pinctrl-ipq5424.c
@@ -233,7 +233,10 @@ enum ipq5424_functions {
 	msm_mux_sdc_clk,
 	msm_mux_sdc_cmd,
 	msm_mux_sdc_data,
-	msm_mux_spi0,
+	msm_mux_spi0_clk,
+	msm_mux_spi0_cs,
+	msm_mux_spi0_miso,
+	msm_mux_spi0_mosi,
 	msm_mux_spi1,
 	msm_mux_spi10,
 	msm_mux_spi11,
@@ -297,8 +300,8 @@ static const char * const qspi_clk_groups[] = {
 	"gpio5",
 };
 
-static const char * const spi0_groups[] = {
-	"gpio6", "gpio7", "gpio8", "gpio9",
+static const char * const spi0_clk_groups[] = {
+	"gpio6",
 };
 
 static const char * const pwm1_groups[] = {
@@ -315,14 +318,26 @@ static const char * const qdss_tracedata_a_groups[] = {
 	"gpio38", "gpio39",
 };
 
+static const char * const spi0_cs_groups[] = {
+	"gpio7",
+};
+
 static const char * const cri_trng1_groups[] = {
 	"gpio7",
 };
 
+static const char * const spi0_miso_groups[] = {
+	"gpio8",
+};
+
 static const char * const cri_trng2_groups[] = {
 	"gpio8",
 };
 
+static const char * const spi0_mosi_groups[] = {
+	"gpio9",
+};
+
 static const char * const cri_trng3_groups[] = {
 	"gpio9",
 };
@@ -680,7 +695,10 @@ static const struct pinfunction ipq5424_functions[] = {
 	MSM_PIN_FUNCTION(sdc_clk),
 	MSM_PIN_FUNCTION(sdc_cmd),
 	MSM_PIN_FUNCTION(sdc_data),
-	MSM_PIN_FUNCTION(spi0),
+	MSM_PIN_FUNCTION(spi0_clk),
+	MSM_PIN_FUNCTION(spi0_cs),
+	MSM_PIN_FUNCTION(spi0_miso),
+	MSM_PIN_FUNCTION(spi0_mosi),
 	MSM_PIN_FUNCTION(spi1),
 	MSM_PIN_FUNCTION(spi10),
 	MSM_PIN_FUNCTION(spi11),
@@ -700,10 +718,10 @@ static const struct msm_pingroup ipq5424_groups[] = {
 	PINGROUP(3, sdc_data, qspi_data, pwm2, _, _, _, _, _, _),
 	PINGROUP(4, sdc_cmd, qspi_cs, _, _, _, _, _, _, _),
 	PINGROUP(5, sdc_clk, qspi_clk, _, _, _, _, _, _, _),
-	PINGROUP(6, spi0, pwm1, _, cri_trng0, qdss_tracedata_a, _, _, _, _),
-	PINGROUP(7, spi0, pwm1, _, cri_trng1, qdss_tracedata_a, _, _, _, _),
-	PINGROUP(8, spi0, pwm1, wci_txd, wci_rxd, _, cri_trng2, qdss_tracedata_a, _, _),
-	PINGROUP(9, spi0, pwm1, _, cri_trng3, qdss_tracedata_a, _, _, _, _),
+	PINGROUP(6, spi0_clk, pwm1, _, cri_trng0, qdss_tracedata_a, _, _, _, _),
+	PINGROUP(7, spi0_cs, pwm1, _, cri_trng1, qdss_tracedata_a, _, _, _, _),
+	PINGROUP(8, spi0_miso, pwm1, wci_txd, wci_rxd, _, cri_trng2, qdss_tracedata_a, _, _),
+	PINGROUP(9, spi0_mosi, pwm1, _, cri_trng3, qdss_tracedata_a, _, _, _, _),
 	PINGROUP(10, uart0, pwm0, spi11, _, wci_txd, wci_rxd, _, qdss_tracedata_a, _),
 	PINGROUP(11, uart0, pwm0, spi1, _, wci_txd, wci_rxd, _, qdss_tracedata_a, _),
 	PINGROUP(12, uart0, pwm0, spi11, _, prng_rosc0, qdss_tracedata_a, _, _, _),
-- 
2.34.1


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

* [PATCH 3/4] arm64: dts: qcom: ipq5424: add spi0 node
  2024-11-22 12:45 [PATCH 0/4] Add SPI0 support for IPQ5424 Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 2/4] pinctrl: qcom: ipq5424: split spi0 pin group Manikanta Mylavarapu
@ 2024-11-22 12:45 ` Manikanta Mylavarapu
  2024-11-22 12:45 ` [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466 Manikanta Mylavarapu
  3 siblings, 0 replies; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-11-22 12:45 UTC (permalink / raw)
  To: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada

Add SPI0 node for IPQ5424 SoC.

Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
---
 arch/arm64/boot/dts/qcom/ipq5424.dtsi | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq5424.dtsi b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
index 5e219f900412..b4d736cd8610 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq5424.dtsi
@@ -201,6 +201,17 @@ uart1: serial@1a84000 {
 				clock-names = "se";
 				interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
 			};
+
+			spi0: spi@1a90000 {
+				compatible = "qcom,geni-spi";
+				reg = <0 0x01a90000 0 0x4000>;
+				clocks = <&gcc GCC_QUPV3_SPI0_CLK>;
+				clock-names = "se";
+				interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+				status = "disabled";
+			};
 		};
 
 		sdhc: mmc@7804000 {
-- 
2.34.1


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

* [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466
  2024-11-22 12:45 [PATCH 0/4] Add SPI0 support for IPQ5424 Manikanta Mylavarapu
                   ` (2 preceding siblings ...)
  2024-11-22 12:45 ` [PATCH 3/4] arm64: dts: qcom: ipq5424: add spi0 node Manikanta Mylavarapu
@ 2024-11-22 12:45 ` Manikanta Mylavarapu
  2024-12-05 17:30   ` Konrad Dybcio
  3 siblings, 1 reply; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-11-22 12:45 UTC (permalink / raw)
  To: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada

Enable the SPI0 node and configure the associated gpio pins.

Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
---
 arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 45 +++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
index d4d31026a026..6256216ca764 100644
--- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
+++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
@@ -23,6 +23,36 @@ &sleep_clk {
 };
 
 &tlmm {
+	spi0_default_state: spi0-default-state {
+		clk-pins {
+			pins = "gpio6";
+			function = "spi0_clk";
+			drive-strength = <8>;
+			bias-pull-down;
+		};
+
+		cs-pins {
+			pins = "gpio7";
+			function = "spi0_cs";
+			drive-strength = <8>;
+			bias-pull-up;
+		};
+
+		miso-pins {
+			pins = "gpio8";
+			function = "spi0_miso";
+			drive-strength = <8>;
+			bias-pull-down;
+		};
+
+		mosi-pins {
+			pins = "gpio9";
+			function = "spi0_mosi";
+			drive-strength = <8>;
+			bias-pull-down;
+		};
+	};
+
 	sdc_default_state: sdc-default-state {
 		clk-pins {
 			pins = "gpio5";
@@ -57,3 +87,18 @@ &xo_board {
 	clock-frequency = <24000000>;
 };
 
+&qupv3 {
+	spi0: spi@1a90000 {
+		pinctrl-0 = <&spi0_default_state>;
+		pinctrl-names = "default";
+		status = "okay";
+
+		flash@0 {
+			compatible = "micron,n25q128a11", "jedec,spi-nor";
+			reg = <0>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			spi-max-frequency = <50000000>;
+		};
+	};
+};
-- 
2.34.1


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

* Re: [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function
  2024-11-22 12:45 ` [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function Manikanta Mylavarapu
@ 2024-11-26  7:23   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-26  7:23 UTC (permalink / raw)
  To: Manikanta Mylavarapu
  Cc: andersson, linus.walleij, robh, krzk+dt, conor+dt, konradybcio,
	linux-arm-msm, linux-gpio, devicetree, linux-kernel,
	quic_srichara, quic_varada

On Fri, Nov 22, 2024 at 06:15:02PM +0530, Manikanta Mylavarapu wrote:
> The GPIO configuration differs for the spi0 clk, cs, miso, mosi pins.
> Therefore, split the spi0 pin group and document each pin function.
> 
> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
> ---

Missing Fixes tag.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


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

* Re: [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466
  2024-11-22 12:45 ` [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466 Manikanta Mylavarapu
@ 2024-12-05 17:30   ` Konrad Dybcio
  2024-12-09  6:43     ` Manikanta Mylavarapu
  0 siblings, 1 reply; 8+ messages in thread
From: Konrad Dybcio @ 2024-12-05 17:30 UTC (permalink / raw)
  To: Manikanta Mylavarapu, andersson, linus.walleij, robh, krzk+dt,
	conor+dt, konradybcio, linux-arm-msm, linux-gpio, devicetree,
	linux-kernel
  Cc: quic_srichara, quic_varada

On 22.11.2024 1:45 PM, Manikanta Mylavarapu wrote:
> Enable the SPI0 node and configure the associated gpio pins.
> 
> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
> ---
>  arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 45 +++++++++++++++++++++
>  1 file changed, 45 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
> index d4d31026a026..6256216ca764 100644
> --- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
> +++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
> @@ -23,6 +23,36 @@ &sleep_clk {
>  };
>  
>  &tlmm {
> +	spi0_default_state: spi0-default-state {
> +		clk-pins {
> +			pins = "gpio6";
> +			function = "spi0_clk";
> +			drive-strength = <8>;
> +			bias-pull-down;
> +		};
> +
> +		cs-pins {
> +			pins = "gpio7";
> +			function = "spi0_cs";
> +			drive-strength = <8>;
> +			bias-pull-up;
> +		};
> +
> +		miso-pins {
> +			pins = "gpio8";
> +			function = "spi0_miso";
> +			drive-strength = <8>;
> +			bias-pull-down;
> +		};
> +
> +		mosi-pins {
> +			pins = "gpio9";
> +			function = "spi0_mosi";
> +			drive-strength = <8>;
> +			bias-pull-down;
> +		};
> +	};
> +
>  	sdc_default_state: sdc-default-state {
>  		clk-pins {
>  			pins = "gpio5";
> @@ -57,3 +87,18 @@ &xo_board {
>  	clock-frequency = <24000000>;
>  };
>  
> +&qupv3 {
> +	spi0: spi@1a90000 {

&spi0 {
	pinctrl-0 = <..
	...
};

KonraD

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

* Re: [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466
  2024-12-05 17:30   ` Konrad Dybcio
@ 2024-12-09  6:43     ` Manikanta Mylavarapu
  0 siblings, 0 replies; 8+ messages in thread
From: Manikanta Mylavarapu @ 2024-12-09  6:43 UTC (permalink / raw)
  To: Konrad Dybcio, andersson, linus.walleij, robh, krzk+dt, conor+dt,
	konradybcio, linux-arm-msm, linux-gpio, devicetree, linux-kernel
  Cc: quic_srichara, quic_varada



On 12/5/2024 11:00 PM, Konrad Dybcio wrote:
> On 22.11.2024 1:45 PM, Manikanta Mylavarapu wrote:
>> Enable the SPI0 node and configure the associated gpio pins.
>>
>> Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
>> ---
>>  arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts | 45 +++++++++++++++++++++
>>  1 file changed, 45 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
>> index d4d31026a026..6256216ca764 100644
>> --- a/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
>> +++ b/arch/arm64/boot/dts/qcom/ipq5424-rdp466.dts
>> @@ -23,6 +23,36 @@ &sleep_clk {
>>  };
>>  
>>  &tlmm {
>> +	spi0_default_state: spi0-default-state {
>> +		clk-pins {
>> +			pins = "gpio6";
>> +			function = "spi0_clk";
>> +			drive-strength = <8>;
>> +			bias-pull-down;
>> +		};
>> +
>> +		cs-pins {
>> +			pins = "gpio7";
>> +			function = "spi0_cs";
>> +			drive-strength = <8>;
>> +			bias-pull-up;
>> +		};
>> +
>> +		miso-pins {
>> +			pins = "gpio8";
>> +			function = "spi0_miso";
>> +			drive-strength = <8>;
>> +			bias-pull-down;
>> +		};
>> +
>> +		mosi-pins {
>> +			pins = "gpio9";
>> +			function = "spi0_mosi";
>> +			drive-strength = <8>;
>> +			bias-pull-down;
>> +		};
>> +	};
>> +
>>  	sdc_default_state: sdc-default-state {
>>  		clk-pins {
>>  			pins = "gpio5";
>> @@ -57,3 +87,18 @@ &xo_board {
>>  	clock-frequency = <24000000>;
>>  };
>>  
>> +&qupv3 {
>> +	spi0: spi@1a90000 {
> 
> &spi0 {
> 	pinctrl-0 = <..
> 	...
> };
> 

Thanks for reviewing the patch.
I will update in the next version.

Thanks & Regards,
Manikanta.

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

end of thread, other threads:[~2024-12-09  6:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-22 12:45 [PATCH 0/4] Add SPI0 support for IPQ5424 Manikanta Mylavarapu
2024-11-22 12:45 ` [PATCH 1/4] dt-bindings: pinctrl: qcom: update spi0 function Manikanta Mylavarapu
2024-11-26  7:23   ` Krzysztof Kozlowski
2024-11-22 12:45 ` [PATCH 2/4] pinctrl: qcom: ipq5424: split spi0 pin group Manikanta Mylavarapu
2024-11-22 12:45 ` [PATCH 3/4] arm64: dts: qcom: ipq5424: add spi0 node Manikanta Mylavarapu
2024-11-22 12:45 ` [PATCH 4/4] arm64: dts: qcom: ipq5424: configure spi0 node for rdp466 Manikanta Mylavarapu
2024-12-05 17:30   ` Konrad Dybcio
2024-12-09  6:43     ` Manikanta Mylavarapu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox