diff mbox

[U-Boot,v2,5/6] mmc: move some SDHCI related options to Kconfig

Message ID 1481116230-9495-6-git-send-email-yamada.masahiro@socionext.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Dec. 7, 2016, 1:10 p.m. UTC
While I moved the options, I also renamed them so that they are all
prefixed with MMC_SDHCI_.

This commit was created in the following steps.

[1] Rename with the following command
find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \
-type f -print | xargs sed -i -e '
s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g
s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g
s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g
s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g
s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g
s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g
'

[2] create the Kconfig entries in drivers/mmc/Kconfig

[3] Move the options by the following command
tools/moveconfig.py -y MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 \
MMC_SDHCI_KONA MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR

[4] Sort drivers/mmc/Makefile for readability

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v2: None

 arch/arm/mach-mvebu/cpu.c                          |  2 +-
 board/broadcom/bcm23550_w1d/bcm23550_w1d.c         |  2 +-
 board/broadcom/bcm28155_ap/bcm28155_ap.c           |  2 +-
 configs/arndale_defconfig                          |  1 +
 configs/bayleybay_defconfig                        |  1 +
 configs/bcm11130_defconfig                         |  2 +
 configs/bcm11130_nand_defconfig                    |  2 +
 configs/bcm23550_w1d_defconfig                     |  2 +
 configs/bcm28155_ap_defconfig                      |  2 +
 configs/bcm28155_w1d_defconfig                     |  2 +
 configs/clearfog_defconfig                         |  2 +
 ...conga-qeval20-qa3-e3845-internal-uart_defconfig |  1 +
 configs/conga-qeval20-qa3-e3845_defconfig          |  1 +
 configs/crownbay_defconfig                         |  1 +
 configs/db-88f6820-gp_defconfig                    |  2 +
 configs/dfi-bt700-q7x-151_defconfig                |  1 +
 configs/galileo_defconfig                          |  1 +
 configs/minnowmax_defconfig                        |  1 +
 configs/odroid-xu3_defconfig                       |  1 +
 configs/odroid_defconfig                           |  2 +
 configs/origen_defconfig                           |  2 +
 configs/peach-pi_defconfig                         |  1 +
 configs/peach-pit_defconfig                        |  1 +
 configs/rpi_2_defconfig                            |  1 +
 configs/rpi_3_32b_defconfig                        |  1 +
 configs/rpi_3_defconfig                            |  1 +
 configs/rpi_defconfig                              |  1 +
 configs/s5p_goni_defconfig                         |  1 +
 configs/s5pc210_universal_defconfig                |  2 +
 configs/smdk5250_defconfig                         |  1 +
 configs/smdk5420_defconfig                         |  1 +
 configs/smdkv310_defconfig                         |  2 +
 configs/snow_defconfig                             |  1 +
 configs/spring_defconfig                           |  1 +
 configs/theadorable-x86-dfi-bt700_defconfig        |  1 +
 configs/trats2_defconfig                           |  2 +
 configs/trats_defconfig                            |  2 +
 drivers/mmc/Kconfig                                | 64 ++++++++++++++++++++++
 drivers/mmc/Makefile                               | 14 +++--
 drivers/mmc/sdhci.c                                | 10 ++--
 include/configs/bayleybay.h                        |  1 -
 include/configs/bcm23550_w1d.h                     |  2 -
 include/configs/bcm28155_ap.h                      |  2 -
 include/configs/clearfog.h                         |  2 -
 include/configs/conga-qeval20-qa3-e3845.h          |  1 -
 include/configs/crownbay.h                         |  1 -
 include/configs/db-88f6820-gp.h                    |  2 -
 include/configs/dfi-bt700.h                        |  1 -
 include/configs/exynos-common.h                    |  1 -
 include/configs/exynos4-common.h                   |  1 -
 include/configs/galileo.h                          |  1 -
 include/configs/minnowmax.h                        |  1 -
 include/configs/rpi.h                              |  1 -
 include/configs/s5p_goni.h                         |  1 -
 54 files changed, 127 insertions(+), 32 deletions(-)

Comments

Tom Rini Dec. 8, 2016, 2:30 p.m. UTC | #1
On Wed, Dec 07, 2016 at 10:10:29PM +0900, Masahiro Yamada wrote:

> While I moved the options, I also renamed them so that they are all
> prefixed with MMC_SDHCI_.
> 
> This commit was created in the following steps.
> 
> [1] Rename with the following command
> find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \
> -type f -print | xargs sed -i -e '
> s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g
> s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g
> s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g
> s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g
> s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g
> s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g
> '
> 
> [2] create the Kconfig entries in drivers/mmc/Kconfig
> 
> [3] Move the options by the following command
> tools/moveconfig.py -y MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 \
> MMC_SDHCI_KONA MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR
> 
> [4] Sort drivers/mmc/Makefile for readability
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

Reviewed-by: Tom Rini <trini@konsulko.com>
Jaehoon Chung Dec. 8, 2016, 11:30 p.m. UTC | #2
On 12/07/2016 10:10 PM, Masahiro Yamada wrote:
> While I moved the options, I also renamed them so that they are all
> prefixed with MMC_SDHCI_.
> 
> This commit was created in the following steps.
> 
> [1] Rename with the following command
> find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \
> -type f -print | xargs sed -i -e '
> s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g
> s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g
> s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g
> s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g
> s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g
> s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g
> '
> 
> [2] create the Kconfig entries in drivers/mmc/Kconfig
> 
> [3] Move the options by the following command
> tools/moveconfig.py -y MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 \
> MMC_SDHCI_KONA MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR
> 
> [4] Sort drivers/mmc/Makefile for readability
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>


Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Best Regards,
Jaehoon Chung


