mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-19 14:13:30 +00:00
75 lines
2.6 KiB
Diff
75 lines
2.6 KiB
Diff
From 81dbef690f2f9734b67a2db9ac5abb773cb4b948 Mon Sep 17 00:00:00 2001
|
|
From: Jonas Karlman <jonas@kwiboo.se>
|
|
Date: Thu, 23 Jan 2025 22:48:18 +0000
|
|
Subject: [PATCH 6/9] mmc: rockchip_sdhci: Extend variant configuration
|
|
|
|
RK3528 and RK3576 use different tap and delay num for cmdout and strbin.
|
|
|
|
Move tap and delay num for cmdout and strbin to driver data to prepare
|
|
for adding new SoCs.
|
|
|
|
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
|
---
|
|
drivers/mmc/rockchip_sdhci.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/mmc/rockchip_sdhci.c
|
|
+++ b/drivers/mmc/rockchip_sdhci.c
|
|
@@ -156,6 +156,9 @@ struct sdhci_data {
|
|
u32 flags;
|
|
u8 hs200_txclk_tapnum;
|
|
u8 hs400_txclk_tapnum;
|
|
+ u8 hs400_cmdout_tapnum;
|
|
+ u8 hs400_strbin_tapnum;
|
|
+ u8 ddr50_strbin_delay_num;
|
|
};
|
|
|
|
static void rk3399_emmc_phy_power_on(struct rockchip_emmc_phy *phy, u32 clock)
|
|
@@ -348,7 +351,7 @@ static int rk3568_sdhci_config_dll(struc
|
|
extra = DLL_CMDOUT_SRC_CLK_NEG |
|
|
DLL_CMDOUT_BOTH_CLK_EDGE |
|
|
DWCMSHC_EMMC_DLL_DLYENA |
|
|
- DLL_CMDOUT_TAPNUM_90_DEGREES |
|
|
+ data->hs400_cmdout_tapnum |
|
|
DLL_CMDOUT_TAPNUM_FROM_SW;
|
|
sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_CMDOUT);
|
|
}
|
|
@@ -360,7 +363,7 @@ static int rk3568_sdhci_config_dll(struc
|
|
sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_TXCLK);
|
|
|
|
extra = DWCMSHC_EMMC_DLL_DLYENA |
|
|
- DLL_STRBIN_TAPNUM_DEFAULT |
|
|
+ data->hs400_strbin_tapnum |
|
|
DLL_STRBIN_TAPNUM_FROM_SW;
|
|
sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_STRBIN);
|
|
} else {
|
|
@@ -380,7 +383,7 @@ static int rk3568_sdhci_config_dll(struc
|
|
*/
|
|
extra = DWCMSHC_EMMC_DLL_DLYENA |
|
|
DLL_STRBIN_DELAY_NUM_SEL |
|
|
- DLL_STRBIN_DELAY_NUM_DEFAULT << DLL_STRBIN_DELAY_NUM_OFFSET;
|
|
+ data->ddr50_strbin_delay_num << DLL_STRBIN_DELAY_NUM_OFFSET;
|
|
sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_STRBIN);
|
|
}
|
|
|
|
@@ -654,6 +657,9 @@ static const struct sdhci_data rk3568_da
|
|
.flags = FLAG_INVERTER_FLAG_IN_RXCLK,
|
|
.hs200_txclk_tapnum = DLL_TXCLK_TAPNUM_DEFAULT,
|
|
.hs400_txclk_tapnum = 0x8,
|
|
+ .hs400_cmdout_tapnum = DLL_CMDOUT_TAPNUM_90_DEGREES,
|
|
+ .hs400_strbin_tapnum = DLL_STRBIN_TAPNUM_DEFAULT,
|
|
+ .ddr50_strbin_delay_num = DLL_STRBIN_DELAY_NUM_DEFAULT,
|
|
};
|
|
|
|
static const struct sdhci_data rk3588_data = {
|
|
@@ -662,6 +668,9 @@ static const struct sdhci_data rk3588_da
|
|
.config_dll = rk3568_sdhci_config_dll,
|
|
.hs200_txclk_tapnum = DLL_TXCLK_TAPNUM_DEFAULT,
|
|
.hs400_txclk_tapnum = 0x9,
|
|
+ .hs400_cmdout_tapnum = DLL_CMDOUT_TAPNUM_90_DEGREES,
|
|
+ .hs400_strbin_tapnum = DLL_STRBIN_TAPNUM_DEFAULT,
|
|
+ .ddr50_strbin_delay_num = DLL_STRBIN_DELAY_NUM_DEFAULT,
|
|
};
|
|
|
|
static const struct udevice_id sdhci_ids[] = {
|