|
|
@@ -30,8 +30,8 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
int vendor_specific_area1; /* P_VENDOR_SPECIFIC_AREA1 reg */
|
|
|
int vendor_specific_area2; /* P_VENDOR_SPECIFIC_AREA2 reg */
|
|
|
|
|
|
-@@ -289,6 +290,17 @@ static void dwcmshc_adma_write_desc(stru
|
|
|
- sdhci_adma_write_desc(host, desc, addr, len, cmd);
|
|
|
+@@ -302,6 +303,17 @@ static void dwcmshc_reset(struct sdhci_h
|
|
|
+ sdhci_writel(host, SDHCI_INT_RESPONSE, SDHCI_INT_STATUS);
|
|
|
}
|
|
|
|
|
|
+static void dwcmshc_set_clock(struct sdhci_host *host, unsigned int clock)
|
|
|
@@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
static unsigned int dwcmshc_get_max_clock(struct sdhci_host *host)
|
|
|
{
|
|
|
struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
|
|
|
-@@ -1138,10 +1150,11 @@ static int sg2042_init(struct device *de
|
|
|
+@@ -1143,10 +1155,11 @@ static int sg2042_init(struct device *de
|
|
|
}
|
|
|
|
|
|
static const struct sdhci_ops sdhci_dwcmshc_ops = {
|
|
|
@@ -58,10 +58,10 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
.set_uhs_signaling = dwcmshc_set_uhs_signaling,
|
|
|
.get_max_clock = dwcmshc_get_max_clock,
|
|
|
+ .get_timeout_clock = sdhci_pltfm_clk_get_timeout_clock,
|
|
|
- .reset = sdhci_reset,
|
|
|
+ .reset = dwcmshc_reset,
|
|
|
.adma_write_desc = dwcmshc_adma_write_desc,
|
|
|
.irq = dwcmshc_cqe_irq_handler,
|
|
|
-@@ -1214,8 +1227,10 @@ static const struct sdhci_ops sdhci_dwcm
|
|
|
+@@ -1219,8 +1232,10 @@ static const struct sdhci_ops sdhci_dwcm
|
|
|
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_pdata = {
|
|
|
.pdata = {
|
|
|
.ops = &sdhci_dwcmshc_ops,
|
|
|
@@ -74,7 +74,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-@@ -1230,6 +1245,15 @@ static const struct dwcmshc_pltfm_data s
|
|
|
+@@ -1235,6 +1250,15 @@ static const struct dwcmshc_pltfm_data s
|
|
|
};
|
|
|
#endif
|
|
|
|
|
|
@@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
static const struct dwcmshc_pltfm_data sdhci_dwcmshc_rk35xx_pdata = {
|
|
|
.pdata = {
|
|
|
.ops = &sdhci_dwcmshc_rk35xx_ops,
|
|
|
-@@ -1353,6 +1377,10 @@ dsbl_cqe_caps:
|
|
|
+@@ -1358,6 +1382,10 @@ dsbl_cqe_caps:
|
|
|
|
|
|
static const struct of_device_id sdhci_dwcmshc_dt_ids[] = {
|
|
|
{
|
|
|
@@ -101,7 +101,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
.compatible = "rockchip,rk3588-dwcmshc",
|
|
|
.data = &sdhci_dwcmshc_rk35xx_pdata,
|
|
|
},
|
|
|
-@@ -1445,13 +1473,32 @@ static int dwcmshc_probe(struct platform
|
|
|
+@@ -1450,13 +1478,32 @@ static int dwcmshc_probe(struct platform
|
|
|
priv->bus_clk = devm_clk_get(dev, "bus");
|
|
|
if (!IS_ERR(priv->bus_clk))
|
|
|
clk_prepare_enable(priv->bus_clk);
|
|
|
@@ -134,7 +134,7 @@ Signed-off-by: Jonathan Bell <[email protected]>
|
|
|
|
|
|
priv->vendor_specific_area1 =
|
|
|
sdhci_readl(host, DWCMSHC_P_VENDOR_AREA1) & DWCMSHC_AREA1_MASK;
|
|
|
-@@ -1511,6 +1558,7 @@ err_rpm:
|
|
|
+@@ -1516,6 +1563,7 @@ err_rpm:
|
|
|
pm_runtime_put_noidle(dev);
|
|
|
err_clk:
|
|
|
clk_disable_unprepare(pltfm_host->clk);
|