> ---
> 
> Changes in v2: None
> 
>  arch/arm/mach-mvebu/cpu.c                          |  2 +-
>  board/broadcom/bcm23550_w1d/bcm23550_w1d.c         |  2 +-
>  board/broadcom/bcm28155_ap/bcm28155_ap.c           |  2 +-
>  configs/arndale_defconfig                          |  1 +
>  configs/bayleybay_defconfig                        |  1 +
>  configs/bcm11130_defconfig                         |  2 +
>  configs/bcm11130_nand_defconfig                    |  2 +
>  configs/bcm23550_w1d_defconfig                     |  2 +
>  configs/bcm28155_ap_defconfig                      |  2 +
>  configs/bcm28155_w1d_defconfig                     |  2 +
>  configs/clearfog_defconfig                         |  2 +
>  ...conga-qeval20-qa3-e3845-internal-uart_defconfig |  1 +
>  configs/conga-qeval20-qa3-e3845_defconfig          |  1 +
>  configs/crownbay_defconfig                         |  1 +
>  configs/db-88f6820-gp_defconfig                    |  2 +
>  configs/dfi-bt700-q7x-151_defconfig                |  1 +
>  configs/galileo_defconfig                          |  1 +
>  configs/minnowmax_defconfig                        |  1 +
>  configs/odroid-xu3_defconfig                       |  1 +
>  configs/odroid_defconfig                           |  2 +
>  configs/origen_defconfig                           |  2 +
>  configs/peach-pi_defconfig                         |  1 +
>  configs/peach-pit_defconfig                        |  1 +
>  configs/rpi_2_defconfig                            |  1 +
>  configs/rpi_3_32b_defconfig                        |  1 +
>  configs/rpi_3_defconfig                            |  1 +
>  configs/rpi_defconfig                              |  1 +
>  configs/s5p_goni_defconfig                         |  1 +
>  configs/s5pc210_universal_defconfig                |  2 +
>  configs/smdk5250_defconfig                         |  1 +
>  configs/smdk5420_defconfig                         |  1 +
>  configs/smdkv310_defconfig                         |  2 +
>  configs/snow_defconfig                             |  1 +
>  configs/spring_defconfig                           |  1 +
>  configs/theadorable-x86-dfi-bt700_defconfig        |  1 +
>  configs/trats2_defconfig                           |  2 +
>  configs/trats_defconfig                            |  2 +
>  drivers/mmc/Kconfig                                | 64 ++++++++++++++++++++++
>  drivers/mmc/Makefile                               | 14 +++--
>  drivers/mmc/sdhci.c                                | 10 ++--
>  include/configs/bayleybay.h                        |  1 -
>  include/configs/bcm23550_w1d.h                     |  2 -
>  include/configs/bcm28155_ap.h                      |  2 -
>  include/configs/clearfog.h                         |  2 -
>  include/configs/conga-qeval20-qa3-e3845.h          |  1 -
>  include/configs/crownbay.h                         |  1 -
>  include/configs/db-88f6820-gp.h                    |  2 -
>  include/configs/dfi-bt700.h                        |  1 -
>  include/configs/exynos-common.h                    |  1 -
>  include/configs/exynos4-common.h                   |  1 -
>  include/configs/galileo.h                          |  1 -
>  include/configs/minnowmax.h                        |  1 -
>  include/configs/rpi.h                              |  1 -
>  include/configs/s5p_goni.h                         |  1 -
>  54 files changed, 127 insertions(+), 32 deletions(-)
> 
> diff --git a/arch/arm/mach-mvebu/cpu.c b/arch/arm/mach-mvebu/cpu.c
> index 5eb2a39..1445731 100644
> --- a/arch/arm/mach-mvebu/cpu.c
> +++ b/arch/arm/mach-mvebu/cpu.c
> @@ -475,7 +475,7 @@ int arch_misc_init(void)
>  }
>  #endif /* CONFIG_ARCH_MISC_INIT */
>  
> -#ifdef CONFIG_MV_SDHCI
> +#ifdef CONFIG_MMC_SDHCI_MV
>  int board_mmc_init(bd_t *bis)
>  {
>  	mv_sdh_init(MVEBU_SDIO_BASE, 0, 0,
> diff --git a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
> index 0cb059f..533e99e 100644
> --- a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
> +++ b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
> @@ -68,7 +68,7 @@ void dram_init_banksize(void)
>  	gd->bd->bi_dram[0].size = gd->ram_size;
>  }
>  
> -#ifdef CONFIG_KONA_SDHCI
> +#ifdef CONFIG_MMC_SDHCI_KONA
>  /*
>   * mmc_init - Initializes mmc
>   */
> diff --git a/board/broadcom/bcm28155_ap/bcm28155_ap.c b/board/broadcom/bcm28155_ap/bcm28155_ap.c
> index b3a4a41..b868812 100644
> --- a/board/broadcom/bcm28155_ap/bcm28155_ap.c
> +++ b/board/broadcom/bcm28155_ap/bcm28155_ap.c
> @@ -75,7 +75,7 @@ void dram_init_banksize(void)
>  	gd->bd->bi_dram[0].size = gd->ram_size;
>  }
>  
> -#ifdef CONFIG_KONA_SDHCI
> +#ifdef CONFIG_MMC_SDHCI_KONA
>  /*
>   * mmc_init - Initializes mmc
>   */
> diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig
> index a6eac81..cdfb739 100644
> --- a/configs/arndale_defconfig
> +++ b/configs/arndale_defconfig
> @@ -23,6 +23,7 @@ CONFIG_CMD_SOUND=y
>  CONFIG_CMD_EXT4_WRITE=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SOUND=y
>  CONFIG_I2S=y
>  CONFIG_I2S_SAMSUNG=y
> diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig
> index 6be1795..63d17b1 100644
> --- a/configs/bayleybay_defconfig
> +++ b/configs/bayleybay_defconfig
> @@ -42,6 +42,7 @@ CONFIG_REGMAP=y
>  CONFIG_SYSCON=y
>  CONFIG_CPU=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/bcm11130_defconfig b/configs/bcm11130_defconfig
> index a1a9678..bf2f1f7 100644
> --- a/configs/bcm11130_defconfig
> +++ b/configs/bcm11130_defconfig
> @@ -19,6 +19,8 @@ CONFIG_CMD_GPIO=y
>  CONFIG_CMD_CACHE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_KONA=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/bcm11130_nand_defconfig b/configs/bcm11130_nand_defconfig
> index 8493d1b..7df4a52 100644
> --- a/configs/bcm11130_nand_defconfig
> +++ b/configs/bcm11130_nand_defconfig
> @@ -19,6 +19,8 @@ CONFIG_CMD_GPIO=y
>  CONFIG_CMD_CACHE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_KONA=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/bcm23550_w1d_defconfig b/configs/bcm23550_w1d_defconfig
> index 121372e..4c7709c 100644
> --- a/configs/bcm23550_w1d_defconfig
> +++ b/configs/bcm23550_w1d_defconfig
> @@ -25,6 +25,8 @@ CONFIG_CMD_GPIO=y
>  CONFIG_CMD_CACHE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_KONA=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/bcm28155_ap_defconfig b/configs/bcm28155_ap_defconfig
> index 173bfba..3325a4d 100644
> --- a/configs/bcm28155_ap_defconfig
> +++ b/configs/bcm28155_ap_defconfig
> @@ -26,6 +26,8 @@ CONFIG_CMD_GPIO=y
>  CONFIG_CMD_CACHE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_KONA=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/bcm28155_w1d_defconfig b/configs/bcm28155_w1d_defconfig
> index d5bb166..b161d38 100644
> --- a/configs/bcm28155_w1d_defconfig
> +++ b/configs/bcm28155_w1d_defconfig
> @@ -20,6 +20,8 @@ CONFIG_CMD_GPIO=y
>  CONFIG_CMD_CACHE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_KONA=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
> index 2028568..4587807 100644
> --- a/configs/clearfog_defconfig
> +++ b/configs/clearfog_defconfig
> @@ -36,6 +36,8 @@ CONFIG_CMD_FAT=y
>  CONFIG_CMD_FS_GENERIC=y
>  CONFIG_SPL_OF_TRANSLATE=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_MV=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_PCI=y
>  CONFIG_DEBUG_UART=y
> diff --git a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> index a468e13..812f516 100644
> --- a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> +++ b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> @@ -46,6 +46,7 @@ CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_INTEL=y
>  CONFIG_WINBOND_W83627=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/conga-qeval20-qa3-e3845_defconfig b/configs/conga-qeval20-qa3-e3845_defconfig
> index 515d60a..cff6cc2 100644
> --- a/configs/conga-qeval20-qa3-e3845_defconfig
> +++ b/configs/conga-qeval20-qa3-e3845_defconfig
> @@ -45,6 +45,7 @@ CONFIG_DM_I2C=y
>  CONFIG_SYS_I2C_INTEL=y
>  CONFIG_WINBOND_W83627=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
> index 0ff8a2d..784c1b3 100644
> --- a/configs/crownbay_defconfig
> +++ b/configs/crownbay_defconfig
> @@ -34,6 +34,7 @@ CONFIG_REGMAP=y
>  CONFIG_SYSCON=y
>  CONFIG_CPU=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
> index cd2149d..bcc3128 100644
> --- a/configs/db-88f6820-gp_defconfig
> +++ b/configs/db-88f6820-gp_defconfig
> @@ -33,6 +33,8 @@ CONFIG_CMD_FAT=y
>  CONFIG_CMD_FS_GENERIC=y
>  CONFIG_SPL_OF_TRANSLATE=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_MV=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_MACRONIX=y
>  CONFIG_SPI_FLASH_STMICRO=y
> diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig
> index 84f0559..b7eb006 100644
> --- a/configs/dfi-bt700-q7x-151_defconfig
> +++ b/configs/dfi-bt700-q7x-151_defconfig
> @@ -43,6 +43,7 @@ CONFIG_CPU=y
>  CONFIG_DM_I2C=y
>  CONFIG_NUVOTON_NCT6102D=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig
> index ca08a9b..7da870f 100644
> --- a/configs/galileo_defconfig
> +++ b/configs/galileo_defconfig
> @@ -38,6 +38,7 @@ CONFIG_REGMAP=y
>  CONFIG_SYSCON=y
>  CONFIG_CPU=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig
> index 4b4c5f2..f7ac94d 100644
> --- a/configs/minnowmax_defconfig
> +++ b/configs/minnowmax_defconfig
> @@ -42,6 +42,7 @@ CONFIG_REGMAP=y
>  CONFIG_SYSCON=y
>  CONFIG_CPU=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
> index 3dd0268..a6ec2ee 100644
> --- a/configs/odroid-xu3_defconfig
> +++ b/configs/odroid-xu3_defconfig
> @@ -27,6 +27,7 @@ CONFIG_ADC_EXYNOS=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_DM_PMIC=y
>  CONFIG_PMIC_S2MPS11=y
>  CONFIG_DM_REGULATOR=y
> diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
> index 66391b4..e12208c 100644
> --- a/configs/odroid_defconfig
> +++ b/configs/odroid_defconfig
> @@ -37,6 +37,8 @@ CONFIG_OF_CONTROL=y
>  CONFIG_DFU_MMC=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_DM_PMIC=y
>  CONFIG_DM_PMIC_MAX77686=y
>  CONFIG_DM_REGULATOR=y
> diff --git a/configs/origen_defconfig b/configs/origen_defconfig
> index 13ba60c..0dcc9e8 100644
> --- a/configs/origen_defconfig
> +++ b/configs/origen_defconfig
> @@ -30,6 +30,8 @@ CONFIG_CMD_FS_GENERIC=y
>  CONFIG_OF_CONTROL=y
>  CONFIG_DFU_MMC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_DM_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
> index d5e11bf..ef02118 100644
> --- a/configs/peach-pi_defconfig
> +++ b/configs/peach-pi_defconfig
> @@ -33,6 +33,7 @@ CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
>  CONFIG_CROS_EC_SPI=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
> index d71172d..14fe00e 100644
> --- a/configs/peach-pit_defconfig
> +++ b/configs/peach-pit_defconfig
> @@ -33,6 +33,7 @@ CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
>  CONFIG_CROS_EC_SPI=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
> index da43b39..9d669c9 100644
> --- a/configs/rpi_2_defconfig
> +++ b/configs/rpi_2_defconfig
> @@ -15,6 +15,7 @@ CONFIG_CMD_USB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_OF_EMBED=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_BCM2835=y
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_USB_KEYBOARD=y
> diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
> index 991e5de..d0f7bea 100644
> --- a/configs/rpi_3_32b_defconfig
> +++ b/configs/rpi_3_32b_defconfig
> @@ -16,6 +16,7 @@ CONFIG_CMD_USB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_OF_EMBED=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_BCM2835=y
>  # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
> diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
> index a4c7f69..ce28c31 100644
> --- a/configs/rpi_3_defconfig
> +++ b/configs/rpi_3_defconfig
> @@ -16,6 +16,7 @@ CONFIG_CMD_USB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_OF_EMBED=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_BCM2835=y
>  # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
> diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
> index e5cd9f8..4a90ca8 100644
> --- a/configs/rpi_defconfig
> +++ b/configs/rpi_defconfig
> @@ -15,6 +15,7 @@ CONFIG_CMD_USB=y
>  CONFIG_CMD_GPIO=y
>  CONFIG_OF_EMBED=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_BCM2835=y
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_USB_KEYBOARD=y
> diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
> index 93d50d1..0271410 100644
> --- a/configs/s5p_goni_defconfig
> +++ b/configs/s5p_goni_defconfig
> @@ -23,6 +23,7 @@ CONFIG_CMD_EXT4_WRITE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_DFU_MMC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_USB_GADGET=y
>  CONFIG_USB_GADGET_DWC2_OTG=y
> diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
> index 9b6f902..b6cefb1 100644
> --- a/configs/s5pc210_universal_defconfig
> +++ b/configs/s5pc210_universal_defconfig
> @@ -30,6 +30,8 @@ CONFIG_CMD_FS_GENERIC=y
>  CONFIG_OF_CONTROL=y
>  CONFIG_DFU_MMC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_DM_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig
> index 3c70120..b785efe 100644
> --- a/configs/smdk5250_defconfig
> +++ b/configs/smdk5250_defconfig
> @@ -27,6 +27,7 @@ CONFIG_CMD_REGULATOR=y
>  CONFIG_CMD_EXT4_WRITE=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
> index 5bc793c..daa46d4 100644
> --- a/configs/smdk5420_defconfig
> +++ b/configs/smdk5420_defconfig
> @@ -24,6 +24,7 @@ CONFIG_CMD_TIME=y
>  CONFIG_CMD_EXT4_WRITE=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/smdkv310_defconfig b/configs/smdkv310_defconfig
> index 6347e97..a75a1f0 100644
> --- a/configs/smdkv310_defconfig
> +++ b/configs/smdkv310_defconfig
> @@ -23,5 +23,7 @@ CONFIG_CMD_EXT4_WRITE=y
>  CONFIG_CMD_FAT=y
>  CONFIG_CMD_FS_GENERIC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_DM_USB=y
> diff --git a/configs/snow_defconfig b/configs/snow_defconfig
> index dbb6006..47b498b 100644
> --- a/configs/snow_defconfig
> +++ b/configs/snow_defconfig
> @@ -34,6 +34,7 @@ CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
>  CONFIG_CROS_EC_I2C=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/spring_defconfig b/configs/spring_defconfig
> index 27e66ec..4a782c8 100644
> --- a/configs/spring_defconfig
> +++ b/configs/spring_defconfig
> @@ -34,6 +34,7 @@ CONFIG_CROS_EC_KEYB=y
>  CONFIG_CROS_EC=y
>  CONFIG_CROS_EC_I2C=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_WINBOND=y
> diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig
> index c28357e..f3c2c86 100644
> --- a/configs/theadorable-x86-dfi-bt700_defconfig
> +++ b/configs/theadorable-x86-dfi-bt700_defconfig
> @@ -43,6 +43,7 @@ CONFIG_CPU=y
>  CONFIG_DM_I2C=y
>  CONFIG_NUVOTON_NCT6102D=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
>  CONFIG_SPI_FLASH=y
>  CONFIG_SPI_FLASH_GIGADEVICE=y
>  CONFIG_SPI_FLASH_MACRONIX=y
> diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
> index b6923bc..9e88201 100644
> --- a/configs/trats2_defconfig
> +++ b/configs/trats2_defconfig
> @@ -33,6 +33,8 @@ CONFIG_CMD_FS_GENERIC=y
>  CONFIG_OF_CONTROL=y
>  CONFIG_DFU_MMC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_DM_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/configs/trats_defconfig b/configs/trats_defconfig
> index 352750d..92cf3f7 100644
> --- a/configs/trats_defconfig
> +++ b/configs/trats_defconfig
> @@ -32,6 +32,8 @@ CONFIG_CMD_FS_GENERIC=y
>  CONFIG_OF_CONTROL=y
>  CONFIG_DFU_MMC=y
>  CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_S5P=y
>  CONFIG_USB=y
>  CONFIG_DM_USB=y
>  CONFIG_USB_GADGET=y
> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> index 778469e..521c741 100644
> --- a/drivers/mmc/Kconfig
> +++ b/drivers/mmc/Kconfig
> @@ -132,6 +132,70 @@ config MMC_SDHCI
>  
>  	  If unsure, say N.
>  
> +config MMC_SDHCI_SDMA
> +	bool "Support SDHCI SDMA"
> +	depends on MMC_SDHCI
> +	help
> +	  This enables support for the SDMA (Single Operation DMA) defined
> +	  in the SD Host Controller Standard Specification Version 1.00 .
> +
> +config MMC_SDHCI_BCM2835
> +	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
> +	depends on ARCH_BCM283X
> +	depends on MMC_SDHCI
> +	help
> +	  This selects the BCM2835 SD/MMC controller.
> +
> +	  If you have a BCM2835 platform with SD or MMC devices,
> +	  say Y here.
> +
> +	  If unsure, say N.
> +
> +config MMC_SDHCI_KONA
> +	bool "SDHCI support on Broadcom KONA platform"
> +	depends on MMC_SDHCI
> +	help
> +	  This selects the Broadcom Kona Secure Digital Host Controller
> +	  Interface(SDHCI) support.
> +	  This is used in Broadcom mobile SoCs.
> +
> +	  If you have a controller with this interface, say Y here.
> +
> +config MMC_SDHCI_MV
> +	bool "SDHCI support on Marvell platform"
> +	depends on ARCH_MVEBU
> +	depends on MMC_SDHCI
> +	help
> +	  This selects the Secure Digital Host Controller Interface on
> +	  Marvell platform.
> +
> +	  If you have a controller with this interface, say Y here.
> +
> +	  If unsure, say N.
> +
> +config MMC_SDHCI_S5P
> +	bool "SDHCI support on Samsung S5P SoC"
> +	depends on MMC_SDHCI
> +	help
> +	  This selects the Secure Digital Host Controller Interface (SDHCI)
> +	  on Samsung S5P SoCs.
> +
> +	  If you have a controller with this interface, say Y here.
> +
> +	  If unsure, say N.
> +
> +config MMC_SDHCI_SPEAR
> +	bool "SDHCI support on ST SPEAr platform"
> +	depends on MMC_SDHCI
> +	help
> +	  This selects the Secure Digital Host Controller Interface (SDHCI)
> +	  often referrered to as the HSMMC block in some of the ST SPEAR range
> +	  of SoC
> +
> +	  If you have a controller with this interface, say Y here.
> +
> +	  If unsure, say N.
> +
>  endif
>  
>  endmenu
> diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
> index 236f305..2b136ea 100644
> --- a/drivers/mmc/Makefile
> +++ b/drivers/mmc/Makefile
> @@ -15,7 +15,6 @@ endif
>  
>  obj-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o
>  obj-$(CONFIG_ATMEL_SDHCI) += atmel_sdhci.o
> -obj-$(CONFIG_BCM2835_SDHCI) += bcm2835_sdhci.o
>  obj-$(CONFIG_BFIN_SDH) += bfin_sdh.o
>  obj-$(CONFIG_DAVINCI_MMC) += davinci_mmc.o
>  obj-$(CONFIG_DWMMC) += dw_mmc.o
> @@ -29,10 +28,8 @@ ifdef CONFIG_SUPPORT_EMMC_BOOT
>  obj-$(CONFIG_GENERIC_MMC) += mmc_boot.o
>  endif
>  obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o
> -obj-$(CONFIG_KONA_SDHCI) += kona_sdhci.o
>  obj-$(CONFIG_MMC_SPI) += mmc_spi.o
>  obj-$(CONFIG_MMC_SUNXI) += sunxi_mmc.o
> -obj-$(CONFIG_MV_SDHCI) += mv_sdhci.o
>  obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o
>  obj-$(CONFIG_MXC_MMC) += mxcmmc.o
>  obj-$(CONFIG_MXS_MMC) += mxsmmc.o
> @@ -42,17 +39,14 @@ obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o
>  obj-$(CONFIG_ROCKCHIP_DWMMC) += rockchip_dw_mmc.o
>  obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o
>  obj-$(CONFIG_S3C_SDI) += s3c_sdi.o
> -obj-$(CONFIG_S5P_SDHCI) += s5p_sdhci.o
>  ifdef CONFIG_BLK
>  ifdef CONFIG_GENERIC_MMC
>  obj-$(CONFIG_SANDBOX) += sandbox_mmc.o
>  endif
>  endif
> -obj-$(CONFIG_MMC_SDHCI) += sdhci.o
>  obj-$(CONFIG_SH_MMCIF) += sh_mmcif.o
>  obj-$(CONFIG_SH_SDHI) += sh_sdhi.o
>  obj-$(CONFIG_SOCFPGA_DWMMC) += socfpga_dw_mmc.o
> -obj-$(CONFIG_SPEAR_SDHCI) += spear_sdhci.o
>  obj-$(CONFIG_TEGRA_MMC) += tegra_mmc.o
>  obj-$(CONFIG_MMC_UNIPHIER) += uniphier-sd.o
>  obj-$(CONFIG_ZYNQ_SDHCI) += zynq_sdhci.o
> @@ -66,3 +60,11 @@ obj-$(CONFIG_GENERIC_MMC) += mmc_write.o
>  endif
>  obj-$(CONFIG_PIC32_SDHCI) += pic32_sdhci.o
>  obj-$(CONFIG_MSM_SDHCI) += msm_sdhci.o
> +
> +# SDHCI
> +obj-$(CONFIG_MMC_SDHCI)			+= sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_BCM2835)		+= bcm2835_sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_KONA)		+= kona_sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_MV)		+= mv_sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_S5P)		+= s5p_sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_SPEAR)		+= spear_sdhci.o
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index 766e9ee..cbf5f56 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -72,7 +72,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,
>  				unsigned int start_addr)
>  {
>  	unsigned int stat, rdy, mask, timeout, block = 0;
> -#ifdef CONFIG_MMC_SDMA
> +#ifdef CONFIG_MMC_SDHCI_SDMA
>  	unsigned char ctrl;
>  	ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>  	ctrl &= ~SDHCI_CTRL_DMA_MASK;
> @@ -98,7 +98,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,
>  			if (++block >= data->blocks)
>  				break;
>  		}
> -#ifdef CONFIG_MMC_SDMA
> +#ifdef CONFIG_MMC_SDHCI_SDMA
>  		if (stat & SDHCI_INT_DMA_END) {
>  			sdhci_writel(host, SDHCI_INT_DMA_END, SDHCI_INT_STATUS);
>  			start_addr &= ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1);
> @@ -204,7 +204,7 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
>  		if (data->flags == MMC_DATA_READ)
>  			mode |= SDHCI_TRNS_READ;
>  
> -#ifdef CONFIG_MMC_SDMA
> +#ifdef CONFIG_MMC_SDHCI_SDMA
>  		if (data->flags == MMC_DATA_READ)
>  			start_addr = (unsigned long)data->dest;
>  		else
> @@ -241,7 +241,7 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
>  	}
>  
>  	sdhci_writel(host, cmd->cmdarg, SDHCI_ARGUMENT);
> -#ifdef CONFIG_MMC_SDMA
> +#ifdef CONFIG_MMC_SDHCI_SDMA
>  	trans_bytes = ALIGN(trans_bytes, CONFIG_SYS_CACHELINE_SIZE);
>  	flush_cache(start_addr, trans_bytes);
>  #endif
> @@ -540,7 +540,7 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
>  
>  	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
>  
> -#ifdef CONFIG_MMC_SDMA
> +#ifdef CONFIG_MMC_SDHCI_SDMA
>  	if (!(caps & SDHCI_CAN_DO_SDMA)) {
>  		printf("%s: Your controller doesn't support SDMA!!\n",
>  		       __func__);
> diff --git a/include/configs/bayleybay.h b/include/configs/bayleybay.h
> index 51d6ce0..8926047 100644
> --- a/include/configs/bayleybay.h
> +++ b/include/configs/bayleybay.h
> @@ -25,7 +25,6 @@
>  	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
>  
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  /* Environment configuration */
>  #define CONFIG_ENV_SECT_SIZE		0x1000
> diff --git a/include/configs/bcm23550_w1d.h b/include/configs/bcm23550_w1d.h
> index 68212a8..8f062e2 100644
> --- a/include/configs/bcm23550_w1d.h
> +++ b/include/configs/bcm23550_w1d.h
> @@ -31,8 +31,6 @@
>  #define CONFIG_KONA_GPIO
>  
>  /* MMC/SD Driver */
> -#define CONFIG_MMC_SDMA
> -#define CONFIG_KONA_SDHCI
>  #define CONFIG_GENERIC_MMC
>  
>  #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
> diff --git a/include/configs/bcm28155_ap.h b/include/configs/bcm28155_ap.h
> index 6fd0417..0882531 100644
> --- a/include/configs/bcm28155_ap.h
> +++ b/include/configs/bcm28155_ap.h
> @@ -30,8 +30,6 @@
>  #define CONFIG_KONA_GPIO
>  
>  /* MMC/SD Driver */
> -#define CONFIG_MMC_SDMA
> -#define CONFIG_KONA_SDHCI
>  #define CONFIG_GENERIC_MMC
>  
>  #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
> diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
> index 0a5171f..e520b1a 100644
> --- a/include/configs/clearfog.h
> +++ b/include/configs/clearfog.h
> @@ -43,9 +43,7 @@
>  /*
>   * SDIO/MMC Card Configuration
>   */
> -#define CONFIG_MMC_SDMA
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MV_SDHCI
>  #define CONFIG_SYS_MMC_BASE		MVEBU_SDIO_BASE
>  
>  /* Partition support */
> diff --git a/include/configs/conga-qeval20-qa3-e3845.h b/include/configs/conga-qeval20-qa3-e3845.h
> index f50b2a4..b28a1f2 100644
> --- a/include/configs/conga-qeval20-qa3-e3845.h
> +++ b/include/configs/conga-qeval20-qa3-e3845.h
> @@ -28,7 +28,6 @@
>  	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
>  
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  #undef CONFIG_USB_MAX_CONTROLLER_COUNT
>  #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
> diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
> index 8f67d14..cef2fd7 100644
> --- a/include/configs/crownbay.h
> +++ b/include/configs/crownbay.h
> @@ -27,7 +27,6 @@
>  	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SATA}
>  
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  /* Environment configuration */
>  #define CONFIG_ENV_SECT_SIZE		0x1000
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index 18a3f36..519f2d3 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -43,9 +43,7 @@
>  /*
>   * SDIO/MMC Card Configuration
>   */
> -#define CONFIG_MMC_SDMA
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MV_SDHCI
>  #define CONFIG_SYS_MMC_BASE		MVEBU_SDIO_BASE
>  
>  /*
> diff --git a/include/configs/dfi-bt700.h b/include/configs/dfi-bt700.h
> index 779e834..727baae 100644
> --- a/include/configs/dfi-bt700.h
> +++ b/include/configs/dfi-bt700.h
> @@ -30,7 +30,6 @@
>  	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
>  
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  #undef CONFIG_USB_MAX_CONTROLLER_COUNT
>  #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
> diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h
> index 440e227..8532ff5 100644
> --- a/include/configs/exynos-common.h
> +++ b/include/configs/exynos-common.h
> @@ -42,7 +42,6 @@
>  
>  /* SD/MMC configuration */
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_S5P_SDHCI
>  #define CONFIG_DWMMC
>  #define CONFIG_EXYNOS_DWMMC
>  #define CONFIG_BOUNCE_BUFFER
> diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h
> index 06fde38..ec45640 100644
> --- a/include/configs/exynos4-common.h
> +++ b/include/configs/exynos4-common.h
> @@ -18,7 +18,6 @@
>  #define CONFIG_REVISION_TAG
>  
>  /* SD/MMC configuration */
> -#define CONFIG_MMC_SDMA
>  #define CONFIG_MMC_DEFAULT_DEV	0
>  
>  #undef CONFIG_CMD_ONENAND
> diff --git a/include/configs/galileo.h b/include/configs/galileo.h
> index 6109dd7..26eb127 100644
> --- a/include/configs/galileo.h
> +++ b/include/configs/galileo.h
> @@ -31,7 +31,6 @@
>  
>  /* SD/MMC support */
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  /* 10/100M Ethernet support */
>  #define CONFIG_DESIGNWARE_ETH
> diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h
> index cc47d5a..5b17fd7 100644
> --- a/include/configs/minnowmax.h
> +++ b/include/configs/minnowmax.h
> @@ -28,7 +28,6 @@
>  	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
>  
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_MMC_SDMA
>  
>  #undef CONFIG_USB_MAX_CONTROLLER_COUNT
>  #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
> diff --git a/include/configs/rpi.h b/include/configs/rpi.h
> index 351e234..8005ac1 100644
> --- a/include/configs/rpi.h
> +++ b/include/configs/rpi.h
> @@ -84,7 +84,6 @@
>  /* SD/MMC configuration */
>  #define CONFIG_GENERIC_MMC
>  #define CONFIG_MMC_SDHCI_IO_ACCESSORS
> -#define CONFIG_BCM2835_SDHCI
>  
>  #ifdef CONFIG_CMD_USB
>  #define CONFIG_USB_DWC2
> diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
> index a69f086..6a61e5c 100644
> --- a/include/configs/s5p_goni.h
> +++ b/include/configs/s5p_goni.h
> @@ -48,7 +48,6 @@
>  
>  /* MMC */
>  #define CONFIG_GENERIC_MMC
> -#define CONFIG_S5P_SDHCI
>  #define SDHCI_MAX_HOSTS		4
>  
>  /* PWM */
>
Tom Rini Dec. 29, 2016, 10:50 p.m. UTC | #3
On Wed, Dec 07, 2016 at 10:10:29PM +0900, Masahiro Yamada wrote:

