Commit 819fe8c9 authored by Volodymyr Babchuk's avatar Volodymyr Babchuk Committed by Bjorn Andersson
Browse files

arm64: dts: qcom: sa8155p-adp: fix SDHC2 CD pin configuration



There are two issues with SDHC2 configuration for SA8155P-ADP,
which prevent use of SDHC2 and causes issues with ethernet:

- Card Detect pin for SHDC2 on SA8155P-ADP is connected to gpio4 of
  PMM8155AU_1, not to SoC itself. SoC's gpio4 is used for DWMAC
  TX. If sdhc driver probes after dwmac driver, it reconfigures
  gpio4 and this breaks Ethernet MAC.

- pinctrl configuration mentions gpio96 as CD pin. It seems it was
  copied from some SM8150 example, because as mentioned above,
  correct CD pin is gpio4 on PMM8155AU_1.

This patch fixes both mentioned issues by providing correct pin handle
and pinctrl configuration.

Fixes: 0deb2624 ("arm64: dts: qcom: sa8155p-adp: Add support for uSD card")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarVolodymyr Babchuk <volodymyr_babchuk@epam.com>
Reviewed-by: default avatarStephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20240412190310.1647893-1-volodymyr_babchuk@epam.com


Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
parent ecda8309
Loading
Loading
Loading
Loading
+13 −17
Original line number Diff line number Diff line
@@ -367,6 +367,16 @@ queue0 {
	};
};

&pmm8155au_1_gpios {
	pmm8155au_1_sdc2_cd: sdc2-cd-default-state {
		pins = "gpio4";
		function = "normal";
		input-enable;
		bias-pull-up;
		power-source = <0>;
	};
};

&qupv3_id_1 {
	status = "okay";
};
@@ -384,10 +394,10 @@ &remoteproc_cdsp {
&sdhc_2 {
	status = "okay";

	cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
	cd-gpios = <&pmm8155au_1_gpios 4 GPIO_ACTIVE_LOW>;
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_on>;
	pinctrl-1 = <&sdc2_off>;
	pinctrl-0 = <&sdc2_on &pmm8155au_1_sdc2_cd>;
	pinctrl-1 = <&sdc2_off &pmm8155au_1_sdc2_cd>;
	vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
	vmmc-supply = <&vreg_l17a_2p96>;  /* Card power line */
	bus-width = <4>;
@@ -505,13 +515,6 @@ data-pins {
			bias-pull-up;		/* pull up */
			drive-strength = <16>;	/* 16 MA */
		};

		sd-cd-pins {
			pins = "gpio96";
			function = "gpio";
			bias-pull-up;		/* pull up */
			drive-strength = <2>;	/* 2 MA */
		};
	};

	sdc2_off: sdc2-off-state {
@@ -532,13 +535,6 @@ data-pins {
			bias-pull-up;		/* pull up */
			drive-strength = <2>;	/* 2 MA */
		};

		sd-cd-pins {
			pins = "gpio96";
			function = "gpio";
			bias-pull-up;		/* pull up */
			drive-strength = <2>;	/* 2 MA */
		};
	};

	usb2phy_ac_en1_default: usb2phy-ac-en1-default-state {