I have a custom motherboard, and the SD high-speed card does not work. However, it works fine in low-speed mode, i.e., when modifying max-clk-limit = <0xc28cb00>; ddr-clk-limit = <0xc28cb00>; to below 50MHz(According to the guidance of AI), it remains stable. Otherwise, I get error -84 and -100. I hope someone can help me, thank you. Below is the device tree configuration.
sdhci@700b0400 {
compatible = "nvidia,tegra210-sdhci";
reg = <0x0 0x700b0400 0x0 0x200>;
interrupts = <0x0 0x13 0x4>;
aux-device-name = "sdhci-tegra.2";
iommus = <0x4d 0x1b>;
nvidia,runtime-pm-type = <0x0>;
clocks = <0x43 0x45 0x43 0xf3 0x43 0x136 0x43 0xc1>;
clock-names = "sdmmc", "pll_p", "pll_c4_out2", "sdmmc_legacy_tm";
resets = <0x43 0x45>;
reset-names = "sdhci";
status = "disabled";
cd-gpios = <0x85 524 0x1>;
vqmmc-supply = <0x58>;
vmmc-supply = <0x69>;
tap-delay = <0x6>;
trim-delay = <0x3>;
mmc-ocr-mask = <0x0>;
max-clk-limit = <0xc28cb00>;
ddr-clk-limit = <0xc28cb00>;
bus-width = <0x4>;
calib-3v3-offsets = <0x7d>;
calib-1v8-offsets = <0x7b7b>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
pll_source = "pll_p", "pll_c4_out2";
keep-power-in-suspend;
ignore-pm-notify;
non-removable;
cap-mmc-highspeed;
cap-sd-highspeed;
nvidia,en-io-trim-volt;
nvidia,en-periodic-calib;
cd-inverted;
wp-inverted;
pwrdet-support;
nvidia,min-tap-delay = <0x6a>;
nvidia,max-tap-delay = <0xb9>;
pinctrl-names = "sdmmc_schmitt_enable", "sdmmc_schmitt_disable", "sdmmc_clk_schmitt_enable", "sdmmc_clk_schmitt_disable", "sdmmc_drv_code", "sdmmc_default_drv_code", "sdmmc_e_33v_enable", "sdmmc_e_33v_disable";
pinctrl-0 = <0xd5>;
pinctrl-1 = <0xd6>;
pinctrl-2 = <0xd7>;
pinctrl-3 = <0xd8>;
pinctrl-4 = <0xd9>;
pinctrl-5 = <0xda>;
pinctrl-6 = <0xdb>;
pinctrl-7 = <0xdc>;
default-drv-type = <0x1>;
uhs-mask = <0x0>;
power-off-rail;
nvidia,update-pinctrl-settings;
linux,phandle = <0x18e>;
phandle = <0x18e>;
sdhci@700b0000 {
compatible = "nvidia,tegra210-sdhci";
reg = <0x0 0x700b0000 0x0 0x200>;
interrupts = <0x0 0xe 0x4>;
aux-device-name = "sdhci-tegra.0";
iommus = <0x4d 0x19>;
nvidia,runtime-pm-type = <0x1>;
clocks = <0x43 0xe 0x43 0xf3 0x43 0xc1>;
clock-names = "sdmmc", "pll_p", "sdmmc_legacy_tm";
resets = <0x43 0xe>;
reset-names = "sdhci";
status = "okay";
vqmmc-supply = <0xdd>;
vmmc-supply = <0xde>;
tap-delay = <0x6>;
trim-delay = <0x3>;
max-clk-limit = <0xc28cb00>;
ddr-clk-limit = <0xc28cb00>;
bus-width = <0x4>;
mmc-ocr-mask = <0x3>;
calib-3v3-offsets = <0x7d>;
calib-1v8-offsets = <0x7b7b>;
compad-vref-3v3 = <0x7>;
compad-vref-1v8 = <0x7>;
pll_source = "pll_p";
cap-mmc-highspeed;
cap-sd-highspeed;
nvidia,en-io-trim-volt;
nvidia,en-periodic-calib;
keep-power-in-suspend;
ignore-pm-notify;
cd-inverted;
wp-inverted;
nvidia,min-tap-delay = <0x6a>;
nvidia,max-tap-delay = <0xb9>;
pwrdet-support;
pinctrl-names = "sdmmc_schmitt_enable", "sdmmc_schmitt_disable", "sdmmc_clk_schmitt_enable", "sdmmc_clk_schmitt_disable", "sdmmc_drv_code", "sdmmc_default_drv_code", "sdmmc_e_33v_enable", "sdmmc_e_33v_disable";
pinctrl-0 = <0xdf>;
pinctrl-1 = <0xe0>;
pinctrl-2 = <0xe1>;
pinctrl-3 = <0xe2>;
pinctrl-4 = <0xe3>;
pinctrl-5 = <0xe4>;
pinctrl-6 = <0xe5>;
pinctrl-7 = <0xe6>;
uhs-mask = <0x0>;
power-off-rail;
nvidia,update-pinctrl-settings;
nvidia,sd-device;
linux,phandle = <0x18f>;
phandle = <0x18f>;
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.744366] sdhci: ===========================================
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.750367] mmcblk2: error -110 sending stop command, original cmd response 0x900, card status 0x400900
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.750373] mmcblk2: error -84 transferring data, sector 7168, nr 1024, cmd response 0x900, card status 0x0
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.848959] mmc2: Data CRC error
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.852185] sdhci: =========== REGISTER DUMP (mmc2)===========
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.858005] sdhci: Sys addr: 0x00000400 | Version: 0x00000303
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.863824] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000267
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.869644] sdhci: Argument: 0x00001c00 | Trn mode: 0x0000003b
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.875463] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000013
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.881282] sdhci: Power: 0x00000001 | Blk gap: 0x00000000
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.887101] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.892919] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.898738] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.904557] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.910377] sdhci: Caps: 0x376cd08c | Caps_1: 0x10006f77
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.916197] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.922014] sdhci: Host ctl2: 0x00003001
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.925927] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe440
Mar 18 14:03:54 tegra-ubuntu kernel: [ 52.932461] sdhci: ===========================================