Edge board sd card default not enable ush-1 mode, but can be enable by modify dts.
according to some patch, I modified u-boot dts and kernel dts as follow:
u-boot dts (file Khadas/fenix/u-boot/arch/arm/dts/rk3399-kedge.dts
) sdmmc
node, :
&sdmmc {
bus-width = <4>;
// add following 5 lines
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
num-slots = <1>;
sd-uhs-sdr104;
status = "okay";
};
kernel dts (file Khadas/fenix/linux/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
) sdmmc
node, uncomment uhs-sdr104
:
&sdmmc {
clock-frequency = <150000000>;
clock-freq-min-max = <100000 150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
num-slots = <1>;
//sd-uhs-sdr104;
sd-uhs-sdr104;
vmmc-supply = <&vcc_sd>;
vqmmc-supply = <&vccio_sd>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
status = "okay";
};
but after build u-boot/kernel and install, but test result still in high-speed mode, no uhs-1 enabled.
sudo cat /sys/kernel/debug/mmc1/ios
clock: 50000000 Hz
actual clock: 50000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
sudo dmesg | grep mmc1
[ 2.596560] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 2.891677] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 2.892930] mmc1: new high speed SDXC card at address e624
[ 2.894206] mmcblk1: mmc1:e624 SN128 119 GiB
So, how to enable uhs-1 mode for sd card of Edge, actually?