Re: [PATCH 4/5] mmc: sdhci: consolidate sdhci-of-esdhc and sdhci-esdhc-imx
From: Shawn Guo <hidden>
Date: 2011-04-01 06:17:11
Also in:
linux-mmc, lkml
On Thu, Mar 31, 2011 at 09:53:12AM -0600, Grant Likely wrote:
On Fri, Mar 25, 2011 at 04:48:50PM +0800, Shawn Guo wrote:quoted
This patch is to consolidate SDHCI driver for Freescale eSDHC controller found on both MPCxxx and i.MX platforms. It turns sdhci-of-esdhc.c and sdhci-esdhc-imx.c into one sdhci-esdhc.c, which gets the same pair of .probe and .remove serving two cases. Signed-off-by: Shawn Guo <redacted> --- drivers/mmc/host/Kconfig | 38 ++-- drivers/mmc/host/Makefile | 3 +- drivers/mmc/host/sdhci-esdhc-imx.c | 210 ------------------ drivers/mmc/host/sdhci-esdhc.c | 413 ++++++++++++++++++++++++++++++++++++ drivers/mmc/host/sdhci-of-esdhc.c | 162 --------------This patch would be easier to review if it was split into two patches; first rename sdhci-esdhc-imx.c to sdhci-esdhc.c without any changes to the .c code, and then a second patch to merge the ppc bits into the imx version.
OK.
quoted
+#if defined(CONFIG_OF) +#include <linux/of_device.h> +static const struct of_device_id sdhci_esdhc_dt_ids[] = { +#ifdef CONFIG_MMC_SDHCI_ESDHC_IMX + { .compatible = "fsl,imx-esdhc", .data = &sdhci_esdhc_imx_pdata }, +#endif +#ifdef CONFIG_MMC_SDHCI_ESDHC_MPC + { .compatible = "fsl,mpc8379-esdhc", .data = &sdhci_esdhc_mpc_pdata }, + { .compatible = "fsl,mpc8536-esdhc", .data = &sdhci_esdhc_mpc_pdata }, + { .compatible = "fsl,esdhc", .data = &sdhci_esdhc_mpc_pdata }, +#endif + { } +}; +MODULE_DEVICE_TABLE(platform, sdhci_esdhc_dt_ids); + +static const struct of_device_id * +sdhci_esdhc_get_of_device_id(struct platform_device *pdev) +{ + return of_match_device(sdhci_esdhc_dt_ids, &pdev->dev);You can add an empty implementation of of_match_device() to linux/of_device.h. That would eliminate the need for this function.
Will follow what you suggested later to use .of_match pointer newly added into struct device. -- Regards, Shawn