Re: [PATCH v2 06/10] ARM: tegra: tf701t: Tune MMC devices
From: Mikko Perttunen
Date: Tue Jul 28 2026 - 08:09:57 EST
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.