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.