mbox series

[V4,0/4] Add QSPI and QUPv3 DT nodes for SC7280 SoC

Message ID 1627306847-25308-1-git-send-email-rajpat@codeaurora.org
Headers show
Series Add QSPI and QUPv3 DT nodes for SC7280 SoC | expand

Message

Rajesh Patil July 26, 2021, 1:40 p.m. UTC
Roja Rani Yarubandi (4):
  arm64: dts: sc7280: Add QSPI node
  arm64: dts: sc7280: Add QUPv3 wrapper_0 nodes
  arm64: dts: sc7280: Update QUPv3 Debug UART DT node
  arm64: dts: sc7280: Add QUPv3 wrapper_1 nodes

 arch/arm64/boot/dts/qcom/sc7280-idp.dts |  133 +-
 arch/arm64/boot/dts/qcom/sc7280.dtsi    | 3169 +++++++++++++++++++++++--------
 2 files changed, 2482 insertions(+), 820 deletions(-)

Comments

Matthias Kaehlcke July 26, 2021, 3:42 p.m. UTC | #1
On Mon, Jul 26, 2021 at 07:10:46PM +0530, Rajesh Patil wrote:
> From: Roja Rani Yarubandi <rojay@codeaurora.org>
> 
> Update QUPv3 Debug UART DT node with the interconnect names and
> functions for SC7280 SoC.
> 
> Split the Debug UART pin control functions.
> 
> Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>
> Signed-off-by: Rajesh Patil <rajpat@codeaurora.org>
> ---
> Changes in V4:
>  - As per Bjorn's comment, posting this debug-uart node update
>    as seperate patch
> 
>  arch/arm64/boot/dts/qcom/sc7280-idp.dts | 18 +++++++-----------
>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 28 ++++++++++++++++++++++++----
>  2 files changed, 31 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dts b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> index f63cf51..a50c9e5 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> @@ -383,18 +383,14 @@
>  	bias-pull-up;
>  };
>  
> -&qup_uart5_default {
> -	tx {
> -		pins = "gpio46";
> -		drive-strength = <2>;
> -		bias-disable;
> -	};
> +&qup_uart5_tx {
> +	drive-strength = <2>;
> +	bias-disable;
> +};
>  
> -	rx {
> -		pins = "gpio47";
> -		drive-strength = <2>;
> -		bias-pull-up;
> -	};
> +&qup_uart5_rx {
> +	drive-strength = <2>;
> +	bias-pull-up;
>  };
>  
>  &sdc1_on {
> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> index 455e58f..951818f 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
> @@ -853,8 +853,13 @@
>  				clock-names = "se";
>  				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
>  				pinctrl-names = "default";
> -				pinctrl-0 = <&qup_uart5_default>;
> +				pinctrl-0 = <&qup_uart5_cts>, <&qup_uart5_rts>, <&qup_uart5_tx>, <&qup_uart5_rx>;
>  				interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
> +				power-domains = <&rpmhpd SC7280_CX>;
> +				operating-points-v2 = <&qup_opp_table>;
> +				interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
> +						<&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
> +				interconnect-names = "qup-core", "qup-config";


Most of the above should be added by patch '[2/4] arm64: dts: sc7280: Add QUPv3
wrapper_0 nodes'.

I have to say I dislike that the SoC DT file dictates which UART to use for
the serial console. Technically it could be any of them, right? uart5 is
used because that's what the IDP does, and the rest of the world is expected
to follow. Why not configure uart5 as "qcom,geni-uart" by default and
overwrite the compatible string and pinctrl in the board file? You could even
add 'qup-uartN-all' (or similar) pinconfigs to sc7280.dtsi, which would make
the changes in the board file trivial.
Matthias Kaehlcke July 26, 2021, 4:07 p.m. UTC | #2
On Mon, Jul 26, 2021 at 07:10:44PM +0530, Rajesh Patil wrote:
> From: Roja Rani Yarubandi <rojay@codeaurora.org>
> 
> Add QSPI DT node for SC7280 SoC.
> 
> Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>
> Signed-off-by: Rajesh Patil <rajpat@codeaurora.org>
> ---
> Changes in V4:
>  - As per Stephen's comment updated spi-max-frequency to 37.5MHz, moved
>    qspi_opp_table from /soc to / (root).
>    
> Changes in V3:
>  - Broken the huge V2 patch into 3 smaller patches.
>    1. QSPI DT nodes
>    2. QUP wrapper_0 DT nodes
>    3. QUP wrapper_1 DT nodes
>    
> Changes in V2:
>  - As per Doug's comments removed pinmux/pinconf subnodes.
>  - As per Doug's comments split of SPI, UART nodes has been done.
>  - Moved QSPI node before aps_smmu as per the order.
> 
>  arch/arm64/boot/dts/qcom/sc7280-idp.dts | 27 ++++++++++++++
>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 62 +++++++++++++++++++++++++++++++++
>  2 files changed, 89 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dts b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> index 73225e3..b0bfd8e 100644
> --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
> @@ -269,6 +269,20 @@
>  		};
>  };
>  
> +&qspi {
> +	status = "okay";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>;
> +
> +	flash@0 {
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <37500000>;
> +		spi-tx-bus-width = <2>;
> +		spi-rx-bus-width = <2>;
> +	};
> +};
> +
>  &qupv3_id_0 {
>  	status = "okay";
>  };
> @@ -346,6 +360,19 @@
>  
>  /* PINCTRL - additions to nodes defined in sc7280.dtsi */
>  
> +&qspi_cs0 {
> +	bias-disable;
> +};
> +
> +&qspi_clk {
> +	bias-disable;
> +};
> +
> +&qspi_data01 {
> +	/* High-Z when no transfers; nice to park the lines */
> +	bias-pull-up;
> +};
> +