> While I moved the options, I also renamed them so that they are all
> prefixed with MMC_SDHCI_.
> 
> This commit was created in the following steps.
> 
> [1] Rename with the following command
> find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \
> -type f -print | xargs sed -i -e '
> s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g
> s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g
> s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g
> s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g
> s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g
> s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g
> '
> 
> [2] create the Kconfig entries in drivers/mmc/Kconfig
> 
> [3] Move the options by the following command
> tools/moveconfig.py -y MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 \
> MMC_SDHCI_KONA MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR
> 
> [4] Sort drivers/mmc/Makefile for readability
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>
> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/arch/arm/mach-mvebu/cpu.c b/arch/arm/mach-mvebu/cpu.c
index 5eb2a39..1445731 100644
--- a/arch/arm/mach-mvebu/cpu.c
+++ b/arch/arm/mach-mvebu/cpu.c
@@ -475,7 +475,7 @@  int arch_misc_init(void)
 }
 #endif /* CONFIG_ARCH_MISC_INIT */
 
-#ifdef CONFIG_MV_SDHCI
+#ifdef CONFIG_MMC_SDHCI_MV
 int board_mmc_init(bd_t *bis)
 {
 	mv_sdh_init(MVEBU_SDIO_BASE, 0, 0,
diff --git a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
index 0cb059f..533e99e 100644
--- a/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
+++ b/board/broadcom/bcm23550_w1d/bcm23550_w1d.c
@@ -68,7 +68,7 @@  void dram_init_banksize(void)
 	gd->bd->bi_dram[0].size = gd->ram_size;
 }
 
-#ifdef CONFIG_KONA_SDHCI
+#ifdef CONFIG_MMC_SDHCI_KONA
 /*
  * mmc_init - Initializes mmc
  */
diff --git a/board/broadcom/bcm28155_ap/bcm28155_ap.c b/board/broadcom/bcm28155_ap/bcm28155_ap.c
index b3a4a41..b868812 100644
--- a/board/broadcom/bcm28155_ap/bcm28155_ap.c
+++ b/board/broadcom/bcm28155_ap/bcm28155_ap.c
@@ -75,7 +75,7 @@  void dram_init_banksize(void)
 	gd->bd->bi_dram[0].size = gd->ram_size;
 }
 
