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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>

Not sure if I still stand by this...

> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxxxxxx>
> > ---
> > Changes since v1:
> > - v1 can be seen here: https://lore.kernel.org/linux-arm-msm/20221220113616.1556097-1-bhupesh.sharma@xxxxxxxxxx/
> > - 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@xxxxxxxxxx/

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>;



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux