@@ -93,7 +93,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
9393 { "cdns,ctrl-hrs07-timing-delay-sd-sdr12" , 0x000A0001 }, // SD UHS1 SDR12
9494 { "cdns,ctrl-hrs07-timing-delay-sd-sdr25" , 0x000A0001 }, // SD UHS1 SDR25
9595 { "cdns,ctrl-hrs07-timing-delay-sd-sdr50" , 0x00090005 }, // SD UHS1 SDR50
96- { "cdns,ctrl-hrs07-timing-delay-sd-sdr104" , 0x00090005 }, // SD UHS1 SDR104
96+ { "cdns,ctrl-hrs07-timing-delay-sd-sdr104" , 0x000a0001 }, // SD UHS1 SDR104
9797 { "cdns,ctrl-hrs07-timing-delay-sd-ddr50" , 0x00090001 }, // SD UHS1 DDR50
9898 { "cdns,ctrl-hrs07-timing-delay-mmc-ddr52" , 0x00090001 }, // MMC DDR52
9999 { "cdns,ctrl-hrs07-timing-delay-mmc-hs200" , 0x00090000 }, // MMC HS200
@@ -108,7 +108,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
108108 { "cdns,ctrl-hrs09-timing-delay-sd-sdr12" , 0x0001800C },
109109 { "cdns,ctrl-hrs09-timing-delay-sd-sdr25" , 0x0001800C },
110110 { "cdns,ctrl-hrs09-timing-delay-sd-sdr50" , 0xf1c1800c },
111- { "cdns,ctrl-hrs09-timing-delay-sd-sdr104" , 0xf1c1800c },
111+ { "cdns,ctrl-hrs09-timing-delay-sd-sdr104" , 0xf1c18000 },
112112 { "cdns,ctrl-hrs09-timing-delay-sd-ddr50" , 0x0001800C },
113113 { "cdns,ctrl-hrs09-timing-delay-mmc-ddr52" , 0x0001800C },
114114 { "cdns,ctrl-hrs09-timing-delay-mmc-hs200" , 0xf1c18000 },
@@ -123,7 +123,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
123123 { "cdns,ctrl-hrs10-timing-delay-sd-sdr12" , 0x00030000 },
124124 { "cdns,ctrl-hrs10-timing-delay-sd-sdr25" , 0x00030000 },
125125 { "cdns,ctrl-hrs10-timing-delay-sd-sdr50" , 0x00020000 },
126- { "cdns,ctrl-hrs10-timing-delay-sd-sdr104" , 0x00020000 },
126+ { "cdns,ctrl-hrs10-timing-delay-sd-sdr104" , 0x00090000 },
127127 { "cdns,ctrl-hrs10-timing-delay-sd-ddr50" , 0x00020000 },
128128 { "cdns,ctrl-hrs10-timing-delay-mmc-ddr52" , 0x00020000 },
129129 { "cdns,ctrl-hrs10-timing-delay-mmc-hs200" , 0x00080000 },
@@ -168,7 +168,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
168168 { "cdns,phy-gate-lpbk_ctrl-delay-sd-sdr12" , 0x81a40040 },
169169 { "cdns,phy-gate-lpbk_ctrl-delay-sd-sdr25" , 0x81a40040 },
170170 { "cdns,phy-gate-lpbk_ctrl-delay-sd-sdr50" , 0x80a40040 },
171- { "cdns,phy-gate-lpbk_ctrl-delay-sd-sdr104" , 0x80a40040 },
171+ { "cdns,phy-gate-lpbk_ctrl-delay-sd-sdr104" , 0x81a40040 },
172172 { "cdns,phy-gate-lpbk_ctrl-delay-sd-ddr50" , 0x80a40040 },
173173 { "cdns,phy-gate-lpbk_ctrl-delay-mmc-ddr52" , 0x81a40040 },
174174 { "cdns,phy-gate-lpbk_ctrl-delay-mmc-hs200" , 0x81a40040 },
@@ -183,7 +183,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
183183 { "cdns,phy-dll-master-ctrl-sd-sdr12" , 0x00800004 },
184184 { "cdns,phy-dll-master-ctrl-sd-sdr25" , 0x00800004 },
185185 { "cdns,phy-dll-master-ctrl-sd-sdr50" , 0x00800004 },
186- { "cdns,phy-dll-master-ctrl-sd-sdr104" , 0x00204d00 },
186+ { "cdns,phy-dll-master-ctrl-sd-sdr104" , 0x00000004 },
187187 { "cdns,phy-dll-master-ctrl-sd-ddr50" , 0x00800000 },
188188 { "cdns,phy-dll-master-ctrl-mmc-ddr52" , 0x00800000 },
189189 { "cdns,phy-dll-master-ctrl-mmc-hs200" , 0x00204d00 },
@@ -198,7 +198,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
198198 { "cdns,phy-dll-slave-ctrl-sd-sdr12" , 0x00000000 },
199199 { "cdns,phy-dll-slave-ctrl-sd-sdr25" , 0x00000000 },
200200 { "cdns,phy-dll-slave-ctrl-sd-sdr50" , 0x04000004 },
201- { "cdns,phy-dll-slave-ctrl-sd-sdr104" , 0x04000004 },
201+ { "cdns,phy-dll-slave-ctrl-sd-sdr104" , 0x004d4d00 },
202202 { "cdns,phy-dll-slave-ctrl-sd-ddr50" , 0x00000000 },
203203 { "cdns,phy-dll-slave-ctrl-mmc-ddr52" , 0x00000000 },
204204 { "cdns,phy-dll-slave-ctrl-mmc-hs200" , 0x004dc600 },
@@ -213,7 +213,7 @@ static const struct sdhci_cdns6_ctrl_cfg reg_cfg[REG_CFG_MAX][MAX_TIMING_MODES]
213213 { "cdns,phy-dq-timing-delay-sd-sdr12" , 0x28000001 },
214214 { "cdns,phy-dq-timing-delay-sd-sdr25" , 0x10000001 },
215215 { "cdns,phy-dq-timing-delay-sd-sdr50" , 0x38000001 },
216- { "cdns,phy-dq-timing-delay-sd-sdr104" , 0x38000001 },
216+ { "cdns,phy-dq-timing-delay-sd-sdr104" , 0x11000001 },
217217 { "cdns,phy-dq-timing-delay-sd-ddr50" , 0x38000001 },
218218 { "cdns,phy-dq-timing-delay-mmc-ddr52" , 0x10000001 },
219219 { "cdns,phy-dq-timing-delay-mmc-hs200" , 0x00000001 },
@@ -378,8 +378,15 @@ int sdhci_cdns6_set_tune_val(struct sdhci_host *host, unsigned int val)
378378 PHY_DLL_SLAVE_CTRL_REG_READ_DQS_DELAY );
379379 tmp |= FIELD_PREP (PHY_DLL_SLAVE_CTRL_REG_READ_DQS_CMD_DELAY , tuneval ) |
380380 FIELD_PREP (PHY_DLL_SLAVE_CTRL_REG_READ_DQS_DELAY , tuneval );
381+
382+ /* Switch On the DLL Reset */
383+ sdhci_cdns6_reset_phy_dll (host , true);
384+
381385 sdhci_cdns6_write_phy_reg (priv , PHY_DLL_SLAVE_CTRL_REG_ADDR , tmp );
382386
387+ /* Switch Off the DLL Reset */
388+ sdhci_cdns6_reset_phy_dll (host , false);
389+
383390 return 0 ;
384391}
385392
0 commit comments