-#ifdef CONFIG_KONA_SDHCI
+#ifdef CONFIG_MMC_SDHCI_KONA
 /*
  * mmc_init - Initializes mmc
  */
diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig
index a6eac81..cdfb739 100644
--- a/configs/arndale_defconfig
+++ b/configs/arndale_defconfig
@@ -23,6 +23,7 @@  CONFIG_CMD_SOUND=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SOUND=y
 CONFIG_I2S=y
 CONFIG_I2S_SAMSUNG=y
diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig
index 6be1795..63d17b1 100644
--- a/configs/bayleybay_defconfig
+++ b/configs/bayleybay_defconfig
@@ -42,6 +42,7 @@  CONFIG_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_CPU=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/bcm11130_defconfig b/configs/bcm11130_defconfig
index a1a9678..bf2f1f7 100644
--- a/configs/bcm11130_defconfig
+++ b/configs/bcm11130_defconfig
@@ -19,6 +19,8 @@  CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_KONA=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/bcm11130_nand_defconfig b/configs/bcm11130_nand_defconfig
index 8493d1b..7df4a52 100644
--- a/configs/bcm11130_nand_defconfig
+++ b/configs/bcm11130_nand_defconfig
@@ -19,6 +19,8 @@  CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_KONA=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/bcm23550_w1d_defconfig b/configs/bcm23550_w1d_defconfig
index 121372e..4c7709c 100644
--- a/configs/bcm23550_w1d_defconfig
+++ b/configs/bcm23550_w1d_defconfig
@@ -25,6 +25,8 @@  CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_KONA=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/bcm28155_ap_defconfig b/configs/bcm28155_ap_defconfig
index 173bfba..3325a4d 100644
--- a/configs/bcm28155_ap_defconfig
+++ b/configs/bcm28155_ap_defconfig
@@ -26,6 +26,8 @@  CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_KONA=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/bcm28155_w1d_defconfig b/configs/bcm28155_w1d_defconfig
index d5bb166..b161d38 100644
--- a/configs/bcm28155_w1d_defconfig
+++ b/configs/bcm28155_w1d_defconfig
@@ -20,6 +20,8 @@  CONFIG_CMD_GPIO=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_FAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_KONA=y
 CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig
