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

From: Svyatoslav Ryhel

Date: Tue Jul 28 2026 - 10:27:13 EST


вт, 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.