mmc: rockchip_sdhci: Add initial support for RK3528
authorJonas Karlman <jonas@kwiboo.se>
Mon, 7 Apr 2025 22:46:54 +0000 (22:46 +0000)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 23 Apr 2025 14:12:04 +0000 (22:12 +0800)
Add initial support for SDHCI controller in RK3528.

Only MMC Legacy and MMC High Speed (52MHz) mode is supported after this,
more work is needed to get the faster HS200/HS400/HS400ES modes working.

Variant tap and delay num is copied from vendor Linux tag
linux-6.1-stan-rkr5.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
drivers/mmc/rockchip_sdhci.c

index 4968404..2c54b8a 100644 (file)
@@ -650,6 +650,17 @@ static const struct sdhci_data rk3399_data = {
        .set_enhanced_strobe = rk3399_sdhci_set_enhanced_strobe,
 };
 
+static const struct sdhci_data rk3528_data = {
+       .set_ios_post = rk3568_sdhci_set_ios_post,
+       .set_clock = rk3568_sdhci_set_clock,
+       .config_dll = rk3568_sdhci_config_dll,
+       .hs200_txclk_tapnum = 0xc,
+       .hs400_txclk_tapnum = 0x6,
+       .hs400_cmdout_tapnum = 0x6,
+       .hs400_strbin_tapnum = 0x3,
+       .ddr50_strbin_delay_num = 0xa,
+};
+
 static const struct sdhci_data rk3568_data = {
        .set_ios_post = rk3568_sdhci_set_ios_post,
        .set_clock = rk3568_sdhci_set_clock,
@@ -678,6 +689,10 @@ static const struct udevice_id sdhci_ids[] = {
                .compatible = "arasan,sdhci-5.1",
                .data = (ulong)&rk3399_data,
        },
+       {
+               .compatible = "rockchip,rk3528-dwcmshc",
+               .data = (ulong)&rk3528_data,
+       },
        {
                .compatible = "rockchip,rk3568-dwcmshc",
                .data = (ulong)&rk3568_data,