index 2028568..4587807 100644
--- a/configs/clearfog_defconfig
+++ b/configs/clearfog_defconfig
@@ -36,6 +36,8 @@  CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_MV=y
 CONFIG_SPI_FLASH=y
 CONFIG_PCI=y
 CONFIG_DEBUG_UART=y
diff --git a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
index a468e13..812f516 100644
--- a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
+++ b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
@@ -46,6 +46,7 @@  CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_INTEL=y
 CONFIG_WINBOND_W83627=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/conga-qeval20-qa3-e3845_defconfig b/configs/conga-qeval20-qa3-e3845_defconfig
index 515d60a..cff6cc2 100644
--- a/configs/conga-qeval20-qa3-e3845_defconfig
+++ b/configs/conga-qeval20-qa3-e3845_defconfig
@@ -45,6 +45,7 @@  CONFIG_DM_I2C=y
 CONFIG_SYS_I2C_INTEL=y
 CONFIG_WINBOND_W83627=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
index 0ff8a2d..784c1b3 100644
--- a/configs/crownbay_defconfig
+++ b/configs/crownbay_defconfig
@@ -34,6 +34,7 @@  CONFIG_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_CPU=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
index cd2149d..bcc3128 100644
--- a/configs/db-88f6820-gp_defconfig
+++ b/configs/db-88f6820-gp_defconfig
@@ -33,6 +33,8 @@  CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_MV=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_SPI_FLASH_STMICRO=y
diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig
index 84f0559..b7eb006 100644
--- a/configs/dfi-bt700-q7x-151_defconfig
+++ b/configs/dfi-bt700-q7x-151_defconfig
@@ -43,6 +43,7 @@  CONFIG_CPU=y
 CONFIG_DM_I2C=y
 CONFIG_NUVOTON_NCT6102D=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig
