[PATCH 5/7] mmc: support sdhci-esdhc-imx as an OF device

Grant Likely grant.likely at secretlab.ca
Wed Mar 16 06:59:26 EST 2011


On Mon, Mar 14, 2011 at 10:25:57PM +0800, Shawn Guo wrote:
> Signed-off-by: Shawn Guo <shawn.guo at linaro.org>

dt support can be added directly to sdchi-pltfm.c drivers now.  There
is no longer any need to use sdhci-of-core.c any more.  For an
example, see the patch titled "of/tegra: add sdhci device tree
handling" in my devicetree/test branch.

http://git.secretlab.ca/?p=linux-2.6.git;a=commit;h=1437bd1d5a1fec2dcf17d9fde73b385569c82084

g.

> ---
>  drivers/mmc/host/Kconfig         |    7 ++++---
>  drivers/mmc/host/Makefile        |    3 ++-
>  drivers/mmc/host/sdhci-of-core.c |    3 +++
>  drivers/mmc/host/sdhci-of.h      |    1 +
>  4 files changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> index afe8c6f..9746ec1 100644
> --- a/drivers/mmc/host/Kconfig
> +++ b/drivers/mmc/host/Kconfig
> @@ -133,12 +133,13 @@ config MMC_SDHCI_CNS3XXX
>  	  If unsure, say N.
>  
>  config MMC_SDHCI_ESDHC_IMX
> -	bool "SDHCI platform support for the Freescale eSDHC i.MX controller"
> -	depends on MMC_SDHCI_PLTFM && (ARCH_MX25 || ARCH_MX35 || ARCH_MX5)
> +	bool "SDHCI support for the Freescale eSDHC i.MX controller"
> +	depends on ARCH_MX25 || ARCH_MX35 || ARCH_MX5
> +	depends on MMC_SDHCI_PLTFM || MMC_SDHCI_OF
>  	select MMC_SDHCI_IO_ACCESSORS
>  	help
>  	  This selects the Freescale eSDHC controller support on the platform
> -	  bus, found on platforms like mx35/51.
> +	  or OF bus, found on platforms like mx35/51.
>  
>  	  If unsure, say N.
>  
> diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
> index e834fb2..cca8dfd 100644
> --- a/drivers/mmc/host/Makefile
> +++ b/drivers/mmc/host/Makefile
> @@ -39,7 +39,6 @@ obj-$(CONFIG_MMC_USHC)		+= ushc.o
>  obj-$(CONFIG_MMC_SDHCI_PLTFM)			+= sdhci-platform.o
>  sdhci-platform-y				:= sdhci-pltfm.o
>  sdhci-platform-$(CONFIG_MMC_SDHCI_CNS3XXX)	+= sdhci-cns3xxx.o
> -sdhci-platform-$(CONFIG_MMC_SDHCI_ESDHC_IMX)	+= sdhci-esdhc-imx.o
>  sdhci-platform-$(CONFIG_MMC_SDHCI_DOVE)		+= sdhci-dove.o
>  sdhci-platform-$(CONFIG_MMC_SDHCI_TEGRA)	+= sdhci-tegra.o
>  
> @@ -48,6 +47,8 @@ sdhci-of-y				:= sdhci-of-core.o
>  sdhci-of-$(CONFIG_MMC_SDHCI_OF_ESDHC)	+= sdhci-of-esdhc.o
>  sdhci-of-$(CONFIG_MMC_SDHCI_OF_HLWD)	+= sdhci-of-hlwd.o
>  
> +obj-$(CONFIG_MMC_SDHCI_ESDHC_IMX)	+= sdhci-esdhc-imx.o
> +
>  ifeq ($(CONFIG_CB710_DEBUG),y)
>  	CFLAGS-cb710-mmc	+= -DDEBUG
>  endif
> diff --git a/drivers/mmc/host/sdhci-of-core.c b/drivers/mmc/host/sdhci-of-core.c
> index 0b32ad7..d803fa5 100644
> --- a/drivers/mmc/host/sdhci-of-core.c
> +++ b/drivers/mmc/host/sdhci-of-core.c
> @@ -32,6 +32,9 @@
>  #include "sdhci.h"
>  
>  static const struct of_device_id sdhci_of_match[] = {
> +#ifdef CONFIG_MMC_SDHCI_ESDHC_IMX
> +	{ .compatible = "fsl,imx-esdhc", .data = &sdhci_esdhc_imx_data, },
> +#endif
>  #ifdef CONFIG_MMC_SDHCI_OF_ESDHC
>  	{ .compatible = "fsl,mpc8379-esdhc", .data = &sdhci_esdhc_data, },
>  	{ .compatible = "fsl,mpc8536-esdhc", .data = &sdhci_esdhc_data, },
> diff --git a/drivers/mmc/host/sdhci-of.h b/drivers/mmc/host/sdhci-of.h
> index e88fe2e..90fb2eb 100644
> --- a/drivers/mmc/host/sdhci-of.h
> +++ b/drivers/mmc/host/sdhci-of.h
> @@ -31,6 +31,7 @@ extern void sdhci_be32bs_writel(struct sdhci_host *host, u32 val, int reg);
>  extern void sdhci_be32bs_writew(struct sdhci_host *host, u16 val, int reg);
>  extern void sdhci_be32bs_writeb(struct sdhci_host *host, u8 val, int reg);
>  
> +extern struct sdhci_data sdhci_esdhc_imx_data;
>  extern struct sdhci_data sdhci_esdhc_data;
>  extern struct sdhci_data sdhci_hlwd_data;
>  
> -- 
> 1.7.1
> 


More information about the devicetree-discuss mailing list