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

Svyatoslav Ryhel <[email protected]> Tue, 28 Jul 2026 17:17:40 +0300
Newsgroups org.kernel.vger.linux-tegra,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <CAPVz0n2cBDZ16rek-phtp0J5QKSfyZHWHtJX7CeWjraEuz=5qw@mail.gmail.com>
=D0=B2=D1=82, 28 =D0=BB=D0=B8=D0=BF. 2026=E2=80=AF=D1=80. =D0=BE 15:09 Mikk=
o Perttunen <[email protected]> =D0=BF=D0=B8=D1=88=D0=B5:
>
> 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. Adjus=
t
> > 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 <[email protected]>
> > ---
> >  .../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/a=
rm/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 =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;
> >                                       };
> >
> >                                       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";
> >
> > -             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>;
> >       };
> >
> >       /* WiFi */
> > @@ -2372,9 +2372,7 @@ mmc@78000000 {
> >               non-removable;
> >
> >               sd-uhs-ddr50;
> > -             mmc-ddr-1_8v;
> > -
> > -             power-gpios =3D <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_HIGH=
>;
> > +             sd-uhs-sdr104;
> >
> >               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;
> >
> >               nvidia,default-tap =3D <0x3>;
> >               nvidia,default-trim =3D <0x3>;
> >
> > -             vmmc-supply =3D <&vdd_2v9_usd>;
> > +             vmmc-supply =3D <&vcore_emmc>;
> >               vqmmc-supply =3D <&vddio_usd>;
> >       };
> >
> > @@ -2414,6 +2416,7 @@ mmc@78000600 {
> >
> >               non-removable;
> >               mmc-ddr-1_8v;
> > +             mmc-hs200-1_8v;
> >
> >               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>;
> >       };
> >
> > -     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;
> > --
> > 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.