index ca08a9b..7da870f 100644
--- a/configs/galileo_defconfig
+++ b/configs/galileo_defconfig
@@ -38,6 +38,7 @@  CONFIG_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_CPU=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig
index 4b4c5f2..f7ac94d 100644
--- a/configs/minnowmax_defconfig
+++ b/configs/minnowmax_defconfig
@@ -42,6 +42,7 @@  CONFIG_REGMAP=y
 CONFIG_SYSCON=y
 CONFIG_CPU=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
index 3dd0268..a6ec2ee 100644
--- a/configs/odroid-xu3_defconfig
+++ b/configs/odroid-xu3_defconfig
@@ -27,6 +27,7 @@  CONFIG_ADC_EXYNOS=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_DM_PMIC=y
 CONFIG_PMIC_S2MPS11=y
 CONFIG_DM_REGULATOR=y
diff --git a/configs/odroid_defconfig b/configs/odroid_defconfig
index 66391b4..e12208c 100644
--- a/configs/odroid_defconfig
+++ b/configs/odroid_defconfig
@@ -37,6 +37,8 @@  CONFIG_OF_CONTROL=y
 CONFIG_DFU_MMC=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_DM_PMIC=y
 CONFIG_DM_PMIC_MAX77686=y
 CONFIG_DM_REGULATOR=y
diff --git a/configs/origen_defconfig b/configs/origen_defconfig
index 13ba60c..0dcc9e8 100644
--- a/configs/origen_defconfig
+++ b/configs/origen_defconfig
@@ -30,6 +30,8 @@  CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_DFU_MMC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
index d5e11bf..ef02118 100644
--- a/configs/peach-pi_defconfig
+++ b/configs/peach-pi_defconfig
@@ -33,6 +33,7 @@  CONFIG_CROS_EC_KEYB=y
 CONFIG_CROS_EC=y
 CONFIG_CROS_EC_SPI=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index d71172d..14fe00e 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -33,6 +33,7 @@  CONFIG_CROS_EC_KEYB=y
 CONFIG_CROS_EC=y
 CONFIG_CROS_EC_SPI=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
index da43b39..9d669c9 100644
--- a/configs/rpi_2_defconfig
+++ b/configs/rpi_2_defconfig
@@ -15,6 +15,7 @@  CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_OF_EMBED=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
index 991e5de..d0f7bea 100644
--- a/configs/rpi_3_32b_defconfig
+++ b/configs/rpi_3_32b_defconfig
@@ -16,6 +16,7 @@  CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_OF_EMBED=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
 # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
index a4c7f69..ce28c31 100644
--- a/configs/rpi_3_defconfig
+++ b/configs/rpi_3_defconfig
@@ -16,6 +16,7 @@  CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_OF_EMBED=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
 # CONFIG_REQUIRE_SERIAL_CONSOLE is not set
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
index e5cd9f8..4a90ca8 100644
--- a/configs/rpi_defconfig
+++ b/configs/rpi_defconfig
@@ -15,6 +15,7 @@  CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_OF_EMBED=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_BCM2835=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_USB_KEYBOARD=y
diff --git a/configs/s5p_goni_defconfig b/configs/s5p_goni_defconfig
index 93d50d1..0271410 100644
--- a/configs/s5p_goni_defconfig
+++ b/configs/s5p_goni_defconfig
@@ -23,6 +23,7 @@  CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_DFU_MMC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_DWC2_OTG=y
diff --git a/configs/s5pc210_universal_defconfig b/configs/s5pc210_universal_defconfig
index 9b6f902..b6cefb1 100644
--- a/configs/s5pc210_universal_defconfig
+++ b/configs/s5pc210_universal_defconfig
@@ -30,6 +30,8 @@  CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_DFU_MMC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig
index 3c70120..b785efe 100644
--- a/configs/smdk5250_defconfig
+++ b/configs/smdk5250_defconfig
@@ -27,6 +27,7 @@  CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
index 5bc793c..daa46d4 100644
--- a/configs/smdk5420_defconfig
+++ b/configs/smdk5420_defconfig
@@ -24,6 +24,7 @@  CONFIG_CMD_TIME=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/smdkv310_defconfig b/configs/smdkv310_defconfig
index 6347e97..a75a1f0 100644
--- a/configs/smdkv310_defconfig
+++ b/configs/smdkv310_defconfig
@@ -23,5 +23,7 @@  CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
diff --git a/configs/snow_defconfig b/configs/snow_defconfig
index dbb6006..47b498b 100644
--- a/configs/snow_defconfig
+++ b/configs/snow_defconfig
@@ -34,6 +34,7 @@  CONFIG_CROS_EC_KEYB=y
 CONFIG_CROS_EC=y
 CONFIG_CROS_EC_I2C=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/spring_defconfig b/configs/spring_defconfig
