@@ -94,8 +94,16 @@ static void platform_reset_exit(struct sdhci_host *host, u8 mask)
}
}
+static unsigned int get_f_max_clock(struct sdhci_host *host)
+{
+ struct sdhci_pxa *pxa = sdhci_priv(host);
+
+ return pxa->pdata->max_speed;
+}
+
static struct sdhci_ops sdhci_pxa_ops = {
.platform_reset_exit = platform_reset_exit,
+ .get_f_max_clock = NULL,
};
/*****************************************************************************\
@@ -184,15 +192,17 @@ static int __devinit sdhci_pxa_probe(struct platform_device *pdev)
/* do not rely on u-boot to enable the clocks */
enable_clock(host);
+ if (pxa->pdata->max_speed)
+ sdhci_pxa_ops.get_f_max_clock = get_f_max_clock;
+ else
+ sdhci_pxa_ops.get_f_max_clock = NULL;
+
ret = sdhci_add_host(host);
if (ret) {
dev_err(&pdev->dev, "failed to add host\n");
goto out;
}
- if (pxa->pdata->max_speed)
- host->mmc->f_max = pxa->pdata->max_speed;
-
platform_set_drvdata(pdev, host);
return 0;