diff mbox series

[v2] arm64: dts: qcom: sm6115: Move SDHC node(s)'s 'pinctrl' properties to dts

Message ID 20230314074001.1873781-1-bhupesh.sharma@linaro.org (mailing list archive)
State Accepted
Commit 27ad7815cb70cbfdcbee4368f41033e83731479f
Headers show
Series [v2] arm64: dts: qcom: sm6115: Move SDHC node(s)'s 'pinctrl' properties to dts | expand

Commit Message

Bhupesh Sharma March 14, 2023, 7:40 a.m. UTC
Normally the 'pinctrl' properties of a SDHC controller and the
chip detect pin settings are dependent on the type of the slots
(for e.g uSD card slot), regulators and GPIO(s) available on the
board(s).

So, move the same from the sm6115 dtsi file to the respective
board file(s).

Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
---
Changes since v1:
- v1 can be seen here: https://lore.kernel.org/linux-arm-msm/20221220113616.1556097-1-bhupesh.sharma@linaro.org/
- Colleted the R-B from Marijn.
- Rebased on linux-next/master

 .../boot/dts/qcom/sm4250-oneplus-billie2.dts  | 10 +++++++++
 arch/arm64/boot/dts/qcom/sm6115.dtsi          | 22 -------------------
 2 files changed, 10 insertions(+), 22 deletions(-)

Comments

Konrad Dybcio March 14, 2023, 10:09 a.m. UTC | #1
On 14.03.2023 08:40, Bhupesh Sharma wrote:
> Normally the 'pinctrl' properties of a SDHC controller and the
> chip detect pin settings are dependent on the type of the slots
> (for e.g uSD card slot), regulators and GPIO(s) available on the
> board(s).
> 
> So, move the same from the sm6115 dtsi file to the respective
> board file(s).
So, file or files? :D