index 27e66ec..4a782c8 100644
--- a/configs/spring_defconfig
+++ b/configs/spring_defconfig
@@ -34,6 +34,7 @@  CONFIG_CROS_EC_KEYB=y
 CONFIG_CROS_EC=y
 CONFIG_CROS_EC_I2C=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_WINBOND=y
diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig
index c28357e..f3c2c86 100644
--- a/configs/theadorable-x86-dfi-bt700_defconfig
+++ b/configs/theadorable-x86-dfi-bt700_defconfig
@@ -43,6 +43,7 @@  CONFIG_CPU=y
 CONFIG_DM_I2C=y
 CONFIG_NUVOTON_NCT6102D=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_GIGADEVICE=y
 CONFIG_SPI_FLASH_MACRONIX=y
diff --git a/configs/trats2_defconfig b/configs/trats2_defconfig
index b6923bc..9e88201 100644
--- a/configs/trats2_defconfig
+++ b/configs/trats2_defconfig
@@ -33,6 +33,8 @@  CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_DFU_MMC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
diff --git a/configs/trats_defconfig b/configs/trats_defconfig
index 352750d..92cf3f7 100644
--- a/configs/trats_defconfig
+++ b/configs/trats_defconfig
@@ -32,6 +32,8 @@  CONFIG_CMD_FS_GENERIC=y
 CONFIG_OF_CONTROL=y
 CONFIG_DFU_MMC=y
 CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_S5P=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_GADGET=y
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index 778469e..521c741 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -132,6 +132,70 @@  config MMC_SDHCI
 
 	  If unsure, say N.
 
+config MMC_SDHCI_SDMA
+	bool "Support SDHCI SDMA"
+	depends on MMC_SDHCI
+	help
+	  This enables support for the SDMA (Single Operation DMA) defined
+	  in the SD Host Controller Standard Specification Version 1.00 .
+
+config MMC_SDHCI_BCM2835
+	tristate "SDHCI support for the BCM2835 SD/MMC Controller"
+	depends on ARCH_BCM283X
+	depends on MMC_SDHCI
+	help
+	  This selects the BCM2835 SD/MMC controller.
+
+	  If you have a BCM2835 platform with SD or MMC devices,
+	  say Y here.
+
+	  If unsure, say N.
+
+config MMC_SDHCI_KONA
+	bool "SDHCI support on Broadcom KONA platform"
+	depends on MMC_SDHCI
+	help
+	  This selects the Broadcom Kona Secure Digital Host Controller
+	  Interface(SDHCI) support.
+	  This is used in Broadcom mobile SoCs.
+
+	  If you have a controller with this interface, say Y here.
+
+config MMC_SDHCI_MV
+	bool "SDHCI support on Marvell platform"
+	depends on ARCH_MVEBU
+	depends on MMC_SDHCI
+	help
+	  This selects the Secure Digital Host Controller Interface on
+	  Marvell platform.
+
+	  If you have a controller with this interface, say Y here.
+
+	  If unsure, say N.
+
+config MMC_SDHCI_S5P
+	bool "SDHCI support on Samsung S5P SoC"
+	depends on MMC_SDHCI
+	help
+	  This selects the Secure Digital Host Controller Interface (SDHCI)
+	  on Samsung S5P SoCs.
+
+	  If you have a controller with this interface, say Y here.
+
+	  If unsure, say N.
+
+config MMC_SDHCI_SPEAR
+	bool "SDHCI support on ST SPEAr platform"
+	depends on MMC_SDHCI
+	help
+	  This selects the Secure Digital Host Controller Interface (SDHCI)
+	  often referrered to as the HSMMC block in some of the ST SPEAR range
+	  of SoC
+
+	  If you have a controller with this interface, say Y here.
+
+	  If unsure, say N.
+
 endif
 
 endmenu
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
index 236f305..2b136ea 100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -15,7 +15,6 @@  endif
 
 obj-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o
 obj-$(CONFIG_ATMEL_SDHCI) += atmel_sdhci.o
-obj-$(CONFIG_BCM2835_SDHCI) += bcm2835_sdhci.o
 obj-$(CONFIG_BFIN_SDH) += bfin_sdh.o
 obj-$(CONFIG_DAVINCI_MMC) += davinci_mmc.o
 obj-$(CONFIG_DWMMC) += dw_mmc.o
@@ -29,10 +28,8 @@  ifdef CONFIG_SUPPORT_EMMC_BOOT
 obj-$(CONFIG_GENERIC_MMC) += mmc_boot.o
 endif
 obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o
-obj-$(CONFIG_KONA_SDHCI) += kona_sdhci.o
 obj-$(CONFIG_MMC_SPI) += mmc_spi.o
 obj-$(CONFIG_MMC_SUNXI) += sunxi_mmc.o
-obj-$(CONFIG_MV_SDHCI) += mv_sdhci.o
 obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o
 obj-$(CONFIG_MXC_MMC) += mxcmmc.o
 obj-$(CONFIG_MXS_MMC) += mxsmmc.o
@@ -42,17 +39,14 @@  obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o
 obj-$(CONFIG_ROCKCHIP_DWMMC) += rockchip_dw_mmc.o
 obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o
 obj-$(CONFIG_S3C_SDI) += s3c_sdi.o
-obj-$(CONFIG_S5P_SDHCI) += s5p_sdhci.o
 ifdef CONFIG_BLK
 ifdef CONFIG_GENERIC_MMC
 obj-$(CONFIG_SANDBOX) += sandbox_mmc.o
 endif
 endif
-obj-$(CONFIG_MMC_SDHCI) += sdhci.o
 obj-$(CONFIG_SH_MMCIF) += sh_mmcif.o
 obj-$(CONFIG_SH_SDHI) += sh_sdhi.o
 obj-$(CONFIG_SOCFPGA_DWMMC) += socfpga_dw_mmc.o
-obj-$(CONFIG_SPEAR_SDHCI) += spear_sdhci.o
 obj-$(CONFIG_TEGRA_MMC) += tegra_mmc.o
 obj-$(CONFIG_MMC_UNIPHIER) += uniphier-sd.o
 obj-$(CONFIG_ZYNQ_SDHCI) += zynq_sdhci.o
@@ -66,3 +60,11 @@  obj-$(CONFIG_GENERIC_MMC) += mmc_write.o
 endif
 obj-$(CONFIG_PIC32_SDHCI) += pic32_sdhci.o
 obj-$(CONFIG_MSM_SDHCI) += msm_sdhci.o
