For sdhci based drivers, it's better to parse their host specific
device tree properties in their host's driver (sdhci-xxx.c) rather
than in the shared sdhci platform driver (sdhci-pltfm.c).
Otherwise function sdhci_get_of_property need to parse every host's
private dt property and will be bigger and bigger.

This patch add a function of_get_property in sdhci_ops to parse host
specific device tree property.

Signed-off-by: Kevin Liu <[email protected]>
---
 drivers/mmc/host/sdhci-pltfm.c |    3 +++
 drivers/mmc/host/sdhci.h       |    1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/mmc/host/sdhci-pltfm.c
b/drivers/mmc/host/sdhci-pltfm.c index 0c5eb6a..6bbbff7 100644
--- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c
@@ -108,6 +108,9 @@ void sdhci_get_of_property(struct platform_device *pdev)

        if (of_find_property(np, "enable-sdio-wakeup", NULL))
                host->mmc->pm_caps |= MMC_PM_WAKE_SDIO_IRQ;
+
+       if (host->ops->get_of_property)
+               host->ops->get_of_property(host);
 }
 #else
 void sdhci_get_of_property(struct platform_device *pdev) {} diff
--git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index
379e09d..48562bc 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -294,6 +294,7 @@ struct sdhci_ops {
        void    (*platform_resume)(struct sdhci_host *host);
        void    (*adma_workaround)(struct sdhci_host *host, u32 intmask);
        void    (*platform_init)(struct sdhci_host *host);
+       void    (*get_of_property)(struct sdhci_host *host);
 };

 #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to