This configures the SPI flash of the SC7280 IDP board, which is neither
mentioned in the subject nor the body of the commit message. IMO this
should be split out into a separate patch.
Stephen Boyd July 27, 2021, 12:14 a.m. UTC | #3
Quoting Rajesh Patil (2021-07-26 06:40:43)
> Roja Rani Yarubandi (4):
>   arm64: dts: sc7280: Add QSPI node
>   arm64: dts: sc7280: Add QUPv3 wrapper_0 nodes
>   arm64: dts: sc7280: Update QUPv3 Debug UART DT node
>   arm64: dts: sc7280: Add QUPv3 wrapper_1 nodes

Please include a changelog in the cover letter and Cc me on the
subsequent rounds of this series. Thanks.

>
>  arch/arm64/boot/dts/qcom/sc7280-idp.dts |  133 +-
>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 3169 +++++++++++++++++++++++--------
>  2 files changed, 2482 insertions(+), 820 deletions(-)
>
Rajesh Patil Aug. 11, 2021, 12:04 p.m. UTC | #4
On 2021-07-26 21:12, Matthias Kaehlcke wrote:
> On Mon, Jul 26, 2021 at 07:10:46PM +0530, Rajesh Patil wrote:
>> From: Roja Rani Yarubandi <rojay@codeaurora.org>
>> 
>> Update QUPv3 Debug UART DT node with the interconnect names and
>> functions for SC7280 SoC.
>> 
>> Split the Debug UART pin control functions.
>> 
>> Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>
>> Signed-off-by: Rajesh Patil <rajpat@codeaurora.org>
>> ---
>> Changes in V4:
>>  - As per Bjorn's comment, posting this debug-uart node update
>>    as seperate patch
>> 
>>  arch/arm64/boot/dts/qcom/sc7280-idp.dts | 18 +++++++-----------
>>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 28 
>> ++++++++++++++++++++++++----
>>  2 files changed, 31 insertions(+), 15 deletions(-)
>> 
>> diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dts 
>> b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
>> index f63cf51..a50c9e5 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts
>> +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dts
>> @@ -383,18 +383,14 @@
>>  	bias-pull-up;
>>  };
>> 
>> -&qup_uart5_default {
>> -	tx {
>> -		pins = "gpio46";
>> -		drive-strength = <2>;
>> -		bias-disable;
>> -	};
>> +&qup_uart5_tx {
>> +	drive-strength = <2>;
>> +	bias-disable;
>> +};
>> 
>> -	rx {
>> -		pins = "gpio47";
>> -		drive-strength = <2>;
>> -		bias-pull-up;
>> -	};
>> +&qup_uart5_rx {
>> +	drive-strength = <2>;
>> +	bias-pull-up;
>>  };
>> 
>>  &sdc1_on {
>> diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi 
>> b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> index 455e58f..951818f 100644
>> --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
>> @@ -853,8 +853,13 @@
>>  				clock-names = "se";
>>  				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
>>  				pinctrl-names = "default";
>> -				pinctrl-0 = <&qup_uart5_default>;
>> +				pinctrl-0 = <&qup_uart5_cts>, <&qup_uart5_rts>, <&qup_uart5_tx>, 
>> <&qup_uart5_rx>;
>>  				interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
>> +				power-domains = <&rpmhpd SC7280_CX>;
>> +				operating-points-v2 = <&qup_opp_table>;
>> +				interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt 
>> SLAVE_QUP_CORE_0 0>,
>> +						<&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
>> +				interconnect-names = "qup-core", "qup-config";
> 
> 
> Most of the above should be added by patch '[2/4] arm64: dts: sc7280: 
> Add QUPv3
> wrapper_0 nodes'.

Based on the comments on v3 [1], I have added this as a separate patch
[1] https://lore.kernel.org/patchwork/patch/1441257/

> 
> I have to say I dislike that the SoC DT file dictates which UART to use 
> for
> the serial console. Technically it could be any of them, right? uart5 
> is
> used because that's what the IDP does, and the rest of the world is 
> expected
> to follow. Why not configure uart5 as "qcom,geni-uart" by default and
> overwrite the compatible string and pinctrl in the board file? You 
> could even
> add 'qup-uartN-all' (or similar) pinconfigs to sc7280.dtsi, which would 
> make
> the changes in the board file trivial.

Okay, will make the compatible as "qcom,geni-uart" in SoC dt and later 
modify it in idp dts as "qcom,geni-debug-uart".

Thanks,
Rajesh
Rajesh Patil Aug. 11, 2021, 12:14 p.m. UTC | #5
On 2021-07-26 21:37, Matthias Kaehlcke wrote:
> On Mon, Jul 26, 2021 at 07:10:44PM +0530, Rajesh Patil wrote:

>> From: Roja Rani Yarubandi <rojay@codeaurora.org>

>> 

>> Add QSPI DT node for SC7280 SoC.

>> 

>> Signed-off-by: Roja Rani Yarubandi <rojay@codeaurora.org>

>> Signed-off-by: Rajesh Patil <rajpat@codeaurora.org>

>> ---

>> Changes in V4:

>>  - As per Stephen's comment updated spi-max-frequency to 37.5MHz, 

>> moved

>>    qspi_opp_table from /soc to / (root).

>> 

>> Changes in V3:

>>  - Broken the huge V2 patch into 3 smaller patches.

>>    1. QSPI DT nodes

>>    2. QUP wrapper_0 DT nodes

>>    3. QUP wrapper_1 DT nodes

>> 

>> Changes in V2:

>>  - As per Doug's comments removed pinmux/pinconf subnodes.

>>  - As per Doug's comments split of SPI, UART nodes has been done.

>>  - Moved QSPI node before aps_smmu as per the order.

>> 

>>  arch/arm64/boot/dts/qcom/sc7280-idp.dts | 27 ++++++++++++++

>>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 62 

>> +++++++++++++++++++++++++++++++++

>>  2 files changed, 89 insertions(+)

>> 

>> diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dts 

>> b/arch/arm64/boot/dts/qcom/sc7280-idp.dts

>> index 73225e3..b0bfd8e 100644

>> --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts

>> +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dts

>> @@ -269,6 +269,20 @@

>>  		};

>>  };