+
+# SDHCI
+obj-$(CONFIG_MMC_SDHCI)			+= sdhci.o
+obj-$(CONFIG_MMC_SDHCI_BCM2835)		+= bcm2835_sdhci.o
+obj-$(CONFIG_MMC_SDHCI_KONA)		+= kona_sdhci.o
+obj-$(CONFIG_MMC_SDHCI_MV)		+= mv_sdhci.o
+obj-$(CONFIG_MMC_SDHCI_S5P)		+= s5p_sdhci.o
+obj-$(CONFIG_MMC_SDHCI_SPEAR)		+= spear_sdhci.o
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 766e9ee..cbf5f56 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -72,7 +72,7 @@  static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,
 				unsigned int start_addr)
 {
 	unsigned int stat, rdy, mask, timeout, block = 0;
-#ifdef CONFIG_MMC_SDMA
+#ifdef CONFIG_MMC_SDHCI_SDMA
 	unsigned char ctrl;
 	ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
 	ctrl &= ~SDHCI_CTRL_DMA_MASK;
@@ -98,7 +98,7 @@  static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data,
 			if (++block >= data->blocks)
 				break;
 		}
-#ifdef CONFIG_MMC_SDMA
+#ifdef CONFIG_MMC_SDHCI_SDMA
 		if (stat & SDHCI_INT_DMA_END) {
 			sdhci_writel(host, SDHCI_INT_DMA_END, SDHCI_INT_STATUS);
 			start_addr &= ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1);
@@ -204,7 +204,7 @@  static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
 		if (data->flags == MMC_DATA_READ)
 			mode |= SDHCI_TRNS_READ;
 
-#ifdef CONFIG_MMC_SDMA
+#ifdef CONFIG_MMC_SDHCI_SDMA
 		if (data->flags == MMC_DATA_READ)
 			start_addr = (unsigned long)data->dest;
 		else
@@ -241,7 +241,7 @@  static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
 	}
 
 	sdhci_writel(host, cmd->cmdarg, SDHCI_ARGUMENT);
-#ifdef CONFIG_MMC_SDMA
+#ifdef CONFIG_MMC_SDHCI_SDMA
 	trans_bytes = ALIGN(trans_bytes, CONFIG_SYS_CACHELINE_SIZE);
 	flush_cache(start_addr, trans_bytes);
 #endif
@@ -540,7 +540,7 @@  int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
 
 	caps = sdhci_readl(host, SDHCI_CAPABILITIES);
 
-#ifdef CONFIG_MMC_SDMA
+#ifdef CONFIG_MMC_SDHCI_SDMA
 	if (!(caps & SDHCI_CAN_DO_SDMA)) {
 		printf("%s: Your controller doesn't support SDMA!!\n",
 		       __func__);
diff --git a/include/configs/bayleybay.h b/include/configs/bayleybay.h
index 51d6ce0..8926047 100644
--- a/include/configs/bayleybay.h
+++ b/include/configs/bayleybay.h
@@ -25,7 +25,6 @@ 
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
 
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 /* Environment configuration */
 #define CONFIG_ENV_SECT_SIZE		0x1000
diff --git a/include/configs/bcm23550_w1d.h b/include/configs/bcm23550_w1d.h
index 68212a8..8f062e2 100644
--- a/include/configs/bcm23550_w1d.h
+++ b/include/configs/bcm23550_w1d.h
@@ -31,8 +31,6 @@ 
 #define CONFIG_KONA_GPIO
 
 /* MMC/SD Driver */
-#define CONFIG_MMC_SDMA
-#define CONFIG_KONA_SDHCI
 #define CONFIG_GENERIC_MMC
 
 #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
diff --git a/include/configs/bcm28155_ap.h b/include/configs/bcm28155_ap.h
index 6fd0417..0882531 100644
--- a/include/configs/bcm28155_ap.h
+++ b/include/configs/bcm28155_ap.h
@@ -30,8 +30,6 @@ 
 #define CONFIG_KONA_GPIO
 
 /* MMC/SD Driver */
-#define CONFIG_MMC_SDMA
-#define CONFIG_KONA_SDHCI
 #define CONFIG_GENERIC_MMC
 
 #define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index 0a5171f..e520b1a 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -43,9 +43,7 @@ 
 /*
  * SDIO/MMC Card Configuration
  */
-#define CONFIG_MMC_SDMA
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MV_SDHCI
 #define CONFIG_SYS_MMC_BASE		MVEBU_SDIO_BASE
 
 /* Partition support */
diff --git a/include/configs/conga-qeval20-qa3-e3845.h b/include/configs/conga-qeval20-qa3-e3845.h
index f50b2a4..b28a1f2 100644
--- a/include/configs/conga-qeval20-qa3-e3845.h
+++ b/include/configs/conga-qeval20-qa3-e3845.h
@@ -28,7 +28,6 @@ 
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
 
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 #undef CONFIG_USB_MAX_CONTROLLER_COUNT
 #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
index 8f67d14..cef2fd7 100644
--- a/include/configs/crownbay.h
+++ b/include/configs/crownbay.h
@@ -27,7 +27,6 @@ 
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SATA}
 
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 /* Environment configuration */
 #define CONFIG_ENV_SECT_SIZE		0x1000
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index 18a3f36..519f2d3 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -43,9 +43,7 @@ 
 /*
  * SDIO/MMC Card Configuration
  */
-#define CONFIG_MMC_SDMA
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MV_SDHCI
 #define CONFIG_SYS_MMC_BASE		MVEBU_SDIO_BASE
 
 /*
diff --git a/include/configs/dfi-bt700.h b/include/configs/dfi-bt700.h
index 779e834..727baae 100644
--- a/include/configs/dfi-bt700.h
+++ b/include/configs/dfi-bt700.h
@@ -30,7 +30,6 @@ 
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
 
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 #undef CONFIG_USB_MAX_CONTROLLER_COUNT
 #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h
index 440e227..8532ff5 100644
--- a/include/configs/exynos-common.h
+++ b/include/configs/exynos-common.h
@@ -42,7 +42,6 @@ 
 
 /* SD/MMC configuration */
 #define CONFIG_GENERIC_MMC
-#define CONFIG_S5P_SDHCI
 #define CONFIG_DWMMC
 #define CONFIG_EXYNOS_DWMMC
 #define CONFIG_BOUNCE_BUFFER
diff --git a/include/configs/exynos4-common.h b/include/configs/exynos4-common.h
index 06fde38..ec45640 100644
--- a/include/configs/exynos4-common.h
+++ b/include/configs/exynos4-common.h
@@ -18,7 +18,6 @@ 
 #define CONFIG_REVISION_TAG
 
 /* SD/MMC configuration */
-#define CONFIG_MMC_SDMA
 #define CONFIG_MMC_DEFAULT_DEV	0
 
 #undef CONFIG_CMD_ONENAND
diff --git a/include/configs/galileo.h b/include/configs/galileo.h
index 6109dd7..26eb127 100644
--- a/include/configs/galileo.h
+++ b/include/configs/galileo.h
@@ -31,7 +31,6 @@ 
 
 /* SD/MMC support */
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 /* 10/100M Ethernet support */
 #define CONFIG_DESIGNWARE_ETH
diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h
index cc47d5a..5b17fd7 100644
--- a/include/configs/minnowmax.h
+++ b/include/configs/minnowmax.h
@@ -28,7 +28,6 @@ 
 	{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
 
 #define CONFIG_GENERIC_MMC
-#define CONFIG_MMC_SDMA
 
 #undef CONFIG_USB_MAX_CONTROLLER_COUNT
 #define CONFIG_USB_MAX_CONTROLLER_COUNT		1
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index 351e234..8005ac1 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -84,7 +84,6 @@ 
 /* SD/MMC configuration */
 #define CONFIG_GENERIC_MMC
 #define CONFIG_MMC_SDHCI_IO_ACCESSORS
-#define CONFIG_BCM2835_SDHCI
 
 #ifdef CONFIG_CMD_USB
 #define CONFIG_USB_DWC2
diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
index a69f086..6a61e5c 100644
--- a/include/configs/s5p_goni.h
+++ b/include/configs/s5p_goni.h
@@ -48,7 +48,6 @@ 
 
 /* MMC */
 #define CONFIG_GENERIC_MMC
-#define CONFIG_S5P_SDHCI
 #define SDHCI_MAX_HOSTS		4
 
 /* PWM */