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

From: Mikko Perttunen

Date: Thu Jul 30 2026 - 04:06:15 EST


On Tuesday, July 28, 2026 11:17 PM Svyatoslav Ryhel wrote:
> вт, 28 лип. 2026 р. о 15:09 Mikko Perttunen <mperttunen@xxxxxxxxxx> пише:
> >
> > On Tuesday, July 21, 2026 7:10 PM 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.
> > >
> > > Signed-off-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx>
> > > ---
> > > .../boot/dts/nvidia/tegra114-asus-tf701t.dts | 35 +++++++------------
> > > 1 file changed, 13 insertions(+), 22 deletions(-)
> > >
> > > 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 {
> > >
> > > vddio_usd: ldo9 {
> > > regulator-name = "vddio_usd";
> > > - /* min voltage of 1.8v is not stable */
> > > - regulator-min-microvolt = <2900000>;
> > > + regulator-min-microvolt = <1800000>;
> > > regulator-max-microvolt = <2900000>;
> > > + regulator-boot-on;
> > > };
> > >
> > > avdd_hdmi: ldoln {
> > > @@ -2350,9 +2350,9 @@ brcm_wifi_pwrseq: pwrseq-wifi {
> > > clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
> > > clock-names = "ext_clock";
> > >
> > > - reset-gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
> > > - post-power-on-delay-ms = <300>;
> > > - power-off-delay-us = <300>;
> > > + reset-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
> > > + post-power-on-delay-ms = <100>;
> > > + power-off-delay-us = <100>;
> > > };
> > >
> > > /* WiFi */
> > > @@ -2372,9 +2372,7 @@ mmc@78000000 {
> > > non-removable;
> > >
> > > sd-uhs-ddr50;
> > > - mmc-ddr-1_8v;
> > > -
> > > - power-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_HIGH>;
> > > + sd-uhs-sdr104;
> > >
> > > nvidia,default-tap = <0x2>;
> > > nvidia,default-trim = <0x2>;
> > > @@ -2396,14 +2394,18 @@ wifi@1 {
> > > /* MicroSD card */
> > > mmc@78000400 {
> > > status = "okay";
> > > -
> > > bus-width = <4>;
> > > +
> > > cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
> > > + power-gpios = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
> > > +
> > > + sd-uhs-ddr50;
> > > + sd-uhs-sdr104;
> > >
> > > nvidia,default-tap = <0x3>;
> > > nvidia,default-trim = <0x3>;
> > >
> > > - vmmc-supply = <&vdd_2v9_usd>;
> > > + vmmc-supply = <&vcore_emmc>;
> > > vqmmc-supply = <&vddio_usd>;
> > > };
> > >
> > > @@ -2414,6 +2416,7 @@ mmc@78000600 {
> > >
> > > non-removable;
> > > mmc-ddr-1_8v;
> > > + mmc-hs200-1_8v;
> > >
> > > vmmc-supply = <&vcore_emmc>;
> > > vqmmc-supply = <&vdd_1v8_vio>;
> > > @@ -2608,17 +2611,6 @@ hdmi_5v0_sys: regulator-hdmi {
> > > vin-supply = <&vdd_smps10_out2>;
> > > };
> > >
> > > - vdd_2v9_usd: regulator-vdd-usd {
> > > - compatible = "regulator-fixed";
> > > - regulator-name = "vdd_sd_slot";
> > > - regulator-min-microvolt = <2900000>;
> > > - regulator-max-microvolt = <2900000>;
> > > - regulator-boot-on;
> > > - gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_HIGH>;
> > > - enable-active-high;
> > > - vin-supply = <&vcore_emmc>;
> > > - };
> > > -
> > > vdd_1v8_cam: regulator-cam-vio {
> > > compatible = "regulator-fixed";
> > > regulator-name = "vdd_1v8_cam";
> > > @@ -2655,7 +2647,6 @@ vdd_3v3_com: regulator-com {
> > > regulator-name = "vdd_3v3_com";
> > > regulator-min-microvolt = <3300000>;
> > > regulator-max-microvolt = <3300000>;
> > > - regulator-always-on;
> > > regulator-boot-on;
> > > gpio = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
> > > enable-active-high;
> > > --
> > > 2.53.0
> > >
> > >
> >
> > Which vendor BSP are you referencing? The one I have seems to set
> > MMC_UHS_MASK_DDR50, but I'm not quite sure what board definitions these
> > devices are actually using.
> >
>
> TF701T is based on Macallan board file. Downstream sets
> MMC_UHS_MASK_DDR50 for sdmmc 1 and 2 (sd and wifi) and no flags for
> mmc. From extensive testing on the device I can confirm that sdr104
> mode can be used on sd and wifi sdmmc (in addition to ddr50 which is
> not removed). Same story with eMMC and HS200 mode.

Very good. From some searching this is down to the board design, so if
the TF701T works with it then all should be good. I think at this point
if any user has an issue they will know where to complain, anyway :)

Reviewed-by: Mikko Perttunen <mperttunen@xxxxxxxxxx>