How to enable uhs-1 mode of sd card in VIM3

VIM3 sd card reader only support ‘SD HighSpeed’ at 25MB/s io speed default.

According to link VIM3 and sdcard reader in sdr-104 / UHS-I mode and datasheet, the sd is capable of sdr-104/UHS-1 mode.

In the fenix sdk, the sd card reader’s dts node:

&sd_emmc_c {
	status = "okay";
	emmc {
		caps = "MMC_CAP_8_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED",
			 "MMC_CAP_NONREMOVABLE",
			/* "MMC_CAP_1_8V_DDR", */
			 "MMC_CAP_HW_RESET",
			 "MMC_CAP_ERASE",
			 "MMC_CAP_CMD23",
			 "MMC_CAP_DRIVER_TYPE_A";
		caps2 = "MMC_CAP2_HS200";
		/*MMC_CAP2_HS400"*/
		f_min = <400000>;
		f_max = <200000000>;
	};
};

&sd_emmc_b {
	status = "okay";
	sd {
		caps = "MMC_CAP_4_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED";
		f_min = <400000>;
		f_max = <50000000>;
	};
};

&sd_emmc_a {
	status = "okay";
	sdio {
		caps = "MMC_CAP_4_BIT_DATA",
			 "MMC_CAP_MMC_HIGHSPEED",
			 "MMC_CAP_SD_HIGHSPEED",
			 "MMC_CAP_NONREMOVABLE",
			 "MMC_CAP_UHS_SDR12",
			 "MMC_CAP_UHS_SDR25",
			 "MMC_CAP_UHS_SDR50",
			 "MMC_CAP_UHS_SDR104",
			 "MMC_PM_KEEP_POWER",
			 "MMC_CAP_SDIO_IRQ";
		f_min = <400000>;
		f_max = <200000000>;
	};
};

sd_emmc_c is internal emmc, sd_emmc_b is sd card, sd_emmc_a is sdio wifi/bt.

I tried to modify sd_emmc_b, add MMC_CAP_UHS_SDR104 and other MMC_CAP_UHS_XXX to the caps, change f_max to 200000000, then rebuild kernel and dtb, and flash the VIM3 board.

After reboot, when insert a sd card in reader, dmesg show errors, and NO /dev/mmcblk1 device does exists.

So, how to do to enable UHS-1 mode for sd card, really appreciated for your support!

I’m sorry to tell you that the VIM3 hardware doesn’t support SD UHS mode, so it willn’t work.

Oh, Thanks for your answer.