>> 

>> +&qspi {

>> +	status = "okay";

>> +	pinctrl-names = "default";

>> +	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>;

>> +

>> +	flash@0 {

>> +		compatible = "jedec,spi-nor";

>> +		reg = <0>;

>> +		spi-max-frequency = <37500000>;

>> +		spi-tx-bus-width = <2>;

>> +		spi-rx-bus-width = <2>;

>> +	};

>> +};

>> +

>>  &qupv3_id_0 {

>>  	status = "okay";

>>  };

>> @@ -346,6 +360,19 @@

>> 

>>  /* PINCTRL - additions to nodes defined in sc7280.dtsi */

>> 

>> +&qspi_cs0 {

>> +	bias-disable;

>> +};

>> +

>> +&qspi_clk {

>> +	bias-disable;

>> +};

>> +

>> +&qspi_data01 {

>> +	/* High-Z when no transfers; nice to park the lines */

>> +	bias-pull-up;

>> +};

>> +

> 

> This configures the SPI flash of the SC7280 IDP board, which is neither

> mentioned in the subject nor the body of the commit message. IMO this

> should be split out into a separate patch.


Okay.
Rajesh Patil Aug. 11, 2021, 12:14 p.m. UTC | #6
On 2021-07-27 05:44, Stephen Boyd wrote:
> Quoting Rajesh Patil (2021-07-26 06:40:43)

>> Roja Rani Yarubandi (4):

>>   arm64: dts: sc7280: Add QSPI node

>>   arm64: dts: sc7280: Add QUPv3 wrapper_0 nodes

>>   arm64: dts: sc7280: Update QUPv3 Debug UART DT node

>>   arm64: dts: sc7280: Add QUPv3 wrapper_1 nodes

> 

> Please include a changelog in the cover letter and Cc me on the

> subsequent rounds of this series. Thanks.

> 


Okay.

>> 

>>  arch/arm64/boot/dts/qcom/sc7280-idp.dts |  133 +-

>>  arch/arm64/boot/dts/qcom/sc7280.dtsi    | 3169 

>> +++++++++++++++++++++++--------

>>  2 files changed, 2482 insertions(+), 820 deletions(-)

>>