> 
> Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
> ---
> Changes since v1:
> - v1 can be seen here: https://lore.kernel.org/linux-arm-msm/20221220113616.1556097-1-bhupesh.sharma@linaro.org/
> - Colleted the R-B from Marijn.
> - Rebased on linux-next/master
> 
>  .../boot/dts/qcom/sm4250-oneplus-billie2.dts  | 10 +++++++++
>  arch/arm64/boot/dts/qcom/sm6115.dtsi          | 22 -------------------
>  2 files changed, 10 insertions(+), 22 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> index a3f1c7c41fd73..329eb496bbc5f 100644
> --- a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> +++ b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> @@ -202,12 +202,22 @@ &sdhc_2 {
>  	vqmmc-supply = <&vreg_l5a>;
>  
>  	cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
> +	pinctrl-names = "default", "sleep";
> +	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
> +	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
This should have been

pinctrl-n
pinctrl-names

I made a mistake in my lenovo dts if that was your reference..

You should also mention that the implicit removal of sdhci1's
gpio properties from the lenovo j606f and oneplus billie2 is intentional
as they both use UFS instead of eMMC.

And one more thing, you missed bringing the CD pin back into pinctrl-0/1
in the tab dts. I'd really appreciate if you could fix up that ordering
mess I mentioned above while at it.

Konrad
>  
>  	status = "okay";
>  };
>  
>  &tlmm {
>  	gpio-reserved-ranges = <14 4>;
> +
> +	sdc2_card_det_n: sd-card-det-n-state {
> +		pins = "gpio88";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-pull-up;
> +	};
>  };
>  
>  &ufs_mem_hc {
> diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
> index fbd67d2c8d781..e8e5f2cafebb9 100644
> --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
> @@ -595,13 +595,6 @@ data-pins {
>  					bias-pull-up;
>  					drive-strength = <10>;
>  				};
> -
> -				sd-cd-pins {
> -					pins = "gpio88";
> -					function = "gpio";
> -					bias-pull-up;
> -					drive-strength = <2>;
> -				};
>  			};
>  
>  			sdc2_state_off: sdc2-off-state {
> @@ -622,13 +615,6 @@ data-pins {
>  					bias-pull-up;
>  					drive-strength = <2>;
>  				};
> -
> -				sd-cd-pins {
> -					pins = "gpio88";
> -					function = "gpio";
> -					bias-disable;
> -					drive-strength = <2>;
> -				};
>  			};
>  		};
>  
> @@ -731,10 +717,6 @@ sdhc_1: mmc@4744000 {
>  				 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
>  			clock-names = "iface", "core", "xo", "ice";
>  
> -			pinctrl-0 = <&sdc1_state_on>;
> -			pinctrl-1 = <&sdc1_state_off>;
> -			pinctrl-names = "default", "sleep";
> -
>  			bus-width = <8>;
>  			status = "disabled";
>  		};
> @@ -753,10 +735,6 @@ sdhc_2: mmc@4784000 {
>  				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
>  			clock-names = "iface", "core", "xo";
>  
> -			pinctrl-0 = <&sdc2_state_on>;
> -			pinctrl-1 = <&sdc2_state_off>;
> -			pinctrl-names = "default", "sleep";
> -
>  			power-domains = <&rpmpd SM6115_VDDCX>;
>  			operating-points-v2 = <&sdhc2_opp_table>;
>  			iommus = <&apps_smmu 0x00a0 0x0>;
Marijn Suijten March 14, 2023, 11:36 a.m. UTC | #2
On 2023-03-14 11:09:41, Konrad Dybcio wrote:
> 
> 
> On 14.03.2023 08:40, Bhupesh Sharma wrote:
> > Normally the 'pinctrl' properties of a SDHC controller and the
> > chip detect pin settings are dependent on the type of the slots
> > (for e.g uSD card slot), regulators and GPIO(s) available on the
> > board(s).
> > 
> > So, move the same from the sm6115 dtsi file to the respective
> > board file(s).
> So, file or files? :D
> 
> > 
> > Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>

Not sure if I still stand by this...

> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
> > ---
> > Changes since v1:
> > - v1 can be seen here: https://lore.kernel.org/linux-arm-msm/20221220113616.1556097-1-bhupesh.sharma@linaro.org/
> > - Colleted the R-B from Marijn.
> > - Rebased on linux-next/master
> > 
> >  .../boot/dts/qcom/sm4250-oneplus-billie2.dts  | 10 +++++++++
> >  arch/arm64/boot/dts/qcom/sm6115.dtsi          | 22 -------------------
> >  2 files changed, 10 insertions(+), 22 deletions(-)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> > index a3f1c7c41fd73..329eb496bbc5f 100644
> > --- a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> > +++ b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
> > @@ -202,12 +202,22 @@ &sdhc_2 {
> >  	vqmmc-supply = <&vreg_l5a>;
> >  
> >  	cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
> > +	pinctrl-names = "default", "sleep";
> > +	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
> > +	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
> This should have been
> 
> pinctrl-n
> pinctrl-names
> 
> I made a mistake in my lenovo dts if that was your reference..
> 
> You should also mention that the implicit removal of sdhci1's
> gpio properties from the lenovo j606f and oneplus billie2 is intentional
> as they both use UFS instead of eMMC.

IMO we should keep the default sdc1_on/off_state in sdhci1 and sdhci2.
That node is disabled anyway.  Only removable sdhci's need the pinctrl
extended with the CD pin (and whether that's done with a new pinctrl
node, or by adding the pin to &sdcX_on/off_state varies per SoC).  I
mentioned this in:

https://lore.kernel.org/linux-arm-msm/48607619-3a7b-a9d7-1e6a-c24f52539671@linaro.org/

But no-one gave their opinion.

In other words: it seems odd to define the sdcX_on/off_state in SoC DTS,
but then always require the board DTS to wire it up to the specific
sdhc_X node (when that is only needed when extending pinctrl-X with an
extra CD state).

> And one more thing, you missed bringing the CD pin back into pinctrl-0/1
> in the tab dts. I'd really appreciate if you could fix up that ordering
> mess I mentioned above while at it.
> 
> Konrad
> >  
> >  	status = "okay";
> >  };
> >  
> >  &tlmm {
> >  	gpio-reserved-ranges = <14 4>;
> > +
> > +	sdc2_card_det_n: sd-card-det-n-state {
> > +		pins = "gpio88";
> > +		function = "gpio";
> > +		drive-strength = <2>;
> > +		bias-pull-up;
> > +	};
> >  };
> >  
> >  &ufs_mem_hc {
> > diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
> > index fbd67d2c8d781..e8e5f2cafebb9 100644
> > --- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
> > @@ -595,13 +595,6 @@ data-pins {
> >  					bias-pull-up;
> >  					drive-strength = <10>;
> >  				};
> > -
> > -				sd-cd-pins {
> > -					pins = "gpio88";
> > -					function = "gpio";
> > -					bias-pull-up;
> > -					drive-strength = <2>;
> > -				};
> >  			};
> >  
> >  			sdc2_state_off: sdc2-off-state {
> > @@ -622,13 +615,6 @@ data-pins {
> >  					bias-pull-up;
> >  					drive-strength = <2>;
> >  				};
> > -
> > -				sd-cd-pins {
> > -					pins = "gpio88";
> > -					function = "gpio";
> > -					bias-disable;
> > -					drive-strength = <2>;
> > -				};
> >  			};
> >  		};
> >  
> > @@ -731,10 +717,6 @@ sdhc_1: mmc@4744000 {
> >  				 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
> >  			clock-names = "iface", "core", "xo", "ice";
> >  
> > -			pinctrl-0 = <&sdc1_state_on>;
> > -			pinctrl-1 = <&sdc1_state_off>;
> > -			pinctrl-names = "default", "sleep";
> > -

In other words, IMO this should stay:
- if it is not used for a removable card, this is adequate
  (only boards with a removable card on sdhc1 would have to update these
  properties or the referenced pinctrl state with CD pin);
- the node is disabled by default anyway.

> >  			bus-width = <8>;
> >  			status = "disabled";
> >  		};
> > @@ -753,10 +735,6 @@ sdhc_2: mmc@4784000 {
> >  				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
> >  			clock-names = "iface", "core", "xo";
> >  
> > -			pinctrl-0 = <&sdc2_state_on>;
> > -			pinctrl-1 = <&sdc2_state_off>;
> > -			pinctrl-names = "default", "sleep";
> > -

And we could keep this for exactly the same reason.

- Marijn

> >  			power-domains = <&rpmpd SM6115_VDDCX>;
> >  			operating-points-v2 = <&sdhc2_opp_table>;
> >  			iommus = <&apps_smmu 0x00a0 0x0>;
Bjorn Andersson March 22, 2023, 2:45 p.m. UTC | #3
On Tue, 14 Mar 2023 13:10:01 +0530, Bhupesh Sharma wrote:
> Normally the 'pinctrl' properties of a SDHC controller and the
> chip detect pin settings are dependent on the type of the slots
> (for e.g uSD card slot), regulators and GPIO(s) available on the
> board(s).
> 
> So, move the same from the sm6115 dtsi file to the respective
> board file(s).
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: qcom: sm6115: Move SDHC node(s)'s 'pinctrl' properties to dts
      commit: 27ad7815cb70cbfdcbee4368f41033e83731479f

Best regards,
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
index a3f1c7c41fd73..329eb496bbc5f 100644
--- a/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
+++ b/arch/arm64/boot/dts/qcom/sm4250-oneplus-billie2.dts
@@ -202,12 +202,22 @@  &sdhc_2 {
 	vqmmc-supply = <&vreg_l5a>;
 
 	cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>;
+	pinctrl-names = "default", "sleep";
+	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
+	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
 
 	status = "okay";
 };
 
 &tlmm {
 	gpio-reserved-ranges = <14 4>;
+
+	sdc2_card_det_n: sd-card-det-n-state {
+		pins = "gpio88";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-pull-up;
+	};
 };
 
 &ufs_mem_hc {
diff --git a/arch/arm64/boot/dts/qcom/sm6115.dtsi b/arch/arm64/boot/dts/qcom/sm6115.dtsi
index fbd67d2c8d781..e8e5f2cafebb9 100644
--- a/arch/arm64/boot/dts/qcom/sm6115.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6115.dtsi
@@ -595,13 +595,6 @@  data-pins {
 					bias-pull-up;
 					drive-strength = <10>;
 				};
-
-				sd-cd-pins {
-					pins = "gpio88";
-					function = "gpio";
-					bias-pull-up;
-					drive-strength = <2>;
-				};
 			};
 
 			sdc2_state_off: sdc2-off-state {
@@ -622,13 +615,6 @@  data-pins {
 					bias-pull-up;
 					drive-strength = <2>;
 				};
-
-				sd-cd-pins {
-					pins = "gpio88";
-					function = "gpio";
-					bias-disable;
-					drive-strength = <2>;
-				};
 			};
 		};
 
@@ -731,10 +717,6 @@  sdhc_1: mmc@4744000 {
 				 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
 			clock-names = "iface", "core", "xo", "ice";
 
-			pinctrl-0 = <&sdc1_state_on>;
-			pinctrl-1 = <&sdc1_state_off>;
-			pinctrl-names = "default", "sleep";
-
 			bus-width = <8>;
 			status = "disabled";
 		};
@@ -753,10 +735,6 @@  sdhc_2: mmc@4784000 {
 				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
 			clock-names = "iface", "core", "xo";
 
-			pinctrl-0 = <&sdc2_state_on>;
-			pinctrl-1 = <&sdc2_state_off>;
-			pinctrl-names = "default", "sleep";
-
 			power-domains = <&rpmpd SM6115_VDDCX>;
 			operating-points-v2 = <&sdhc2_opp_table>;
 			iommus = <&apps_smmu 0x00a0 0x0>;