Re: [PATCH v2 06/10] ARM: tegra: tf701t: Tune MMC devices

Mikko Perttunen <[email protected]> Tue, 28 Jul 2026 21:09:28 +0900
Newsgroups org.kernel.vger.linux-tegra,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Tuesday, July 21, 2026 7:10=E2=80=AFPM Svyatoslav Ryhel wrote:
> Add SDR104 mode to WiFi SDIO and uSD device nodes, remove mmc-ddr-1_8v
> which is eMMC specific and improve their power sequences. The uSD card
> refuses to work reliably with fixed regulator and 1.8V IO supply. Adjust
> configuration to mimic setup proposed by the vendor in the downstream
> kernel. Add HS200 mode support to the eMMC sdmmc device node.
>=20
> Signed-off-by: Svyatoslav Ryhel <[email protected]>
> ---
>  .../boot/dts/nvidia/tegra114-asus-tf701t.dts  | 35 +++++++------------
>  1 file changed, 13 insertions(+), 22 deletions(-)
>=20
> diff --git a/arch/arm/boot/dts/nvidia/tegra114-asus-tf701t.dts b/arch/arm=
/boot/dts/nvidia/tegra114-asus-tf701t.dts
> index 83f8dd84d28a2..3de5c84d5f009 100644
> --- a/arch/arm/boot/dts/nvidia/tegra114-asus-tf701t.dts
> +++ b/arch/arm/boot/dts/nvidia/tegra114-asus-tf701t.dts
> @@ -1645,9 +1645,9 @@ ldo8 {
> =20
>  					vddio_usd: ldo9 {
>  						regulator-name =3D "vddio_usd";
> -						/* min voltage of 1.8v is not stable */
> -						regulator-min-microvolt =3D <2900000>;
> +						regulator-min-microvolt =3D <1800000>;
>  						regulator-max-microvolt =3D <2900000>;
> +						regulator-boot-on;
>  					};
> =20
>  					avdd_hdmi: ldoln {
> @@ -2350,9 +2350,9 @@ brcm_wifi_pwrseq: pwrseq-wifi {
>  		clocks =3D <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
>  		clock-names =3D "ext_clock";
> =20
> -		reset-gpios =3D <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
> -		post-power-on-delay-ms =3D <300>;
> -		power-off-delay-us =3D <300>;
> +		reset-gpios =3D <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
> +		post-power-on-delay-ms =3D <100>;
> +		power-off-delay-us =3D <100>;
>  	};
> =20
>  	/* WiFi */
> @@ -2372,9 +2372,7 @@ mmc@78000000 {
>  		non-removable;
> =20
>  		sd-uhs-ddr50;
> -		mmc-ddr-1_8v;
> -
> -		power-gpios =3D <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_HIGH>;
> +		sd-uhs-sdr104;
> =20
>  		nvidia,default-tap =3D <0x2>;
>  		nvidia,default-trim =3D <0x2>;
> @@ -2396,14 +2394,18 @@ wifi@1 {
>  	/* MicroSD card */
>  	mmc@78000400 {
>  		status =3D "okay";
> -
>  		bus-width =3D <4>;
> +
>  		cd-gpios =3D <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
> +		power-gpios =3D <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
> +
> +		sd-uhs-ddr50;
> +		sd-uhs-sdr104;
> =20
>  		nvidia,default-tap =3D <0x3>;
>  		nvidia,default-trim =3D <0x3>;
> =20
> -		vmmc-supply =3D <&vdd_2v9_usd>;
> +		vmmc-supply =3D <&vcore_emmc>;
>  		vqmmc-supply =3D <&vddio_usd>;
>  	};
> =20
> @@ -2414,6 +2416,7 @@ mmc@78000600 {
> =20
>  		non-removable;
>  		mmc-ddr-1_8v;
> +		mmc-hs200-1_8v;
> =20
>  		vmmc-supply =3D <&vcore_emmc>;
>  		vqmmc-supply =3D <&vdd_1v8_vio>;
> @@ -2608,17 +2611,6 @@ hdmi_5v0_sys: regulator-hdmi {
>  		vin-supply =3D <&vdd_smps10_out2>;
>  	};
> =20
> -	vdd_2v9_usd: regulator-vdd-usd {
> -		compatible =3D "regulator-fixed";
> -		regulator-name =3D "vdd_sd_slot";
> -		regulator-min-microvolt =3D <2900000>;
> -		regulator-max-microvolt =3D <2900000>;
> -		regulator-boot-on;
> -		gpio =3D <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
> -		enable-active-high;
> -		vin-supply =3D <&vcore_emmc>;
> -	};
> -
>  	vdd_1v8_cam: regulator-cam-vio {
>  		compatible =3D "regulator-fixed";
>  		regulator-name =3D "vdd_1v8_cam";
> @@ -2655,7 +2647,6 @@ vdd_3v3_com: regulator-com {
>  		regulator-name =3D "vdd_3v3_com";
>  		regulator-min-microvolt =3D <3300000>;
>  		regulator-max-microvolt =3D <3300000>;
> -		regulator-always-on;
>  		regulator-boot-on;
>  		gpio =3D <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
>  		enable-active-high;
> --=20
> 2.53.0
>=20
>=20

Which vendor BSP are you referencing? The one I have seems to set=20
MMC_UHS_MASK_DDR50, but I'm not quite sure what board definitions these=20
devices are actually using.