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 <jo...@kwiboo.se>
---
v2: No change
---
 drivers/mmc/rockchip_sdhci.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index 4968404bfaed..2c54b8a942da 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -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,
-- 
2.49.0

Reply via email to