U-Boot
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
January 2017
- 194 participants
- 600 discussions

[U-Boot] [PATCH v2 3/4] mmc: meson: add MMC driver for Meson GX (S905)
by Heiner Kallweit 31 Jan '17
by Heiner Kallweit 31 Jan '17
31 Jan '17
This driver implements MMC support on Meson GX (S905) based systems.
It's based on Carlo Caione's work, changes:
- BLK support added
- general refactoring
Original author: Carlo Caione <carlo(a)caione.org>
Signed-off-by: Heiner Kallweit <hkallweit1(a)gmail.com>
---
v2:
- addressed review comments
- general refactoring
---
arch/arm/include/asm/arch-meson/sd_emmc.h | 89 +++++++++
drivers/mmc/Kconfig | 11 ++
drivers/mmc/Makefile | 1 +
drivers/mmc/meson_gx_mmc.c | 291 ++++++++++++++++++++++++++++++
include/configs/meson-gxbb-common.h | 4 +
5 files changed, 396 insertions(+)
create mode 100644 arch/arm/include/asm/arch-meson/sd_emmc.h
create mode 100644 drivers/mmc/meson_gx_mmc.c
diff --git a/arch/arm/include/asm/arch-meson/sd_emmc.h b/arch/arm/include/asm/arch-meson/sd_emmc.h
new file mode 100644
index 0000000..25dbf60
--- /dev/null
+++ b/arch/arm/include/asm/arch-meson/sd_emmc.h
@@ -0,0 +1,89 @@
+/*
+ * (C) Copyright 2017 Carlo Caione <carlo(a)caione.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __SD_EMMC_H__
+#define __SD_EMMC_H__
+
+#include <mmc.h>
+
+#define SDIO_PORT_A 0
+#define SDIO_PORT_B 1
+#define SDIO_PORT_C 2
+
+#define SD_EMMC_CLKSRC_24M 24000000 /* 24 MHz */
+#define SD_EMMC_CLKSRC_DIV2 1000000000 /* 1 GHz */
+
+#define MESON_SD_EMMC_CLOCK 0x00
+#define CLK_MAX_DIV 63
+#define CLK_SRC_24M (0 << 6)
+#define CLK_SRC_DIV2 (1 << 6)
+#define CLK_CO_PHASE_000 (0 << 8)
+#define CLK_CO_PHASE_090 (1 << 8)
+#define CLK_CO_PHASE_180 (2 << 8)
+#define CLK_CO_PHASE_270 (3 << 8)
+#define CLK_TX_PHASE_000 (0 << 10)
+#define CLK_TX_PHASE_090 (1 << 10)
+#define CLK_TX_PHASE_180 (2 << 10)
+#define CLK_TX_PHASE_270 (3 << 10)
+#define CLK_ALWAYS_ON BIT(24)
+
+#define MESON_SD_EMMC_CFG 0x44
+#define CFG_BUS_WIDTH_MASK GENMASK(1, 0)
+#define CFG_BUS_WIDTH_1 0
+#define CFG_BUS_WIDTH_4 1
+#define CFG_BUS_WIDTH_8 2
+#define CFG_BL_LEN_MASK GENMASK(7, 4)
+#define CFG_BL_LEN_SHIFT 4
+#define CFG_BL_LEN_512 (9 << 4)
+#define CFG_RESP_TIMEOUT_MASK GENMASK(11, 8)
+#define CFG_RESP_TIMEOUT_256 (8 << 8)
+#define CFG_RC_CC_MASK GENMASK(15, 12)
+#define CFG_RC_CC_16 (4 << 12)
+#define CFG_SDCLK_ALWAYS_ON BIT(18)
+#define CFG_AUTO_CLK BIT(23)
+
+#define MESON_SD_EMMC_STATUS 0x48
+#define STATUS_MASK GENMASK(15, 0)
+#define STATUS_ERR_MASK GENMASK(12, 0)
+#define STATUS_RXD_ERR_MASK GENMASK(7, 0)
+#define STATUS_TXD_ERR BIT(8)
+#define STATUS_DESC_ERR BIT(9)
+#define STATUS_RESP_ERR BIT(10)
+#define STATUS_RESP_TIMEOUT BIT(11)
+#define STATUS_DESC_TIMEOUT BIT(12)
+#define STATUS_END_OF_CHAIN BIT(13)
+
+#define MESON_SD_EMMC_IRQ_EN 0x4c
+
+#define MESON_SD_EMMC_CMD_CFG 0x50
+#define CMD_CFG_LENGTH_MASK GENMASK(8, 0)
+#define CMD_CFG_BLOCK_MODE BIT(9)
+#define CMD_CFG_R1B BIT(10)
+#define CMD_CFG_END_OF_CHAIN BIT(11)
+#define CMD_CFG_TIMEOUT_4S (12 << 12)
+#define CMD_CFG_NO_RESP BIT(16)
+#define CMD_CFG_DATA_IO BIT(18)
+#define CMD_CFG_DATA_WR BIT(19)
+#define CMD_CFG_RESP_NOCRC BIT(20)
+#define CMD_CFG_RESP_128 BIT(21)
+#define CMD_CFG_CMD_INDEX_SHIFT 24
+#define CMD_CFG_OWNER BIT(31)
+
+#define MESON_SD_EMMC_CMD_ARG 0x54
+#define MESON_SD_EMMC_CMD_DAT 0x58
+#define MESON_SD_EMMC_CMD_RSP 0x5c
+#define MESON_SD_EMMC_CMD_RSP1 0x60
+#define MESON_SD_EMMC_CMD_RSP2 0x64
+#define MESON_SD_EMMC_CMD_RSP3 0x68
+
+struct meson_mmc_platdata {
+ struct mmc_config cfg;
+ struct mmc mmc;
+ void *regbase;
+ void *w_buf;
+};
+
+#endif
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index 9ed8da3..03416ff 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -168,6 +168,17 @@ config ZYNQ_SDHCI
help
Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
+config MMC_MESON_GX
+ bool "Meson GX EMMC controller support"
+ depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_MESON
+ help
+ Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
+
+config MMC_MESON_GX_SD_PORT
+ int "Meson SD port selection"
+ range 0 2
+ depends on MMC_MESON_GX
+
config ROCKCHIP_SDHCI
bool "Arasan SDHCI controller for Rockchip support"
depends on DM_MMC && BLK && DM_MMC_OPS
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
index 4dca09c..6e951a0 100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -31,6 +31,7 @@ ifdef CONFIG_SUPPORT_EMMC_BOOT
obj-$(CONFIG_GENERIC_MMC) += mmc_boot.o
endif
obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o
+obj-$(CONFIG_MMC_MESON_GX) += meson_gx_mmc.o
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o
obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
new file mode 100644
index 0000000..d4c6e04
--- /dev/null
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -0,0 +1,291 @@
+/*
+ * (C) Copyright 2017 Carlo Caione <carlo(a)caione.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <fdtdec.h>
+#include <malloc.h>
+#include <mmc.h>
+#include <asm/io.h>
+#include <asm/arch/sd_emmc.h>
+#include <dm/device.h>
+#include <linux/log2.h>
+
+static inline void *get_regbase(const struct mmc *mmc)
+{
+ struct meson_mmc_platdata *pdata = mmc->priv;
+
+ return pdata->regbase;
+}
+
+static inline uint32_t meson_read(struct mmc *mmc, int offset)
+{
+ return readl(get_regbase(mmc) + offset);
+}
+
+static inline void meson_write(struct mmc *mmc, uint32_t val, int offset)
+{
+ writel(val, get_regbase(mmc) + offset);
+}
+
+static void meson_mmc_config_clock(struct mmc *mmc)
+{
+ uint32_t meson_mmc_clk = 0;
+ unsigned int clk, clk_src, clk_div;
+
+ /* 1GHz / CLK_MAX_DIV = 15,9 MHz */
+ if (mmc->clock > 16000000) {
+ clk = SD_EMMC_CLKSRC_DIV2;
+ clk_src = CLK_SRC_DIV2;
+ } else {
+ clk = SD_EMMC_CLKSRC_24M;
+ clk_src = CLK_SRC_24M;
+ }
+ clk_div = DIV_ROUND_UP(clk, mmc->clock);
+
+ /* 180 phase core clock */
+ meson_mmc_clk |= CLK_CO_PHASE_180;
+
+ /* 180 phase tx clock */
+ meson_mmc_clk |= CLK_TX_PHASE_180;
+
+ /* clock settings */
+ meson_mmc_clk |= clk_src;
+ meson_mmc_clk |= clk_div;
+
+ meson_write(mmc, meson_mmc_clk, MESON_SD_EMMC_CLOCK);
+}
+
+static int meson_dm_mmc_set_ios(struct udevice *dev)
+{
+ struct mmc *mmc = mmc_get_mmc_dev(dev);
+ uint32_t meson_mmc_cfg;
+
+ meson_mmc_config_clock(mmc);
+
+ meson_mmc_cfg = meson_read(mmc, MESON_SD_EMMC_CFG);
+
+ meson_mmc_cfg &= ~CFG_BUS_WIDTH_MASK;
+ if (mmc->bus_width == 1)
+ meson_mmc_cfg |= CFG_BUS_WIDTH_1;
+ else if (mmc->bus_width == 4)
+ meson_mmc_cfg |= CFG_BUS_WIDTH_4;
+ else if (mmc->bus_width == 8)
+ meson_mmc_cfg |= CFG_BUS_WIDTH_8;
+ else
+ return -EINVAL;
+
+ /* 512 bytes block length */
+ meson_mmc_cfg &= ~CFG_BL_LEN_MASK;
+ meson_mmc_cfg |= CFG_BL_LEN_512;
+
+ /* Response timeout 256 clk */
+ meson_mmc_cfg &= ~CFG_RESP_TIMEOUT_MASK;
+ meson_mmc_cfg |= CFG_RESP_TIMEOUT_256;
+
+ /* Command-command gap 16 clk */
+ meson_mmc_cfg &= ~CFG_RC_CC_MASK;
+ meson_mmc_cfg |= CFG_RC_CC_16;
+
+ meson_write(mmc, meson_mmc_cfg, MESON_SD_EMMC_CFG);
+
+ return 0;
+}
+
+static void meson_mmc_setup_cmd(struct mmc *mmc, struct mmc_data *data,
+ struct mmc_cmd *cmd)
+{
+ uint32_t meson_mmc_cmd = 0, cfg;
+
+ meson_mmc_cmd |= cmd->cmdidx << CMD_CFG_CMD_INDEX_SHIFT;
+
+ if (cmd->resp_type & MMC_RSP_PRESENT) {
+ if (cmd->resp_type & MMC_RSP_136)
+ meson_mmc_cmd |= CMD_CFG_RESP_128;
+
+ if (cmd->resp_type & MMC_RSP_BUSY)
+ meson_mmc_cmd |= CMD_CFG_R1B;
+
+ if (!(cmd->resp_type & MMC_RSP_CRC))
+ meson_mmc_cmd |= CMD_CFG_RESP_NOCRC;
+ } else {
+ meson_mmc_cmd |= CMD_CFG_NO_RESP;
+ }
+
+ if (data) {
+ cfg = meson_read(mmc, MESON_SD_EMMC_CFG);
+ cfg &= ~CFG_BL_LEN_MASK;
+ cfg |= ilog2(data->blocksize) << CFG_BL_LEN_SHIFT;
+ meson_write(mmc, cfg, MESON_SD_EMMC_CFG);
+
+ if (data->flags == MMC_DATA_WRITE)
+ meson_mmc_cmd |= CMD_CFG_DATA_WR;
+
+ cfg = CMD_CFG_DATA_IO | CMD_CFG_BLOCK_MODE | data->blocks;
+ meson_mmc_cmd |= cfg;
+ }
+
+ cfg = CMD_CFG_TIMEOUT_4S | CMD_CFG_OWNER | CMD_CFG_END_OF_CHAIN;
+ meson_mmc_cmd |= cfg;
+
+ meson_write(mmc, meson_mmc_cmd, MESON_SD_EMMC_CMD_CFG);
+}
+
+static void meson_mmc_setup_addr(struct mmc *mmc, struct mmc_data *data)
+{
+ struct meson_mmc_platdata *pdata = mmc->priv;
+ unsigned int data_size;
+ uint32_t data_addr = 0;
+
+ if (data) {
+ data_size = data->blocks * data->blocksize;
+
+ if (data->flags == MMC_DATA_READ) {
+ data_addr = (ulong) data->dest;
+ invalidate_dcache_range(data_addr,
+ data_addr + data_size);
+ } else if (data->flags == MMC_DATA_WRITE) {
+ pdata->w_buf = calloc(data_size, sizeof(char));
+ data_addr = (ulong) pdata->w_buf;
+ memcpy(pdata->w_buf, data->src, data_size);
+ flush_dcache_range(data_addr, data_addr + data_size);
+ }
+ }
+
+ meson_write(mmc, data_addr, MESON_SD_EMMC_CMD_DAT);
+}
+
+static void meson_mmc_read_response(struct mmc *mmc, struct mmc_cmd *cmd)
+{
+ if (cmd->resp_type & MMC_RSP_136) {
+ cmd->response[0] = meson_read(mmc, MESON_SD_EMMC_CMD_RSP3);
+ cmd->response[1] = meson_read(mmc, MESON_SD_EMMC_CMD_RSP2);
+ cmd->response[2] = meson_read(mmc, MESON_SD_EMMC_CMD_RSP1);
+ cmd->response[3] = meson_read(mmc, MESON_SD_EMMC_CMD_RSP);
+ } else {
+ cmd->response[0] = meson_read(mmc, MESON_SD_EMMC_CMD_RSP);
+ }
+}
+
+static int meson_dm_mmc_send_cmd(struct udevice *dev, struct mmc_cmd *cmd,
+ struct mmc_data *data)
+{
+ struct mmc *mmc = mmc_get_mmc_dev(dev);
+ struct meson_mmc_platdata *pdata = mmc->priv;
+ uint32_t status;
+ ulong start;
+ int ret = 0;
+
+ /* max block size supported by chip is 512 byte */
+ if (data && data->blocksize > 512)
+ return -EINVAL;
+
+ meson_mmc_setup_cmd(mmc, data, cmd);
+ meson_mmc_setup_addr(mmc, data);
+
+ meson_write(mmc, cmd->cmdarg, MESON_SD_EMMC_CMD_ARG);
+
+ /* use 10s timeout */
+ start = get_timer(0);
+ do {
+ status = meson_read(mmc, MESON_SD_EMMC_STATUS);
+ } while(!(status & STATUS_END_OF_CHAIN) && get_timer(start) < 10000);
+
+ if (!(status & STATUS_END_OF_CHAIN))
+ ret = -ETIMEDOUT;
+ else if (status & STATUS_RESP_TIMEOUT)
+ ret = -ETIMEDOUT;
+ else if (status & STATUS_ERR_MASK)
+ ret = -EIO;
+
+ meson_mmc_read_response(mmc, cmd);
+
+ if (data && data->flags == MMC_DATA_WRITE)
+ free(pdata->w_buf);
+
+ /* reset status bits */
+ meson_write(mmc, STATUS_MASK, MESON_SD_EMMC_STATUS);
+
+ return ret;
+}
+
+static const struct dm_mmc_ops meson_dm_mmc_ops = {
+ .send_cmd = meson_dm_mmc_send_cmd,
+ .set_ios = meson_dm_mmc_set_ios,
+};
+
+static int meson_mmc_ofdata_to_platdata(struct udevice *dev)
+{
+ struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+ fdt_addr_t addr;
+
+ addr = dev_get_addr(dev);
+ if (addr == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ pdata->regbase = (void *)addr;
+
+ return 0;
+}
+
+static int meson_mmc_probe(struct udevice *dev)
+{
+ struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+ struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
+ struct mmc *mmc = &pdata->mmc;
+ struct mmc_config *cfg = &pdata->cfg;
+ uint32_t val;
+
+ cfg->voltages = MMC_VDD_33_34 | MMC_VDD_32_33 |
+ MMC_VDD_31_32 | MMC_VDD_165_195;
+ cfg->host_caps = MMC_MODE_8BIT | MMC_MODE_4BIT |
+ MMC_MODE_HS_52MHz | MMC_MODE_HS;
+ cfg->f_min = DIV_ROUND_UP(SD_EMMC_CLKSRC_24M, CLK_MAX_DIV);
+ cfg->f_max = 100000000; /* 100 MHz */
+ cfg->b_max = 256; /* max 256 blocks */
+ cfg->name = dev->name;
+
+ mmc->priv = pdata;
+ upriv->mmc = mmc;
+
+ mmc_set_clock(mmc, cfg->f_min);
+
+ /* reset all status bits */
+ meson_write(mmc, STATUS_MASK, MESON_SD_EMMC_STATUS);
+
+ /* disable interrupts */
+ meson_write(mmc, 0, MESON_SD_EMMC_IRQ_EN);
+
+ /* enable auto clock mode */
+ val = meson_read(mmc, MESON_SD_EMMC_CFG);
+ val &= ~CFG_SDCLK_ALWAYS_ON;
+ val |= CFG_AUTO_CLK;
+ meson_write(mmc, val, MESON_SD_EMMC_CFG);
+
+ return 0;
+}
+
+int meson_mmc_bind(struct udevice *dev)
+{
+ struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
+
+ return mmc_bind(dev, &pdata->mmc, &pdata->cfg);
+}
+
+static const struct udevice_id meson_mmc_match[] = {
+ { .compatible = "amlogic,meson-gx-mmc" },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(meson_mmc) = {
+ .name = "meson_gx_mmc",
+ .id = UCLASS_MMC,
+ .of_match = meson_mmc_match,
+ .ops = &meson_dm_mmc_ops,
+ .probe = meson_mmc_probe,
+ .bind = meson_mmc_bind,
+ .ofdata_to_platdata = meson_mmc_ofdata_to_platdata,
+ .platdata_auto_alloc_size = sizeof(struct meson_mmc_platdata),
+};
diff --git a/include/configs/meson-gxbb-common.h b/include/configs/meson-gxbb-common.h
index 3bba2e6..53c04a9 100644
--- a/include/configs/meson-gxbb-common.h
+++ b/include/configs/meson-gxbb-common.h
@@ -24,6 +24,10 @@
#define CONFIG_SYS_INIT_SP_ADDR 0x20000000
#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_TEXT_BASE
+#ifdef CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#endif
+
/* Generic Interrupt Controller Definitions */
#define GICD_BASE 0xc4301000
#define GICC_BASE 0xc4302000
--
2.11.0
3
3

31 Jan '17
Now, CONFIG_GENERIC_MMC seems equivalent to CONFIG_MMC.
Let's create an entry for "config GENERIC_MMC" with "default MMC",
then convert all macro defines in headers to Kconfig. Almost all
of the defines will go away.
I see only two exceptions:
configs/blanche_defconfig
configs/sandbox_noblk_defconfig
They define CONFIG_GENERIC_MMC, but not CONFIG_MMC. Something
might be wrong with these two boards, so should be checked later.
Anyway, this is the output of the moveconfig tool.
This commit was created as follows:
[1] create a config entry in drivers/mmc/Kconfig
[2] tools/moveconfig.py -r HEAD GENERIC_MMC
[3] manual clean-up of garbage comments in doc/README.* and
include/configs/*.h
Signed-off-by: Masahiro Yamada <yamada.masahiro(a)socionext.com>
Reviewed-by: Tom Rini <trini(a)konsulko.com>
---
Changes in v2:
- Rebase on aac477e
README | 3 ---
configs/blanche_defconfig | 3 ++-
configs/sandbox_noblk_defconfig | 1 +
doc/README.atmel_mci | 2 --
doc/README.socfpga | 3 ---
drivers/mmc/Kconfig | 4 ++++
include/configs/BSC9132QDS.h | 1 -
include/configs/MPC8308RDB.h | 2 --
include/configs/MPC837XEMDS.h | 1 -
include/configs/MPC837XERDB.h | 1 -
include/configs/MPC8536DS.h | 1 -
include/configs/MPC8569MDS.h | 1 -
include/configs/P1010RDB.h | 1 -
include/configs/P1022DS.h | 1 -
include/configs/P2041RDB.h | 1 -
include/configs/T102xQDS.h | 1 -
include/configs/T102xRDB.h | 1 -
include/configs/T1040QDS.h | 1 -
include/configs/T104xRDB.h | 1 -
include/configs/T208xQDS.h | 1 -
include/configs/T208xRDB.h | 1 -
include/configs/T4240QDS.h | 1 -
include/configs/T4240RDB.h | 1 -
include/configs/UCP1020.h | 1 -
include/configs/adp-ag101p.h | 1 -
include/configs/advantech_dms-ba16.h | 1 -
include/configs/alt.h | 2 --
include/configs/am3517_crane.h | 1 -
include/configs/am3517_evm.h | 3 ---
include/configs/apalis_imx6.h | 1 -
include/configs/apalis_t30.h | 3 ---
include/configs/apf27.h | 1 -
include/configs/at91sam9260ek.h | 1 -
include/configs/at91sam9263ek.h | 1 -
include/configs/at91sam9m10g45ek.h | 1 -
include/configs/at91sam9n12ek.h | 1 -
include/configs/at91sam9rlek.h | 1 -
include/configs/at91sam9x5ek.h | 1 -
include/configs/atngw100.h | 1 -
include/configs/atngw100mkii.h | 1 -
include/configs/atstk1002.h | 1 -
include/configs/axs10x.h | 5 -----
include/configs/bayleybay.h | 2 --
include/configs/bcm23550_w1d.h | 2 --
include/configs/bcm28155_ap.h | 2 --
include/configs/beaver.h | 3 ---
include/configs/bf518f-ezbrd.h | 1 -
include/configs/bf527-ad7160-eval.h | 1 -
include/configs/bf537-stamp.h | 3 ---
include/configs/bf548-ezkit.h | 1 -
include/configs/bf609-ezkit.h | 1 -
include/configs/blanche.h | 2 --
include/configs/brppt1.h | 1 -
include/configs/brxre1.h | 1 -
include/configs/cardhu.h | 3 ---
include/configs/cei-tk1-som.h | 3 ---
include/configs/clearfog.h | 1 -
include/configs/cm-bf537e.h | 1 -
include/configs/cm-bf537u.h | 1 -
include/configs/cm_t35.h | 2 --
include/configs/cm_t3517.h | 2 --
include/configs/colibri_imx6.h | 1 -
include/configs/colibri_t20.h | 3 ---
include/configs/colibri_t30.h | 3 ---
include/configs/colibri_vf.h | 2 --
include/configs/conga-qeval20-qa3-e3845.h | 2 --
include/configs/controlcenterd.h | 2 --
include/configs/corenet_ds.h | 1 -
include/configs/crownbay.h | 2 --
include/configs/cyrus.h | 1 -
include/configs/da850evm.h | 5 -----
include/configs/dalmore.h | 3 ---
include/configs/db-88f6820-gp.h | 1 -
include/configs/dfi-bt700.h | 2 --
include/configs/dragonboard410c.h | 3 ---
include/configs/e2220-1170.h | 3 ---
include/configs/ethernut5.h | 1 -
include/configs/exynos-common.h | 1 -
include/configs/galileo.h | 3 ---
include/configs/ge_bx50v3.h | 1 -
include/configs/gose.h | 1 -
include/configs/harmony.h | 3 ---
include/configs/hikey.h | 1 -
include/configs/hrcon.h | 2 --
include/configs/imx27lite-common.h | 5 -----
include/configs/jetson-tk1.h | 3 ---
include/configs/k2g_evm.h | 3 ---
include/configs/kc1.h | 6 ------
include/configs/koelsch.h | 1 -
include/configs/lager.h | 2 --
include/configs/legoev3.h | 3 ---
include/configs/ls1012aqds.h | 1 -
include/configs/ls1012ardb.h | 1 -
include/configs/ls1021aiot.h | 1 -
include/configs/ls1021aqds.h | 1 -
include/configs/ls1021atwr.h | 1 -
include/configs/ls1043a_common.h | 1 -
include/configs/ls1046a_common.h | 1 -
include/configs/ls2080a_simu.h | 1 -
include/configs/ls2080aqds.h | 1 -
include/configs/ls2080ardb.h | 1 -
include/configs/m53evk.h | 1 -
include/configs/ma5d4evk.h | 1 -
include/configs/mcx.h | 1 -
include/configs/medcom-wide.h | 3 ---
include/configs/minnowmax.h | 2 --
include/configs/mvebu_armada-8k.h | 3 ---
include/configs/mvebu_db-88f3720.h | 3 ---
include/configs/mx25pdk.h | 1 -
include/configs/mx35pdk.h | 1 -
include/configs/mx51evk.h | 2 --
include/configs/mx53ard.h | 2 --
include/configs/mx53cx9020.h | 2 --
include/configs/mx53evk.h | 2 --
include/configs/mx53loco.h | 2 --
include/configs/mx53smd.h | 2 --
include/configs/mx6_common.h | 1 -
include/configs/mx7_common.h | 1 -
include/configs/mxs.h | 1 -
include/configs/nokia_rx51.h | 1 -
include/configs/nyan-big.h | 3 ---
include/configs/omap3_evm.h | 3 ---
include/configs/omapl138_lcdk.h | 2 --
include/configs/openrd.h | 1 -
include/configs/p1_p2_rdb_pc.h | 1 -
include/configs/p1_twr.h | 1 -
include/configs/p2371-0000.h | 3 ---
include/configs/p2371-2180.h | 3 ---
include/configs/p2571.h | 3 ---
include/configs/p2771-0000.h | 3 ---
include/configs/paz00.h | 3 ---
include/configs/pcm052.h | 2 --
include/configs/pic32mzdask.h | 5 -----
include/configs/pico-imx6ul.h | 2 --
include/configs/picosam9g45.h | 1 -
include/configs/plutux.h | 3 ---
include/configs/porter.h | 1 -
include/configs/pxa-common.h | 1 -
include/configs/rk3036_common.h | 1 -
include/configs/rk3288_common.h | 1 -
include/configs/rk3399_common.h | 1 -
include/configs/rpi.h | 3 ---
include/configs/s32v234evb.h | 1 -
include/configs/s5p_goni.h | 1 -
include/configs/sama5d2_xplained.h | 5 -----
include/configs/sama5d3_xplained.h | 1 -
include/configs/sama5d3xek.h | 1 -
include/configs/sama5d4_xplained.h | 1 -
include/configs/sama5d4ek.h | 1 -
include/configs/sandbox.h | 2 --
include/configs/seaboard.h | 3 ---
include/configs/sh7752evb.h | 1 -
include/configs/sh7753evb.h | 1 -
include/configs/sh7757lcr.h | 1 -
include/configs/sheevaplug.h | 1 -
include/configs/siemens-am33x-common.h | 2 --
include/configs/silk.h | 1 -
include/configs/snapper9g45.h | 1 -
include/configs/sniper.h | 6 ------
include/configs/socfpga_common.h | 1 -
include/configs/stout.h | 3 ---
include/configs/strider.h | 2 --
include/configs/sunxi-common.h | 1 -
include/configs/tam3517-common.h | 2 --
include/configs/tao3530.h | 1 -
include/configs/tcm-bf537.h | 1 -
include/configs/tec-ng.h | 3 ---
include/configs/tec.h | 3 ---
include/configs/tegra-common-post.h | 7 -------
include/configs/ti814x_evm.h | 1 -
include/configs/ti816x_evm.h | 1 -
include/configs/ti_armv7_common.h | 3 ---
include/configs/ti_armv7_keystone2.h | 7 -------
include/configs/tricorder.h | 3 ---
include/configs/trimslice.h | 3 ---
include/configs/ts4800.h | 2 --
include/configs/uniphier.h | 1 -
include/configs/usbarmory.h | 1 -
include/configs/venice2.h | 3 ---
include/configs/ventana.h | 3 ---
include/configs/vexpress_common.h | 1 -
include/configs/vf610twr.h | 2 --
include/configs/vinco.h | 1 -
include/configs/whistler.h | 3 ---
include/configs/woodburn_common.h | 1 -
include/configs/xilinx_zynqmp.h | 1 -
include/configs/zipitz2.h | 1 -
include/configs/zynq-common.h | 1 -
scripts/config_whitelist.txt | 1 -
189 files changed, 7 insertions(+), 341 deletions(-)
diff --git a/README b/README
index a95348a..9c992c1 100644
--- a/README
+++ b/README
@@ -1457,9 +1457,6 @@ The following options need to be configured:
CONFIG_SH_MMCIF_CLK
Define the clock frequency for MMCIF
- CONFIG_GENERIC_MMC
- Enable the generic MMC driver
-
CONFIG_SUPPORT_EMMC_BOOT
Enable some additional features of the eMMC boot partitions.
diff --git a/configs/blanche_defconfig b/configs/blanche_defconfig
index 8dcbdd2..d662764 100644
--- a/configs/blanche_defconfig
+++ b/configs/blanche_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
CONFIG_ARCH_RMOBILE=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_TARGET_BLANCHE=y
-# CONFIG_MMC is not set
CONFIG_BOOTSTAGE_USER_COUNT=0x20
CONFIG_BOOTSTAGE_STASH_ADDR=0x0
CONFIG_BOOTSTAGE_STASH_SIZE=0x4096
@@ -19,6 +18,8 @@ CONFIG_CMD_EXT2=y
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
+# CONFIG_MMC is not set
+CONFIG_GENERIC_MMC=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_BAR=y
CONFIG_SPI_FLASH_SPANSION=y
diff --git a/configs/sandbox_noblk_defconfig b/configs/sandbox_noblk_defconfig
index 6dc2591..10e12bf 100644
--- a/configs/sandbox_noblk_defconfig
+++ b/configs/sandbox_noblk_defconfig
@@ -100,6 +100,7 @@ CONFIG_CROS_EC_SPI=y
CONFIG_PWRSEQ=y
CONFIG_SPL_PWRSEQ=y
# CONFIG_MMC is not set
+CONFIG_GENERIC_MMC=y
CONFIG_SPI_FLASH_SANDBOX=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_ATMEL=y
diff --git a/doc/README.atmel_mci b/doc/README.atmel_mci
index 1ec4465..6043dab 100644
--- a/doc/README.atmel_mci
+++ b/doc/README.atmel_mci
@@ -69,8 +69,6 @@ int board_mmc_getcd(struct mmc *mmc)
and the board definition files needs:
/* SD/MMC card */
-#define CONFIG_MMC 1
-#define CONFIG_GENERIC_MMC 1
#define CONFIG_GENERIC_ATMEL_MCI 1
#define CONFIG_ATMEL_MCI_PORTB 1 /* Atmel XE-EK uses port B */
#define CONFIG_SYS_MMC_CD_PIN AT91_PIN_PC9
diff --git a/doc/README.socfpga b/doc/README.socfpga
index e717637..cb805cf 100644
--- a/doc/README.socfpga
+++ b/doc/README.socfpga
@@ -14,8 +14,5 @@ socfpga_dw_mmc
Here are macro and detailed configuration required to enable DesignWare SDMMC
controller support within SOCFPGA
-#define CONFIG_GENERIC_MMC
--> Enable the generic MMC driver
-
#define CONFIG_SYS_MMC_MAX_BLK_COUNT 256
-> Using smaller max blk cnt to avoid flooding the limited stack in OCRAM
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index 147e52d..df4913b 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -10,6 +10,10 @@ config MMC
If you want MMC/SD/SDIO support, you should say Y here and
also to your specific host controller driver.
+config GENERIC_MMC
+ bool "Generic MMC driver framework"
+ default MMC
+
config DM_MMC
bool "Enable MMC controllers using Driver Model"
depends on DM
diff --git a/include/configs/BSC9132QDS.h b/include/configs/BSC9132QDS.h
index f336f28..9e729fd 100644
--- a/include/configs/BSC9132QDS.h
+++ b/include/configs/BSC9132QDS.h
@@ -478,7 +478,6 @@ combinations. this should be removed later
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#endif
diff --git a/include/configs/MPC8308RDB.h b/include/configs/MPC8308RDB.h
index f833450..4dbc2ba 100644
--- a/include/configs/MPC8308RDB.h
+++ b/include/configs/MPC8308RDB.h
@@ -25,8 +25,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_USE_PIO
-
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/MPC837XEMDS.h b/include/configs/MPC837XEMDS.h
index 62d56ca..4239f77 100644
--- a/include/configs/MPC837XEMDS.h
+++ b/include/configs/MPC837XEMDS.h
@@ -485,7 +485,6 @@ extern int board_pci_host_broken(void);
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
index 67ed648..370e381 100644
--- a/include/configs/MPC837XERDB.h
+++ b/include/configs/MPC837XERDB.h
@@ -497,7 +497,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/MPC8536DS.h b/include/configs/MPC8536DS.h
index bc703ce..4635cdf 100644
--- a/include/configs/MPC8536DS.h
+++ b/include/configs/MPC8536DS.h
@@ -603,7 +603,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/MPC8569MDS.h b/include/configs/MPC8569MDS.h
index 2b0d98b..caa52be 100644
--- a/include/configs/MPC8569MDS.h
+++ b/include/configs/MPC8569MDS.h
@@ -463,7 +463,6 @@ extern unsigned long get_clock_freq(void);
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_ESDHC_PIN_MUX
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h
index 1d01e7f..baa8369 100644
--- a/include/configs/P1010RDB.h
+++ b/include/configs/P1010RDB.h
@@ -669,7 +669,6 @@ extern unsigned long get_sdram_size(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#endif
diff --git a/include/configs/P1022DS.h b/include/configs/P1022DS.h
index 89eec12..f1d8116 100644
--- a/include/configs/P1022DS.h
+++ b/include/configs/P1022DS.h
@@ -504,7 +504,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#endif
diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h
index f58fda1..15384f1 100644
--- a/include/configs/P2041RDB.h
+++ b/include/configs/P2041RDB.h
@@ -606,7 +606,6 @@ unsigned long get_board_sys_clk(unsigned long dummy);
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
-#define CONFIG_GENERIC_MMC
#endif
/* Hash command with SHA acceleration supported in hardware */
diff --git a/include/configs/T102xQDS.h b/include/configs/T102xQDS.h
index 2c3b660..00ffb83 100644
--- a/include/configs/T102xQDS.h
+++ b/include/configs/T102xQDS.h
@@ -654,7 +654,6 @@ unsigned long get_board_ddr_clk(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/* Qman/Bman */
diff --git a/include/configs/T102xRDB.h b/include/configs/T102xRDB.h
index 79c34ef..02c3fdd 100644
--- a/include/configs/T102xRDB.h
+++ b/include/configs/T102xRDB.h
@@ -658,7 +658,6 @@ unsigned long get_board_ddr_clk(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/* Qman/Bman */
diff --git a/include/configs/T1040QDS.h b/include/configs/T1040QDS.h
index 15a29cb..bd8e46e 100644
--- a/include/configs/T1040QDS.h
+++ b/include/configs/T1040QDS.h
@@ -542,7 +542,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC_ADAPTER_IDENT
#endif
diff --git a/include/configs/T104xRDB.h b/include/configs/T104xRDB.h
index 45aaf90..82d3f10 100644
--- a/include/configs/T104xRDB.h
+++ b/include/configs/T104xRDB.h
@@ -652,7 +652,6 @@ $(SRCTREE)/board/freescale/t104xrdb/t1042d4_sd_rcw.cfg
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
/* Qman/Bman */
diff --git a/include/configs/T208xQDS.h b/include/configs/T208xQDS.h
index 606c928..a9835b9 100644
--- a/include/configs/T208xQDS.h
+++ b/include/configs/T208xQDS.h
@@ -721,7 +721,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC_ADAPTER_IDENT
#endif
diff --git a/include/configs/T208xRDB.h b/include/configs/T208xRDB.h
index 825bf25..1e2b94e 100644
--- a/include/configs/T208xRDB.h
+++ b/include/configs/T208xRDB.h
@@ -670,7 +670,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/T4240QDS.h b/include/configs/T4240QDS.h
index 91aa12d..2bcb362 100644
--- a/include/configs/T4240QDS.h
+++ b/include/configs/T4240QDS.h
@@ -519,7 +519,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
#define CONFIG_ESDHC_DETECT_QUIRK \
(!(readb(QIXIS_BASE + QIXIS_BRDCFG5) & QIXIS_MUX_SDHC) || \
diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
index be18f66..2a1b547 100644
--- a/include/configs/T4240RDB.h
+++ b/include/configs/T4240RDB.h
@@ -699,7 +699,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
#endif
diff --git a/include/configs/UCP1020.h b/include/configs/UCP1020.h
index ad1a387..28f4b14 100644
--- a/include/configs/UCP1020.h
+++ b/include/configs/UCP1020.h
@@ -473,7 +473,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_MMC_SPI
#define CONFIG_CMD_MMC_SPI
-#define CONFIG_GENERIC_MMC
#endif
/* Misc Extra Settings */
diff --git a/include/configs/adp-ag101p.h b/include/configs/adp-ag101p.h
index dbf85e1..a2cdd71 100644
--- a/include/configs/adp-ag101p.h
+++ b/include/configs/adp-ag101p.h
@@ -100,7 +100,6 @@
/*
* SD (MMC) controller
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_FTSDC010
#define CONFIG_FTSDC010_NUMBER 1
#define CONFIG_FTSDC010_SDIO
diff --git a/include/configs/advantech_dms-ba16.h b/include/configs/advantech_dms-ba16.h
index 33f9e33..1736426 100644
--- a/include/configs/advantech_dms-ba16.h
+++ b/include/configs/advantech_dms-ba16.h
@@ -52,7 +52,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_USDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
/* USB Configs */
diff --git a/include/configs/alt.h b/include/configs/alt.h
index 726e6d6..e338fa9 100644
--- a/include/configs/alt.h
+++ b/include/configs/alt.h
@@ -87,8 +87,6 @@
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
/* MMCIF */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SH_MMCIF
#define CONFIG_SH_MMCIF_ADDR 0xee200000
#define CONFIG_SH_MMCIF_CLK 48000000
diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h
index b916603..5d56860 100644
--- a/include/configs/am3517_crane.h
+++ b/include/configs/am3517_crane.h
@@ -75,7 +75,6 @@
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-#define CONFIG_GENERIC_MMC 1
/*
* USB configuration
diff --git a/include/configs/am3517_evm.h b/include/configs/am3517_evm.h
index 1b9d5ff..13de819 100644
--- a/include/configs/am3517_evm.h
+++ b/include/configs/am3517_evm.h
@@ -76,9 +76,6 @@
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/*
* USB configuration
* Enable CONFIG_USB_MUSB_HOST for Host functionalities MSC, keyboard
diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
index 8cc3874..8e8892e 100644
--- a/include/configs/apalis_imx6.h
+++ b/include/configs/apalis_imx6.h
@@ -67,7 +67,6 @@
#define CONFIG_SYS_FSL_USDHC_NUM 3
#define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FAT_WRITE
diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h
index e645ad2..e2acc6e 100644
--- a/include/configs/apalis_t30.h
+++ b/include/configs/apalis_t30.h
@@ -25,9 +25,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC support */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, before config block at the end of 1st "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE + \
diff --git a/include/configs/apf27.h b/include/configs/apf27.h
index caa821b..504bf92 100644
--- a/include/configs/apf27.h
+++ b/include/configs/apf27.h
@@ -307,7 +307,6 @@
* SD/MMC
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_MXC_MCI_REGS_BASE 0x10014000
#endif
diff --git a/include/configs/at91sam9260ek.h b/include/configs/at91sam9260ek.h
index 724231f..022353c 100644
--- a/include/configs/at91sam9260ek.h
+++ b/include/configs/at91sam9260ek.h
@@ -145,7 +145,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
index d8bebdc..1fea328 100644
--- a/include/configs/at91sam9263ek.h
+++ b/include/configs/at91sam9263ek.h
@@ -103,7 +103,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/at91sam9m10g45ek.h b/include/configs/at91sam9m10g45ek.h
index 1f8c267..8577a11 100644
--- a/include/configs/at91sam9m10g45ek.h
+++ b/include/configs/at91sam9m10g45ek.h
@@ -98,7 +98,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/at91sam9n12ek.h b/include/configs/at91sam9n12ek.h
index 15b3e84..c4ac21d 100644
--- a/include/configs/at91sam9n12ek.h
+++ b/include/configs/at91sam9n12ek.h
@@ -122,7 +122,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h
index 79d58dd..4d0e7b4 100644
--- a/include/configs/at91sam9rlek.h
+++ b/include/configs/at91sam9rlek.h
@@ -105,7 +105,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
index f414023..897ffa9 100644
--- a/include/configs/at91sam9x5ek.h
+++ b/include/configs/at91sam9x5ek.h
@@ -110,7 +110,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/atngw100.h b/include/configs/atngw100.h
index 2881cc8..d966e1c 100644
--- a/include/configs/atngw100.h
+++ b/include/configs/atngw100.h
@@ -85,7 +85,6 @@
#define CONFIG_SYS_NR_PIOS 5
#define CONFIG_SYS_HSDRAMC
#define CONFIG_GENERIC_ATMEL_MCI
-#define CONFIG_GENERIC_MMC
#define CONFIG_ATMEL_SPI
#define CONFIG_SYS_DCACHE_LINESZ 32
diff --git a/include/configs/atngw100mkii.h b/include/configs/atngw100mkii.h
index 9128b2e..8a9215e 100644
--- a/include/configs/atngw100mkii.h
+++ b/include/configs/atngw100mkii.h
@@ -104,7 +104,6 @@
#define CONFIG_SYS_NR_PIOS 5
#define CONFIG_SYS_HSDRAMC
#define CONFIG_GENERIC_ATMEL_MCI
-#define CONFIG_GENERIC_MMC
#define CONFIG_ATMEL_SPI
#define CONFIG_SYS_DCACHE_LINESZ 32
diff --git a/include/configs/atstk1002.h b/include/configs/atstk1002.h
index 5b101ba..c9a36bc 100644
--- a/include/configs/atstk1002.h
+++ b/include/configs/atstk1002.h
@@ -106,7 +106,6 @@
#define CONFIG_SYS_NR_PIOS 5
#define CONFIG_SYS_HSDRAMC
#define CONFIG_GENERIC_ATMEL_MCI
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_DCACHE_LINESZ 32
#define CONFIG_SYS_ICACHE_LINESZ 32
diff --git a/include/configs/axs10x.h b/include/configs/axs10x.h
index ce5392c..0707599 100644
--- a/include/configs/axs10x.h
+++ b/include/configs/axs10x.h
@@ -82,11 +82,6 @@
#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 64
/*
- * SD/MMC configuration
- */
-#define CONFIG_GENERIC_MMC
-
-/*
* Ethernet PHY configuration
*/
#define CONFIG_MII
diff --git a/include/configs/bayleybay.h b/include/configs/bayleybay.h
index 60c5139..3efdbd2 100644
--- a/include/configs/bayleybay.h
+++ b/include/configs/bayleybay.h
@@ -23,8 +23,6 @@
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA}, \
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
-#define CONFIG_GENERIC_MMC
-
/* Environment configuration */
#define CONFIG_ENV_SECT_SIZE 0x1000
#define CONFIG_ENV_OFFSET 0x006ff000
diff --git a/include/configs/bcm23550_w1d.h b/include/configs/bcm23550_w1d.h
index ab26a25..8368e15 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_GENERIC_MMC
-
#define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
#define CONFIG_SYS_SDIO_BASE1 SDIO2_BASE_ADDR
#define CONFIG_SYS_SDIO_BASE2 SDIO3_BASE_ADDR
diff --git a/include/configs/bcm28155_ap.h b/include/configs/bcm28155_ap.h
index 0c49563..299674a 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_GENERIC_MMC
-
#define CONFIG_SYS_SDIO_BASE0 SDIO1_BASE_ADDR
#define CONFIG_SYS_SDIO_BASE1 SDIO2_BASE_ADDR
#define CONFIG_SYS_SDIO_BASE2 SDIO3_BASE_ADDR
diff --git a/include/configs/beaver.h b/include/configs/beaver.h
index 0fe47ec..cc32861 100644
--- a/include/configs/beaver.h
+++ b/include/configs/beaver.h
@@ -26,9 +26,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/bf518f-ezbrd.h b/include/configs/bf518f-ezbrd.h
index 05b338f..e3c2286 100644
--- a/include/configs/bf518f-ezbrd.h
+++ b/include/configs/bf518f-ezbrd.h
@@ -128,7 +128,6 @@
* SDH Settings
*/
#if !defined(__ADSPBF512__)
-#define CONFIG_GENERIC_MMC
#define CONFIG_BFIN_SDH
#endif
diff --git a/include/configs/bf527-ad7160-eval.h b/include/configs/bf527-ad7160-eval.h
index 40ca18d..e433aaa 100644
--- a/include/configs/bf527-ad7160-eval.h
+++ b/include/configs/bf527-ad7160-eval.h
@@ -115,7 +115,6 @@
/*
* SPI_MMC Settings
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_MMC_SPI
/*
diff --git a/include/configs/bf537-stamp.h b/include/configs/bf537-stamp.h
index ab777e5..6858153 100644
--- a/include/configs/bf537-stamp.h
+++ b/include/configs/bf537-stamp.h
@@ -124,9 +124,6 @@
* SPI_MMC Settings
*/
#define CONFIG_MMC_SPI
-#ifdef CONFIG_MMC_SPI
-#define CONFIG_GENERIC_MMC
-#endif
/*
* NAND Settings
diff --git a/include/configs/bf548-ezkit.h b/include/configs/bf548-ezkit.h
index 81d5af6..35cbebd 100644
--- a/include/configs/bf548-ezkit.h
+++ b/include/configs/bf548-ezkit.h
@@ -142,7 +142,6 @@
* SDH Settings
*/
#if !defined(__ADSPBF544__)
-#define CONFIG_GENERIC_MMC
#define CONFIG_BFIN_SDH
#endif
diff --git a/include/configs/bf609-ezkit.h b/include/configs/bf609-ezkit.h
index 55127c5..5791810 100644
--- a/include/configs/bf609-ezkit.h
+++ b/include/configs/bf609-ezkit.h
@@ -126,7 +126,6 @@
/*
* SDH Settings
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_BFIN_SDH
/*
diff --git a/include/configs/blanche.h b/include/configs/blanche.h
index 0deb350..e040dba 100755
--- a/include/configs/blanche.h
+++ b/include/configs/blanche.h
@@ -95,8 +95,6 @@
/* USB */
#undef CONFIG_CMD_USB
-#define CONFIG_GENERIC_MMC
-
/* Module stop status bits */
/* INTC-RT */
#define CONFIG_SMSTP0_ENA 0x00400000
diff --git a/include/configs/brppt1.h b/include/configs/brppt1.h
index 8be483a..68e9efe 100644
--- a/include/configs/brppt1.h
+++ b/include/configs/brppt1.h
@@ -48,7 +48,6 @@
/* MMC/SD IP block */
#if defined(CONFIG_EMMC_BOOT)
- #define CONFIG_GENERIC_MMC
#define CONFIG_SUPPORT_EMMC_BOOT
#endif /* CONFIG_EMMC_BOOT */
diff --git a/include/configs/brxre1.h b/include/configs/brxre1.h
index 4a97bf1..02094b5 100644
--- a/include/configs/brxre1.h
+++ b/include/configs/brxre1.h
@@ -43,7 +43,6 @@
/* GPIO */
/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
#define CONFIG_SUPPORT_EMMC_BOOT
/* Always 64 KiB env size */
diff --git a/include/configs/cardhu.h b/include/configs/cardhu.h
index 7e3966f..e338f9b 100644
--- a/include/configs/cardhu.h
+++ b/include/configs/cardhu.h
@@ -30,9 +30,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/cei-tk1-som.h b/include/configs/cei-tk1-som.h
index 9439863..5ec63cd 100644
--- a/include/configs/cei-tk1-som.h
+++ b/include/configs/cei-tk1-som.h
@@ -29,9 +29,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h
index 1ad0969..a544223 100644
--- a/include/configs/clearfog.h
+++ b/include/configs/clearfog.h
@@ -43,7 +43,6 @@
/*
* SDIO/MMC Card Configuration
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE
/* Partition support */
diff --git a/include/configs/cm-bf537e.h b/include/configs/cm-bf537e.h
index 32229d2..cc31a30 100644
--- a/include/configs/cm-bf537e.h
+++ b/include/configs/cm-bf537e.h
@@ -118,7 +118,6 @@
/*
* SPI_MMC Settings
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_MMC_SPI
/*
diff --git a/include/configs/cm-bf537u.h b/include/configs/cm-bf537u.h
index dc2eabd..282eb4f 100644
--- a/include/configs/cm-bf537u.h
+++ b/include/configs/cm-bf537u.h
@@ -116,7 +116,6 @@
/*
* SPI_MMC Settings
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_MMC_SPI
/*
diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
index 2bc486a..017a8bd 100644
--- a/include/configs/cm_t35.h
+++ b/include/configs/cm_t35.h
@@ -80,8 +80,6 @@
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-#define CONFIG_GENERIC_MMC
-
/* USB */
#define CONFIG_USB_OMAP3
#define CONFIG_USB_EHCI
diff --git a/include/configs/cm_t3517.h b/include/configs/cm_t3517.h
index 907bb31..da866e4 100644
--- a/include/configs/cm_t3517.h
+++ b/include/configs/cm_t3517.h
@@ -87,8 +87,6 @@
#define CONFIG_OMAP_GPIO
-#define CONFIG_GENERIC_MMC
-
/* USB */
#define CONFIG_USB_MUSB_AM35X
diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h
index de43fca..c4765eb 100644
--- a/include/configs/colibri_imx6.h
+++ b/include/configs/colibri_imx6.h
@@ -65,7 +65,6 @@
#define CONFIG_SYS_FSL_USDHC_NUM 2
#define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FAT_WRITE
diff --git a/include/configs/colibri_t20.h b/include/configs/colibri_t20.h
index 0520283..8b854c3 100644
--- a/include/configs/colibri_t20.h
+++ b/include/configs/colibri_t20.h
@@ -24,9 +24,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC support */
-#define CONFIG_GENERIC_MMC
-
/* USB host support */
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_TEGRA
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index 5b66429..bc19044 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -25,9 +25,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC support */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, before config block at the end of 1st "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE + \
diff --git a/include/configs/colibri_vf.h b/include/configs/colibri_vf.h
index e24191a..e0feb0a 100644
--- a/include/configs/colibri_vf.h
+++ b/include/configs/colibri_vf.h
@@ -57,8 +57,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_RBTREE
#define CONFIG_LZO
#define CONFIG_CMD_UBIFS /* increases size by almost 60 KB */
diff --git a/include/configs/conga-qeval20-qa3-e3845.h b/include/configs/conga-qeval20-qa3-e3845.h
index d21c95a..a70845e 100644
--- a/include/configs/conga-qeval20-qa3-e3845.h
+++ b/include/configs/conga-qeval20-qa3-e3845.h
@@ -23,8 +23,6 @@
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA}, \
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
-#define CONFIG_GENERIC_MMC
-
#undef CONFIG_USB_MAX_CONTROLLER_COUNT
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
diff --git a/include/configs/controlcenterd.h b/include/configs/controlcenterd.h
index b1d67b2..e5d60fb 100644
--- a/include/configs/controlcenterd.h
+++ b/include/configs/controlcenterd.h
@@ -206,8 +206,6 @@
/*
* MMC
*/
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h
index 0f48f38..7637bb8 100644
--- a/include/configs/corenet_ds.h
+++ b/include/configs/corenet_ds.h
@@ -620,7 +620,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
-#define CONFIG_GENERIC_MMC
#endif
/* Hash command with SHA acceleration supported in hardware */
diff --git a/include/configs/crownbay.h b/include/configs/crownbay.h
index 219944a..5ec09ba 100644
--- a/include/configs/crownbay.h
+++ b/include/configs/crownbay.h
@@ -24,8 +24,6 @@
#define CONFIG_SCSI_DEV_LIST \
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SATA}
-#define CONFIG_GENERIC_MMC
-
/* Environment configuration */
#define CONFIG_ENV_SECT_SIZE 0x1000
#define CONFIG_ENV_OFFSET 0
diff --git a/include/configs/cyrus.h b/include/configs/cyrus.h
index 18a9156..c9a57af 100644
--- a/include/configs/cyrus.h
+++ b/include/configs/cyrus.h
@@ -442,7 +442,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT
-#define CONFIG_GENERIC_MMC
#endif
/*
diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h
index 3321419..ecefa97 100644
--- a/include/configs/da850evm.h
+++ b/include/configs/da850evm.h
@@ -310,11 +310,6 @@
#undef CONFIG_CMD_ENV
#endif
-/* SD/MMC configuration */
-#ifndef CONFIG_USE_NOR
-#define CONFIG_GENERIC_MMC
-#endif
-
#ifndef CONFIG_DIRECT_NOR_BOOT
/* defines for SPL */
#define CONFIG_SPL_FRAMEWORK
diff --git a/include/configs/dalmore.h b/include/configs/dalmore.h
index 1fa445a..f3ff9e7 100644
--- a/include/configs/dalmore.h
+++ b/include/configs/dalmore.h
@@ -23,9 +23,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index beb14bc..1fdeedd 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -43,7 +43,6 @@
/*
* SDIO/MMC Card Configuration
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_SYS_MMC_BASE MVEBU_SDIO_BASE
/*
diff --git a/include/configs/dfi-bt700.h b/include/configs/dfi-bt700.h
index 211c9ea..edb4958 100644
--- a/include/configs/dfi-bt700.h
+++ b/include/configs/dfi-bt700.h
@@ -28,8 +28,6 @@
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA}, \
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
-#define CONFIG_GENERIC_MMC
-
#undef CONFIG_USB_MAX_CONTROLLER_COUNT
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
diff --git a/include/configs/dragonboard410c.h b/include/configs/dragonboard410c.h
index 29aa518..da1c589 100644
--- a/include/configs/dragonboard410c.h
+++ b/include/configs/dragonboard410c.h
@@ -31,9 +31,6 @@
/* Generic Timer Definitions */
#define COUNTER_FREQUENCY 19000000
-/* This are needed to have proper mmc support */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SYS_LDSCRIPT "board/qualcomm/dragonboard410c/u-boot.lds"
/* Fixup - in init code we switch from device to host mode,
diff --git a/include/configs/e2220-1170.h b/include/configs/e2220-1170.h
index 064906d..b6a758f 100644
--- a/include/configs/e2220-1170.h
+++ b/include/configs/e2220-1170.h
@@ -21,9 +21,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/ethernut5.h b/include/configs/ethernut5.h
index 03fa0a3..a3c40d6 100644
--- a/include/configs/ethernut5.h
+++ b/include/configs/ethernut5.h
@@ -126,7 +126,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define CONFIG_SYS_MMC_CD_PIN AT91_PIO_PORTC, 8
#endif
diff --git a/include/configs/exynos-common.h b/include/configs/exynos-common.h
index 7868c86..6f57b21 100644
--- a/include/configs/exynos-common.h
+++ b/include/configs/exynos-common.h
@@ -37,7 +37,6 @@
#define CONFIG_BAUDRATE 115200
/* SD/MMC configuration */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
/* PWM */
diff --git a/include/configs/galileo.h b/include/configs/galileo.h
index 986001e..dcbaade 100644
--- a/include/configs/galileo.h
+++ b/include/configs/galileo.h
@@ -26,9 +26,6 @@
#undef CONFIG_SCSI_AHCI
#undef CONFIG_SCSI
-/* SD/MMC support */
-#define CONFIG_GENERIC_MMC
-
/* 10/100M Ethernet support */
#define CONFIG_DESIGNWARE_ETH
#define CONFIG_DW_ALTDESCRIPTOR
diff --git a/include/configs/ge_bx50v3.h b/include/configs/ge_bx50v3.h
index 150c4b2..a2adbeb 100644
--- a/include/configs/ge_bx50v3.h
+++ b/include/configs/ge_bx50v3.h
@@ -64,7 +64,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_USDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
/* USB Configs */
diff --git a/include/configs/gose.h b/include/configs/gose.h
index 45395cd..15b3227 100644
--- a/include/configs/gose.h
+++ b/include/configs/gose.h
@@ -94,7 +94,6 @@
#define CONFIG_SMSTP7_ENA 0x00200000
/* SDHI */
-#define CONFIG_GENERIC_MMC
#define CONFIG_SH_SDHI_FREQ 97500000
#endif /* __GOSE_H */
diff --git a/include/configs/harmony.h b/include/configs/harmony.h
index e9781cc..923c38f 100644
--- a/include/configs/harmony.h
+++ b/include/configs/harmony.h
@@ -26,9 +26,6 @@
#define CONFIG_MACH_TYPE MACH_TYPE_HARMONY
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* NAND support */
#define CONFIG_CMD_NAND
#define CONFIG_TEGRA_NAND
diff --git a/include/configs/hikey.h b/include/configs/hikey.h
index 0f6f117..9ec8140 100644
--- a/include/configs/hikey.h
+++ b/include/configs/hikey.h
@@ -69,7 +69,6 @@
#define CONFIG_HIKEY_GPIO
/* SD/MMC configuration */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FS_EXT4
diff --git a/include/configs/hrcon.h b/include/configs/hrcon.h
index 311e2bd..5528dfc 100644
--- a/include/configs/hrcon.h
+++ b/include/configs/hrcon.h
@@ -26,8 +26,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_CMD_FPGAD
#define CONFIG_CMD_IOLOOP
diff --git a/include/configs/imx27lite-common.h b/include/configs/imx27lite-common.h
index 26be240..cbd1dbc 100644
--- a/include/configs/imx27lite-common.h
+++ b/include/configs/imx27lite-common.h
@@ -135,11 +135,6 @@
#define CONFIG_MXC_NAND_HWECC
/*
- * SD/MMC
- */
-#define CONFIG_GENERIC_MMC
-
-/*
* GPIO
*/
#define CONFIG_MXC_GPIO
diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h
index febedca..7c0456c 100644
--- a/include/configs/jetson-tk1.h
+++ b/include/configs/jetson-tk1.h
@@ -25,9 +25,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/k2g_evm.h b/include/configs/k2g_evm.h
index 81da8ff..bd25231 100644
--- a/include/configs/k2g_evm.h
+++ b/include/configs/k2g_evm.h
@@ -60,9 +60,6 @@
#define CONFIG_PHY_MICREL
#define PHY_ANEG_TIMEOUT 10000 /* PHY needs longer aneg time */
-/* MMC/SD */
-#define CONFIG_GENERIC_MMC
-
#undef CONFIG_ENV_IS_IN_NAND
#define CONFIG_ENV_IS_IN_FAT
#define FAT_ENV_INTERFACE "mmc"
diff --git a/include/configs/kc1.h b/include/configs/kc1.h
index 8223f5a..33b6a98 100644
--- a/include/configs/kc1.h
+++ b/include/configs/kc1.h
@@ -85,12 +85,6 @@
#define CONFIG_SYS_NO_FLASH
/*
- * MMC
- */
-
-#define CONFIG_GENERIC_MMC
-
-/*
* Power
*/
diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h
index c7aa7cc..6371c5b 100644
--- a/include/configs/koelsch.h
+++ b/include/configs/koelsch.h
@@ -94,7 +94,6 @@
#define CONFIG_SMSTP7_ENA 0x00200000
/* SD */
-#define CONFIG_GENERIC_MMC
#define CONFIG_SH_SDHI_FREQ 97500000
#endif /* __KOELSCH_H */
diff --git a/include/configs/lager.h b/include/configs/lager.h
index a7894ca..f30cc16 100644
--- a/include/configs/lager.h
+++ b/include/configs/lager.h
@@ -86,8 +86,6 @@
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
/* MMC */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SH_MMCIF
#define CONFIG_SH_MMCIF_ADDR 0xEE220000
#define CONFIG_SH_MMCIF_CLK 97500000
diff --git a/include/configs/legoev3.h b/include/configs/legoev3.h
index ce058b1..1d4e7cd 100644
--- a/include/configs/legoev3.h
+++ b/include/configs/legoev3.h
@@ -213,9 +213,6 @@
#define CONFIG_SYS_NO_FLASH
#define CONFIG_ENV_SIZE (16 << 10)
-/* SD/MMC configuration */
-#define CONFIG_GENERIC_MMC
-
/* additions for new relocation code, must added to all boards */
#define CONFIG_SYS_SDRAM_BASE 0xc0000000
diff --git a/include/configs/ls1012aqds.h b/include/configs/ls1012aqds.h
index 578d328..5aaf3a7 100644
--- a/include/configs/ls1012aqds.h
+++ b/include/configs/ls1012aqds.h
@@ -134,7 +134,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/* SATA */
diff --git a/include/configs/ls1012ardb.h b/include/configs/ls1012ardb.h
index 09c8f79..70d3a71 100644
--- a/include/configs/ls1012ardb.h
+++ b/include/configs/ls1012ardb.h
@@ -47,7 +47,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/* SATA */
diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
index b422863..4941c2e 100644
--- a/include/configs/ls1021aiot.h
+++ b/include/configs/ls1021aiot.h
@@ -156,7 +156,6 @@
*/
#define CONFIG_CMD_MMC
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
/* SATA */
#define CONFIG_CMD_SCSI
diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
index 3c255aa..5c9b41f 100644
--- a/include/configs/ls1021aqds.h
+++ b/include/configs/ls1021aqds.h
@@ -393,7 +393,6 @@ unsigned long get_board_ddr_clk(void);
* MMC
*/
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
/* SPI */
#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index 7100d96..25e3f92 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -294,7 +294,6 @@
* MMC
*/
#define CONFIG_FSL_ESDHC
-#define CONFIG_GENERIC_MMC
/* SPI */
#if defined(CONFIG_QSPI_BOOT) || defined(CONFIG_SD_BOOT_QSPI)
diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h
index aa2b6f1..ea7067c 100644
--- a/include/configs/ls1043a_common.h
+++ b/include/configs/ls1043a_common.h
@@ -130,7 +130,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/* DSPI */
diff --git a/include/configs/ls1046a_common.h b/include/configs/ls1046a_common.h
index b089f31..be65e4f 100644
--- a/include/configs/ls1046a_common.h
+++ b/include/configs/ls1046a_common.h
@@ -116,7 +116,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
#define CONFIG_FSL_CAAM /* Enable SEC/CAAM */
diff --git a/include/configs/ls2080a_simu.h b/include/configs/ls2080a_simu.h
index 31d28c7..5dd0a1d 100644
--- a/include/configs/ls2080a_simu.h
+++ b/include/configs/ls2080a_simu.h
@@ -136,7 +136,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/* Debug Server firmware */
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index a8a5100..9ad8486 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -353,7 +353,6 @@ unsigned long get_board_ddr_clk(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
/* Initial environment variables */
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index b607329..db9ad15 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -298,7 +298,6 @@ unsigned long get_board_sys_clk(void);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_MMC_HAS_CAPBLT_VS33
-#define CONFIG_GENERIC_MMC
#endif
#define CONFIG_MISC_INIT_R
diff --git a/include/configs/m53evk.h b/include/configs/m53evk.h
index 29563e9..df7321f 100644
--- a/include/configs/m53evk.h
+++ b/include/configs/m53evk.h
@@ -80,7 +80,6 @@
* MMC Driver
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
diff --git a/include/configs/ma5d4evk.h b/include/configs/ma5d4evk.h
index 112869e..aed0f4b 100644
--- a/include/configs/ma5d4evk.h
+++ b/include/configs/ma5d4evk.h
@@ -86,7 +86,6 @@
* SD/MMC
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/mcx.h b/include/configs/mcx.h
index 0928f76..5160758 100644
--- a/include/configs/mcx.h
+++ b/include/configs/mcx.h
@@ -79,7 +79,6 @@
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-#define CONFIG_GENERIC_MMC
/* EHCI */
#define CONFIG_OMAP3_GPIO_2
diff --git a/include/configs/medcom-wide.h b/include/configs/medcom-wide.h
index 1e94dac..342bcf3 100644
--- a/include/configs/medcom-wide.h
+++ b/include/configs/medcom-wide.h
@@ -19,9 +19,6 @@
#define CONFIG_TEGRA_ENABLE_UARTD /* UARTD: debug UART */
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* NAND support */
#define CONFIG_CMD_NAND
#define CONFIG_TEGRA_NAND
diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h
index b01ab14..7b9f90c 100644
--- a/include/configs/minnowmax.h
+++ b/include/configs/minnowmax.h
@@ -25,8 +25,6 @@
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA}, \
{PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VALLEYVIEW_SATA_ALT}
-#define CONFIG_GENERIC_MMC
-
#undef CONFIG_USB_MAX_CONTROLLER_COUNT
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
diff --git a/include/configs/mvebu_armada-8k.h b/include/configs/mvebu_armada-8k.h
index 75f166a..ebc7fca 100644
--- a/include/configs/mvebu_armada-8k.h
+++ b/include/configs/mvebu_armada-8k.h
@@ -114,9 +114,6 @@
#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
CONFIG_SYS_SCSI_MAX_LUN)
-/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SUPPORT_VFAT
/*
diff --git a/include/configs/mvebu_db-88f3720.h b/include/configs/mvebu_db-88f3720.h
index b9954b8..829f693 100644
--- a/include/configs/mvebu_db-88f3720.h
+++ b/include/configs/mvebu_db-88f3720.h
@@ -126,9 +126,6 @@
#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \
CONFIG_SYS_SCSI_MAX_LUN)
-/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SUPPORT_VFAT
#endif /* _CONFIG_MVEBU_DB_88F3720_H */
diff --git a/include/configs/mx25pdk.h b/include/configs/mx25pdk.h
index dc90c6e..528b193 100644
--- a/include/configs/mx25pdk.h
+++ b/include/configs/mx25pdk.h
@@ -84,7 +84,6 @@
#define CONFIG_ENV_OVERWRITE
/* ESDHC driver */
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR IMX_MMC_SDHC1_BASE
#define CONFIG_SYS_FSL_ESDHC_NUM 1
diff --git a/include/configs/mx35pdk.h b/include/configs/mx35pdk.h
index 1aaef23..22d319a 100644
--- a/include/configs/mx35pdk.h
+++ b/include/configs/mx35pdk.h
@@ -213,7 +213,6 @@
#define CONFIG_MXC_USB_PORTSC (MXC_EHCI_UTMI_16BIT | MXC_EHCI_MODE_UTMI)
/* mmc driver */
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index db22365..1f99a61 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -65,8 +65,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR MMC_SDHC1_BASE_ADDR
#define CONFIG_SYS_FSL_ESDHC_NUM 2
-#define CONFIG_GENERIC_MMC
-
/*
* Eth Configs
*/
diff --git a/include/configs/mx53ard.h b/include/configs/mx53ard.h
index 7a47a87..c17d976 100644
--- a/include/configs/mx53ard.h
+++ b/include/configs/mx53ard.h
@@ -52,8 +52,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 2
-#define CONFIG_GENERIC_MMC
-
/* Eth Configs */
#define CONFIG_HAS_ETH1
#define CONFIG_MII
diff --git a/include/configs/mx53cx9020.h b/include/configs/mx53cx9020.h
index b13d79b..03e9a2a 100644
--- a/include/configs/mx53cx9020.h
+++ b/include/configs/mx53cx9020.h
@@ -36,8 +36,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 2
-#define CONFIG_GENERIC_MMC
-
/* bootz: zImage/initrd.img support */
/* Eth Configs */
diff --git a/include/configs/mx53evk.h b/include/configs/mx53evk.h
index e4c90f4..839c8cc 100644
--- a/include/configs/mx53evk.h
+++ b/include/configs/mx53evk.h
@@ -50,8 +50,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 2
-#define CONFIG_GENERIC_MMC
-
/* Eth Configs */
#define CONFIG_MII
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 427ae75..c7ab295 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -36,8 +36,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 2
-#define CONFIG_GENERIC_MMC
-
/* Eth Configs */
#define CONFIG_MII
diff --git a/include/configs/mx53smd.h b/include/configs/mx53smd.h
index e163495..3ac89f2 100644
--- a/include/configs/mx53smd.h
+++ b/include/configs/mx53smd.h
@@ -42,8 +42,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
-#define CONFIG_GENERIC_MMC
-
/* Eth Configs */
#define CONFIG_HAS_ETH1
#define CONFIG_MII
diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
index 5b38aa2..cdf46f0 100644
--- a/include/configs/mx6_common.h
+++ b/include/configs/mx6_common.h
@@ -81,7 +81,6 @@
#define CONFIG_MXC_GPIO
/* MMC */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_USDHC
diff --git a/include/configs/mx7_common.h b/include/configs/mx7_common.h
index bdacedc..837d5f7 100644
--- a/include/configs/mx7_common.h
+++ b/include/configs/mx7_common.h
@@ -55,7 +55,6 @@
#define CONFIG_MXC_UART
/* MMC */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FSL_ESDHC
#define CONFIG_FSL_USDHC
diff --git a/include/configs/mxs.h b/include/configs/mxs.h
index 6a223b6..12b456b 100644
--- a/include/configs/mxs.h
+++ b/include/configs/mxs.h
@@ -146,7 +146,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#endif
diff --git a/include/configs/nokia_rx51.h b/include/configs/nokia_rx51.h
index 82266d4..7e2f992 100644
--- a/include/configs/nokia_rx51.h
+++ b/include/configs/nokia_rx51.h
@@ -93,7 +93,6 @@
#define CONFIG_ENV_OVERWRITE
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE { 4800, 9600, 19200, 38400, 57600, 115200 }
-#define CONFIG_GENERIC_MMC
/* USB */
#define CONFIG_USB_MUSB_UDC
diff --git a/include/configs/nyan-big.h b/include/configs/nyan-big.h
index be0889d..acf9d66 100644
--- a/include/configs/nyan-big.h
+++ b/include/configs/nyan-big.h
@@ -24,9 +24,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
index 297fd0e..8846aa6 100644
--- a/include/configs/omap3_evm.h
+++ b/include/configs/omap3_evm.h
@@ -46,9 +46,6 @@
* ----------------------------------------------------------------------------
*/
-/* MMC */
-#define CONFIG_GENERIC_MMC
-
/* SPL */
#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1
#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img"
diff --git a/include/configs/omapl138_lcdk.h b/include/configs/omapl138_lcdk.h
index 4c64011..8114de8 100644
--- a/include/configs/omapl138_lcdk.h
+++ b/include/configs/omapl138_lcdk.h
@@ -324,8 +324,6 @@
#endif
/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
#ifdef CONFIG_MMC
#undef CONFIG_ENV_IS_IN_MMC
#endif
diff --git a/include/configs/openrd.h b/include/configs/openrd.h
index c21b849..51e4d90 100644
--- a/include/configs/openrd.h
+++ b/include/configs/openrd.h
@@ -107,7 +107,6 @@
#endif /*CONFIG_MVSATA_IDE*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_MVEBU_MMC
#define CONFIG_SYS_MMC_BASE KW_SDIO_BASE
#endif /* CONFIG_CMD_MMC */
diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h
index 5d70878..9b142bc 100644
--- a/include/configs/p1_p2_rdb_pc.h
+++ b/include/configs/p1_p2_rdb_pc.h
@@ -840,7 +840,6 @@
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
#undef CONFIG_WATCHDOG /* watchdog disabled */
diff --git a/include/configs/p1_twr.h b/include/configs/p1_twr.h
index 52c544c..a98e1b2 100644
--- a/include/configs/p1_twr.h
+++ b/include/configs/p1_twr.h
@@ -406,7 +406,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#ifdef CONFIG_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
#endif
#undef CONFIG_WATCHDOG /* watchdog disabled */
diff --git a/include/configs/p2371-0000.h b/include/configs/p2371-0000.h
index a1a518e..897add3 100644
--- a/include/configs/p2371-0000.h
+++ b/include/configs/p2371-0000.h
@@ -21,9 +21,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/p2371-2180.h b/include/configs/p2371-2180.h
index b80d8db..3cf0c87 100644
--- a/include/configs/p2371-2180.h
+++ b/include/configs/p2371-2180.h
@@ -21,9 +21,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/p2571.h b/include/configs/p2571.h
index ef1ae3f..76fb7ce 100644
--- a/include/configs/p2571.h
+++ b/include/configs/p2571.h
@@ -22,9 +22,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/p2771-0000.h b/include/configs/p2771-0000.h
index e1e3d72..791a48a 100644
--- a/include/configs/p2771-0000.h
+++ b/include/configs/p2771-0000.h
@@ -17,9 +17,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
index 13d5aa9..fe7be69 100644
--- a/include/configs/paz00.h
+++ b/include/configs/paz00.h
@@ -22,9 +22,6 @@
#define CONFIG_MACH_TYPE MACH_TYPE_PAZ00
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/pcm052.h b/include/configs/pcm052.h
index 96bf6ab..283abfa 100644
--- a/include/configs/pcm052.h
+++ b/include/configs/pcm052.h
@@ -69,8 +69,6 @@
/*#define CONFIG_ESDHC_DETECT_USE_EXTERN_IRQ1*/
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define IMX_FEC_BASE ENET_BASE_ADDR
diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h
index f80f3af..ffd1b28 100644
--- a/include/configs/pic32mzdask.h
+++ b/include/configs/pic32mzdask.h
@@ -88,11 +88,6 @@
#define CONFIG_BOOTP_GATEWAY
#define CONFIG_BOOTP_HOSTNAME
-/*-----------------------------------------------------------------------
- * SDHC Configuration
- */
-#define CONFIG_GENERIC_MMC
-
/*--------------------------------------------------
* USB Configuration
*/
diff --git a/include/configs/pico-imx6ul.h b/include/configs/pico-imx6ul.h
index 2f3f7be..63bd11c 100644
--- a/include/configs/pico-imx6ul.h
+++ b/include/configs/pico-imx6ul.h
@@ -34,8 +34,6 @@
#define CONFIG_FSL_USDHC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR USDHC1_BASE_ADDR
-
-#define CONFIG_GENERIC_MMC
#define CONFIG_SUPPORT_EMMC_BOOT
/* USB Configs */
diff --git a/include/configs/picosam9g45.h b/include/configs/picosam9g45.h
index 476bdd8..327db73 100644
--- a/include/configs/picosam9g45.h
+++ b/include/configs/picosam9g45.h
@@ -91,7 +91,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#endif
diff --git a/include/configs/plutux.h b/include/configs/plutux.h
index 889ef40..911cad8 100644
--- a/include/configs/plutux.h
+++ b/include/configs/plutux.h
@@ -19,9 +19,6 @@
#define CONFIG_TEGRA_ENABLE_UARTD /* UARTD: debug UART */
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* NAND support */
#define CONFIG_CMD_NAND
#define CONFIG_TEGRA_NAND
diff --git a/include/configs/porter.h b/include/configs/porter.h
index ccaa796..ed3125d 100644
--- a/include/configs/porter.h
+++ b/include/configs/porter.h
@@ -88,7 +88,6 @@
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
/* SD */
-#define CONFIG_GENERIC_MMC
#define CONFIG_SH_SDHI_FREQ 97500000
/* Module stop status bits */
diff --git a/include/configs/pxa-common.h b/include/configs/pxa-common.h
index 800c12c..345e6d6 100644
--- a/include/configs/pxa-common.h
+++ b/include/configs/pxa-common.h
@@ -22,7 +22,6 @@
* MMC Card Configuration
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_PXA_MMC_GENERIC
#endif
diff --git a/include/configs/rk3036_common.h b/include/configs/rk3036_common.h
index 9e0b445..cf2f20b 100644
--- a/include/configs/rk3036_common.h
+++ b/include/configs/rk3036_common.h
@@ -37,7 +37,6 @@
#define CONFIG_ROCKCHIP_CHIP_TAG "RK30"
/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FAT_WRITE
diff --git a/include/configs/rk3288_common.h b/include/configs/rk3288_common.h
index e0d1d84..ff8a6ec 100644
--- a/include/configs/rk3288_common.h
+++ b/include/configs/rk3288_common.h
@@ -40,7 +40,6 @@
#define CONFIG_SPL_TEXT_BASE 0xff704004
/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_FAT_WRITE
diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h
index bd84239..ab8bfd1 100644
--- a/include/configs/rk3399_common.h
+++ b/include/configs/rk3399_common.h
@@ -27,7 +27,6 @@
#define CONFIG_SYS_BOOTM_LEN (64 << 20) /* 64M */
/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
#define CONFIG_BOUNCE_BUFFER
#define CONFIG_ROCKCHIP_SDHCI_MAX_FREQ 200000000
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
index 4ba04e3..a545850 100644
--- a/include/configs/rpi.h
+++ b/include/configs/rpi.h
@@ -81,9 +81,6 @@
#define CONFIG_VIDEO_BCM2835
#define CONFIG_SYS_WHITE_ON_BLACK
-/* SD/MMC configuration */
-#define CONFIG_GENERIC_MMC
-
#ifdef CONFIG_CMD_USB
#define CONFIG_USB_DWC2
#ifndef CONFIG_BCM2835
diff --git a/include/configs/s32v234evb.h b/include/configs/s32v234evb.h
index 7c524c1..33490c2 100644
--- a/include/configs/s32v234evb.h
+++ b/include/configs/s32v234evb.h
@@ -82,7 +82,6 @@
#define CONFIG_SYS_FSL_ESDHC_NUM 1
#define CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
/* #define CONFIG_CMD_EXT2 EXT2 Support */
#if 0
diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h
index 55aba11..472c366 100644
--- a/include/configs/s5p_goni.h
+++ b/include/configs/s5p_goni.h
@@ -47,7 +47,6 @@
#define CONFIG_BAUDRATE 115200
/* MMC */
-#define CONFIG_GENERIC_MMC
#define SDHCI_MAX_HOSTS 4
/* PWM */
diff --git a/include/configs/sama5d2_xplained.h b/include/configs/sama5d2_xplained.h
index 0e73fc2..8e73586 100644
--- a/include/configs/sama5d2_xplained.h
+++ b/include/configs/sama5d2_xplained.h
@@ -41,11 +41,6 @@
/* NAND flash */
#undef CONFIG_CMD_NAND
-/* MMC */
-#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
-#endif
-
/* USB device */
#define CONFIG_USB_ETHER
#define CONFIG_USB_ETH_RNDIS
diff --git a/include/configs/sama5d3_xplained.h b/include/configs/sama5d3_xplained.h
index daf634f..2a8b8a1 100644
--- a/include/configs/sama5d3_xplained.h
+++ b/include/configs/sama5d3_xplained.h
@@ -81,7 +81,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define CONFIG_ATMEL_MCI_8BIT
#endif
diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h
index 3c2e8a5..05e96f9 100644
--- a/include/configs/sama5d3xek.h
+++ b/include/configs/sama5d3xek.h
@@ -112,7 +112,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define ATMEL_BASE_MMCI ATMEL_BASE_MCI0
#endif
diff --git a/include/configs/sama5d4_xplained.h b/include/configs/sama5d4_xplained.h
index 520552f..a017b26 100644
--- a/include/configs/sama5d4_xplained.h
+++ b/include/configs/sama5d4_xplained.h
@@ -64,7 +64,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define ATMEL_BASE_MMCI ATMEL_BASE_MCI1
#endif
diff --git a/include/configs/sama5d4ek.h b/include/configs/sama5d4ek.h
index 4cd016d..354e510 100644
--- a/include/configs/sama5d4ek.h
+++ b/include/configs/sama5d4ek.h
@@ -64,7 +64,6 @@
/* MMC */
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define ATMEL_BASE_MMCI ATMEL_BASE_MCI1
#endif
diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h
index 28228d1..25af94d 100644
--- a/include/configs/sandbox.h
+++ b/include/configs/sandbox.h
@@ -203,6 +203,4 @@
#define CONFIG_SYS_SYSTEMACE_WIDTH 16
#define CONFIG_SYS_SYSTEMACE_BASE 0
-#define CONFIG_GENERIC_MMC
-
#endif
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
index 388010c..671afa7 100644
--- a/include/configs/seaboard.h
+++ b/include/configs/seaboard.h
@@ -31,9 +31,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/sh7752evb.h b/include/configs/sh7752evb.h
index 7f8edd4..7711604 100644
--- a/include/configs/sh7752evb.h
+++ b/include/configs/sh7752evb.h
@@ -85,7 +85,6 @@
#define CONFIG_SH_SPI_BASE 0xfe002000
/* MMCIF */
-#define CONFIG_GENERIC_MMC 1
#define CONFIG_SH_MMCIF 1
#define CONFIG_SH_MMCIF_ADDR 0xffcb0000
#define CONFIG_SH_MMCIF_CLK 48000000
diff --git a/include/configs/sh7753evb.h b/include/configs/sh7753evb.h
index d57782c..49729f4 100644
--- a/include/configs/sh7753evb.h
+++ b/include/configs/sh7753evb.h
@@ -85,7 +85,6 @@
#define CONFIG_SH_SPI_BASE 0xfe002000
/* MMCIF */
-#define CONFIG_GENERIC_MMC 1
#define CONFIG_SH_MMCIF 1
#define CONFIG_SH_MMCIF_ADDR 0xffcb0000
#define CONFIG_SH_MMCIF_CLK 48000000
diff --git a/include/configs/sh7757lcr.h b/include/configs/sh7757lcr.h
index 5582b09..0793f1e 100644
--- a/include/configs/sh7757lcr.h
+++ b/include/configs/sh7757lcr.h
@@ -86,7 +86,6 @@
#define CONFIG_SH_SPI_BASE 0xfe002000
/* MMCIF */
-#define CONFIG_GENERIC_MMC 1
#define CONFIG_SH_MMCIF 1
#define CONFIG_SH_MMCIF_ADDR 0xffcb0000
#define CONFIG_SH_MMCIF_CLK 48000000
diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h
index 79dfe50..a111057 100644
--- a/include/configs/sheevaplug.h
+++ b/include/configs/sheevaplug.h
@@ -83,7 +83,6 @@
* SDIO/MMC Card Configuration
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_MVEBU_MMC
#define CONFIG_SYS_MMC_BASE KW_SDIO_BASE
#endif /* CONFIG_CMD_MMC */
diff --git a/include/configs/siemens-am33x-common.h b/include/configs/siemens-am33x-common.h
index 5ce1430..327a806 100644
--- a/include/configs/siemens-am33x-common.h
+++ b/include/configs/siemens-am33x-common.h
@@ -76,8 +76,6 @@
#define CONFIG_SYS_LOAD_ADDR 0x81000000 /* Default load address */
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SPI
#define CONFIG_OMAP3_SPI
#define CONFIG_MTD_DEVICE
diff --git a/include/configs/silk.h b/include/configs/silk.h
index a343cd1..b43de8d 100644
--- a/include/configs/silk.h
+++ b/include/configs/silk.h
@@ -88,7 +88,6 @@
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
/* MMCIF */
-#define CONFIG_GENERIC_MMC
#define CONFIG_SH_MMCIF
#define CONFIG_SH_MMCIF_ADDR 0xee200000
#define CONFIG_SH_MMCIF_CLK 48000000
diff --git a/include/configs/snapper9g45.h b/include/configs/snapper9g45.h
index da395d8..b0ed9ea 100644
--- a/include/configs/snapper9g45.h
+++ b/include/configs/snapper9g45.h
@@ -67,7 +67,6 @@
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
/* MMC */
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
/* LCD */
diff --git a/include/configs/sniper.h b/include/configs/sniper.h
index f41d6f6..4f8a9f8 100644
--- a/include/configs/sniper.h
+++ b/include/configs/sniper.h
@@ -92,12 +92,6 @@
#define CONFIG_SYS_NO_FLASH
/*
- * MMC
- */
-
-#define CONFIG_GENERIC_MMC
-
-/*
* Power
*/
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index 27bbd0e..8bbe3c5 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -141,7 +141,6 @@
*/
#ifdef CONFIG_CMD_MMC
#define CONFIG_BOUNCE_BUFFER
-#define CONFIG_GENERIC_MMC
/* FIXME */
/* using smaller max blk cnt to avoid flooding the limited stack we have */
#define CONFIG_SYS_MMC_MAX_BLK_COUNT 256 /* FIXME -- SPL only? */
diff --git a/include/configs/stout.h b/include/configs/stout.h
index d2bc050..28bf553 100644
--- a/include/configs/stout.h
+++ b/include/configs/stout.h
@@ -89,9 +89,6 @@
#define CONFIG_USB_EHCI_RMOBILE
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
-/* MMC */
-#define CONFIG_GENERIC_MMC
-
/* Module stop status bits */
/* INTC-RT */
#define CONFIG_SMSTP0_ENA 0x00400000
diff --git a/include/configs/strider.h b/include/configs/strider.h
index e3f0945..f65e602 100644
--- a/include/configs/strider.h
+++ b/include/configs/strider.h
@@ -26,8 +26,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC83xx_ESDHC_ADDR
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_SYS_ALT_MEMTEST
#define CONFIG_CMD_FPGAD
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index 3ac96da..5d76e9f 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -140,7 +140,6 @@
/* mmc config */
#ifdef CONFIG_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_MMC_SUNXI_SLOT 0
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0 /* first detected MMC controller */
diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h
index e601530..6bc2336 100644
--- a/include/configs/tam3517-common.h
+++ b/include/configs/tam3517-common.h
@@ -73,8 +73,6 @@
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-#define CONFIG_GENERIC_MMC
-
/* EHCI */
#define CONFIG_OMAP3_GPIO_5
#define CONFIG_USB_EHCI
diff --git a/include/configs/tao3530.h b/include/configs/tao3530.h
index d93f9f3..dafb05f 100644
--- a/include/configs/tao3530.h
+++ b/include/configs/tao3530.h
@@ -68,7 +68,6 @@
/* allow to overwrite serial and ethaddr */
#define CONFIG_ENV_OVERWRITE
#define CONFIG_BAUDRATE 115200
-#define CONFIG_GENERIC_MMC
/* GPIO banks */
#define CONFIG_OMAP3_GPIO_2 /* GPIO32 ..63 is in GPIO bank 2 */
diff --git a/include/configs/tcm-bf537.h b/include/configs/tcm-bf537.h
index 97aa046..4d1cdb5 100644
--- a/include/configs/tcm-bf537.h
+++ b/include/configs/tcm-bf537.h
@@ -118,7 +118,6 @@
/*
* SPI_MMC Settings
*/
-#define CONFIG_GENERIC_MMC
#define CONFIG_MMC_SPI
/*
diff --git a/include/configs/tec-ng.h b/include/configs/tec-ng.h
index dbc9fc0..06d8720 100644
--- a/include/configs/tec-ng.h
+++ b/include/configs/tec-ng.h
@@ -20,9 +20,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/tec.h b/include/configs/tec.h
index 278668c..ebfca8f 100644
--- a/include/configs/tec.h
+++ b/include/configs/tec.h
@@ -19,9 +19,6 @@
#define CONFIG_TEGRA_ENABLE_UARTD /* UARTD: debug UART */
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* NAND support */
#define CONFIG_CMD_NAND
#define CONFIG_TEGRA_NAND
diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h
index b0c1282..ab4136a 100644
--- a/include/configs/tegra-common-post.h
+++ b/include/configs/tegra-common-post.h
@@ -114,13 +114,6 @@
#ifdef CONFIG_CMD_I2C
#endif
-/* remove MMC support */
-#ifdef CONFIG_GENERIC_MMC
-#undef CONFIG_GENERIC_MMC
-#endif
-#ifdef CONFIG_CMD_MMC
-#endif
-
/* remove partitions/filesystems */
#ifdef CONFIG_FS_EXT4
#undef CONFIG_FS_EXT4
diff --git a/include/configs/ti814x_evm.h b/include/configs/ti814x_evm.h
index 0a905d2..aa4561c 100644
--- a/include/configs/ti814x_evm.h
+++ b/include/configs/ti814x_evm.h
@@ -113,7 +113,6 @@
#define CONFIG_SYS_LOAD_ADDR 0x81000000 /* Default */
#define CONFIG_OMAP_GPIO
-#define CONFIG_GENERIC_MMC
/**
* Physical Memory Map
diff --git a/include/configs/ti816x_evm.h b/include/configs/ti816x_evm.h
index d3e9e41..d7b1719 100644
--- a/include/configs/ti816x_evm.h
+++ b/include/configs/ti816x_evm.h
@@ -52,7 +52,6 @@
#define CONFIG_CMD_ASKEN
#define CONFIG_OMAP_GPIO
-#define CONFIG_GENERIC_MMC
#define CONFIG_FS_FAT
diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
index c6a642f..ca5794c 100644
--- a/include/configs/ti_armv7_common.h
+++ b/include/configs/ti_armv7_common.h
@@ -166,9 +166,6 @@
#define CONFIG_DM_I2C_COMPAT
#endif
-/* MMC/SD IP block */
-#define CONFIG_GENERIC_MMC
-
/* McSPI IP block */
#define CONFIG_SPI
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
index 5782851..d120c69 100644
--- a/include/configs/ti_armv7_keystone2.h
+++ b/include/configs/ti_armv7_keystone2.h
@@ -301,13 +301,6 @@
/* Now for the remaining common defines */
#include <configs/ti_armv7_common.h>
-/* We wont be loading up OS from SPL for now.. */
-
-/* We do not have MMC support.. yet.. */
-#undef CONFIG_GENERIC_MMC
-
-/* And no support for GPIO, yet.. */
-
/* we may include files below only after all above definitions */
#include <asm/arch/hardware.h>
#include <asm/arch/clock.h>
diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h
index fba2779..654f9b4 100644
--- a/include/configs/tricorder.h
+++ b/include/configs/tricorder.h
@@ -75,9 +75,6 @@
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
-/* MMC */
-#define CONFIG_GENERIC_MMC
-
/* I2C */
#define CONFIG_SYS_I2C
#define CONFIG_SYS_OMAP24_I2C_SPEED 100000
diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h
index 874351d..2c37107 100644
--- a/include/configs/trimslice.h
+++ b/include/configs/trimslice.h
@@ -27,9 +27,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in SPI */
#define CONFIG_ENV_IS_IN_SPI_FLASH
#define CONFIG_ENV_SPI_MAX_HZ 48000000
diff --git a/include/configs/ts4800.h b/include/configs/ts4800.h
index dcb3a2e..f293777 100644
--- a/include/configs/ts4800.h
+++ b/include/configs/ts4800.h
@@ -59,8 +59,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR MMC_SDHC1_BASE_ADDR
-#define CONFIG_GENERIC_MMC
-
/*
* Eth Configs
*/
diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index 62c3daf..22962392e 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -127,7 +127,6 @@
/* SD/MMC */
#define CONFIG_SUPPORT_EMMC_BOOT
-#define CONFIG_GENERIC_MMC
/* memtest works on */
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE
diff --git a/include/configs/usbarmory.h b/include/configs/usbarmory.h
index b32cd6a..01a2bd4 100644
--- a/include/configs/usbarmory.h
+++ b/include/configs/usbarmory.h
@@ -42,7 +42,6 @@
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
-#define CONFIG_GENERIC_MMC
/* USB */
#define CONFIG_USB_EHCI
diff --git a/include/configs/venice2.h b/include/configs/venice2.h
index ec12133..9e83863 100644
--- a/include/configs/venice2.h
+++ b/include/configs/venice2.h
@@ -22,9 +22,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV 0
diff --git a/include/configs/ventana.h b/include/configs/ventana.h
index 1150adf..87b5136 100644
--- a/include/configs/ventana.h
+++ b/include/configs/ventana.h
@@ -20,9 +20,6 @@
#define CONFIG_MACH_TYPE MACH_TYPE_VENTANA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/* Environment in eMMC, at the end of 2nd "boot sector" */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_ENV_OFFSET (-CONFIG_ENV_SIZE)
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
index 0bc4ea5..3756e22 100644
--- a/include/configs/vexpress_common.h
+++ b/include/configs/vexpress_common.h
@@ -150,7 +150,6 @@
#define CONFIG_SYS_SERIAL0 V2M_UART0
#define CONFIG_SYS_SERIAL1 V2M_UART1
-#define CONFIG_GENERIC_MMC
#define CONFIG_ARM_PL180_MMCI
#define CONFIG_ARM_PL180_MMCI_BASE V2M_MMCI
#define CONFIG_SYS_MMC_MAX_BLK_COUNT 127
diff --git a/include/configs/vf610twr.h b/include/configs/vf610twr.h
index 3491ed5..33b3438 100644
--- a/include/configs/vf610twr.h
+++ b/include/configs/vf610twr.h
@@ -66,8 +66,6 @@
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
-#define CONFIG_GENERIC_MMC
-
#define CONFIG_FEC_MXC
#define CONFIG_MII
#define IMX_FEC_BASE ENET_BASE_ADDR
diff --git a/include/configs/vinco.h b/include/configs/vinco.h
index 7b10e44..b79ad5b 100644
--- a/include/configs/vinco.h
+++ b/include/configs/vinco.h
@@ -57,7 +57,6 @@
#ifdef CONFIG_CMD_MMC
#define CONFIG_SUPPORT_EMMC_BOOT
-#define CONFIG_GENERIC_MMC
#define CONFIG_GENERIC_ATMEL_MCI
#define ATMEL_BASE_MMCI ATMEL_BASE_MCI1
#define CONFIG_SYS_MMC_CLK_OD 500000
diff --git a/include/configs/whistler.h b/include/configs/whistler.h
index 19b57fd..429e5b6 100644
--- a/include/configs/whistler.h
+++ b/include/configs/whistler.h
@@ -24,9 +24,6 @@
/* I2C */
#define CONFIG_SYS_I2C_TEGRA
-/* SD/MMC */
-#define CONFIG_GENERIC_MMC
-
/*
* Environment in eMMC, at the end of 2nd "boot sector". Note: This assumes
* the user plugged the standard 8GB MoviNAND card into J29/HSMMC/POP. If
diff --git a/include/configs/woodburn_common.h b/include/configs/woodburn_common.h
index 35ccd38..7fec24c 100644
--- a/include/configs/woodburn_common.h
+++ b/include/configs/woodburn_common.h
@@ -55,7 +55,6 @@
#define CONFIG_RTC_MC13XXX
/* mmc driver */
-#define CONFIG_GENERIC_MMC
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#define CONFIG_SYS_FSL_ESDHC_NUM 1
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index b4be217..7251ae1 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -76,7 +76,6 @@
#define CONFIG_AUTO_COMPLETE
#if defined(CONFIG_ZYNQ_SDHCI)
-# define CONFIG_GENERIC_MMC
# define CONFIG_SUPPORT_EMMC_BOOT
# ifndef CONFIG_ZYNQ_SDHCI_MAX_FREQ
# define CONFIG_ZYNQ_SDHCI_MAX_FREQ 200000000
diff --git a/include/configs/zipitz2.h b/include/configs/zipitz2.h
index 17c5346..3df9a07 100644
--- a/include/configs/zipitz2.h
+++ b/include/configs/zipitz2.h
@@ -61,7 +61,6 @@
* MMC Card Configuration
*/
#ifdef CONFIG_CMD_MMC
-#define CONFIG_GENERIC_MMC
#define CONFIG_PXA_MMC_GENERIC
#define CONFIG_SYS_MMC_BASE 0xF0000000
#endif
diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 3b0aca2..e2c70a0 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -84,7 +84,6 @@
/* MMC */
#if defined(CONFIG_ZYNQ_SDHCI)
-# define CONFIG_GENERIC_MMC
# define CONFIG_ZYNQ_SDHCI_MAX_FREQ 52000000
#endif
diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
index 37ce51a..d21589b 100644
--- a/scripts/config_whitelist.txt
+++ b/scripts/config_whitelist.txt
@@ -1295,7 +1295,6 @@ CONFIG_GATEWAYIP
CONFIG_GCOV_KERNEL
CONFIG_GCOV_PROFILE_ALL
CONFIG_GENERIC_ATMEL_MCI
-CONFIG_GENERIC_MMC
CONFIG_GICV2
CONFIG_GICV3
CONFIG_GLOBAL_DATA_NOT_REG10
--
2.7.4
2
13

31 Jan '17
From: Dalon Westergreen <dalon.westergreen(a)intel.com>
Changes in V3:
- Add depends on DOS_PARTITION
- Ensure that PARTTION_TYPE defaults to non-zero
- Add ifdef around sys_ind in disk_partition structure
Changes in V2:
- Merge partition search into single partition function
Dalon Westergreen (1):
SPL: add support to boot from a partition type
common/spl/Kconfig | 17 +++++++++++++++++
common/spl/spl_mmc.c | 13 +++++++++++++
disk/part_dos.c | 1 +
include/part.h | 3 +++
4 files changed, 34 insertions(+)
--
2.7.4
2
3

[U-Boot] [PATCH 5/5][v7] arch: powerpc: update the eLBC IP input clock
by Prabhakar Kushwaha 31 Jan '17
by Prabhakar Kushwaha 31 Jan '17
31 Jan '17
eLBC IP clock is always a constant divisor of platform clock
pre-defined per SoC. Clock ratio register (LCRR) used in
current implementation governs eLBC IP output cloc.
Update sys_info->freq_localbus to represent eLBC input clock with
value constant divisor of platform clock.
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha(a)nxp.com>
---
Changes for v5: Added first time in patch
Changes for v6: Updated subject description
Changes for v7: Fix compilation warning and updated Kconfig eLBC comparision
README | 3 +++
arch/powerpc/cpu/mpc85xx/Kconfig | 18 ++++++++++++++++++
arch/powerpc/cpu/mpc85xx/speed.c | 28 ++--------------------------
arch/powerpc/cpu/mpc86xx/speed.c | 15 +--------------
4 files changed, 24 insertions(+), 40 deletions(-)
diff --git a/README b/README
index 9fda381..b27e757 100644
--- a/README
+++ b/README
@@ -507,6 +507,9 @@ The following options need to be configured:
CONFIG_SYS_FSL_IFC_CLK_DIV
Defines divider of platform clock(clock input to IFC controller).
+ CONFIG_SYS_FSL_LBC_CLK_DIV
+ Defines divider of platform clock(clock input to eLBC controller).
+
CONFIG_SYS_FSL_PBL_PBI
It enables addition of RCW (Power on reset configuration) in built image.
Please refer doc/README.pblimage for more details
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index c06a4db..592b581 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -1337,6 +1337,24 @@ config SYS_FSL_IFC_CLK_DIV
Defines divider of platform clock(clock input to
IFC controller).
+config SYS_FSL_LBC_CLK_DIV
+ int "Divider of platform clock"
+ depends on FSL_ELBC || ARCH_MPC8540 || \
+ ARCH_MPC8548 || ARCH_MPC8541 || \
+ ARCH_MPC8555 || ARCH_MPC8560 || \
+ ARCH_MPC8568
+
+ default 2 if ARCH_P2041 || \
+ ARCH_P3041 || \
+ ARCH_P4080 || \
+ ARCH_P5020 || \
+ ARCH_P5040
+ default 1
+
+ help
+ Defines divider of platform clock(clock input to
+ eLBC controller).
+
source "board/freescale/b4860qds/Kconfig"
source "board/freescale/bsc9131rdb/Kconfig"
source "board/freescale/bsc9132qds/Kconfig"
diff --git a/arch/powerpc/cpu/mpc85xx/speed.c b/arch/powerpc/cpu/mpc85xx/speed.c
index adba092..cb8281e 100644
--- a/arch/powerpc/cpu/mpc85xx/speed.c
+++ b/arch/powerpc/cpu/mpc85xx/speed.c
@@ -607,32 +607,8 @@ void get_sys_info(sys_info_t *sys_info)
#endif /* CONFIG_FSL_CORENET */
#if defined(CONFIG_FSL_LBC)
- uint lcrr_div;
-#if defined(CONFIG_SYS_LBC_LCRR)
- /* We will program LCRR to this value later */
- lcrr_div = CONFIG_SYS_LBC_LCRR & LCRR_CLKDIV;
-#else
- lcrr_div = in_be32(&(LBC_BASE_ADDR)->lcrr) & LCRR_CLKDIV;
-#endif
- if (lcrr_div == 2 || lcrr_div == 4 || lcrr_div == 8) {
-#if defined(CONFIG_FSL_CORENET)
- /* If this is corenet based SoC, bit-representation
- * for four times the clock divider values.
- */
- lcrr_div *= 4;
-#elif !defined(CONFIG_ARCH_MPC8540) && !defined(CONFIG_ARCH_MPC8541) && \
- !defined(CONFIG_ARCH_MPC8555) && !defined(CONFIG_ARCH_MPC8560)
- /*
- * Yes, the entire PQ38 family use the same
- * bit-representation for twice the clock divider values.
- */
- lcrr_div *= 2;
-#endif
- sys_info->freq_localbus = sys_info->freq_systembus / lcrr_div;
- } else {
- /* In case anyone cares what the unknown value is */
- sys_info->freq_localbus = lcrr_div;
- }
+ sys_info->freq_localbus = sys_info->freq_systembus /
+ CONFIG_SYS_FSL_LBC_CLK_DIV;
#endif
#if defined(CONFIG_FSL_IFC)
diff --git a/arch/powerpc/cpu/mpc86xx/speed.c b/arch/powerpc/cpu/mpc86xx/speed.c
index 05f23db..51b47b8 100644
--- a/arch/powerpc/cpu/mpc86xx/speed.c
+++ b/arch/powerpc/cpu/mpc86xx/speed.c
@@ -24,7 +24,6 @@ void get_sys_info(sys_info_t *sys_info)
volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR;
volatile ccsr_gur_t *gur = &immap->im_gur;
uint plat_ratio, e600_ratio;
- uint lcrr_div;
plat_ratio = (gur->porpllsr) & 0x0000003e;
plat_ratio >>= 1;
@@ -78,19 +77,7 @@ void get_sys_info(sys_info_t *sys_info)
break;
}
-#if defined(CONFIG_SYS_LBC_LCRR)
- /* We will program LCRR to this value later */
- lcrr_div = CONFIG_SYS_LBC_LCRR & LCRR_CLKDIV;
-#else
- lcrr_div = in_be32(&immap->im_lbc.lcrr) & LCRR_CLKDIV;
-#endif
- if (lcrr_div == 2 || lcrr_div == 4 || lcrr_div == 8) {
- sys_info->freq_localbus = sys_info->freq_systembus
- / (lcrr_div * 2);
- } else {
- /* In case anyone cares what the unknown value is */
- sys_info->freq_localbus = lcrr_div;
- }
+ sys_info->freq_localbus = sys_info->freq_systembus;
}
--
2.7.4
1
0

31 Jan '17
IFC IP clock is always a constant divisor of platform clock
pre-defined per SoC. Clock control register (CCR) used in
current implementation governs IFC IP output clock.
Update sys_info->freq_localbus to represent IFC input clock with
value constant divisor of platform clock.
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha(a)nxp.com>
---
Changes for v2: Split the patch in 2 patch set
Changes for v3: Rebased on top of u-boot commit
Changes for v4: Sending as it is
Changes for v5: Sending as it is
Changes for v6: Subject updated
Changes for v7: Sending as it is
arch/arm/cpu/armv7/ls102xa/clock.c | 9 +--------
arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c | 10 ++--------
arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_speed.c | 10 ++--------
3 files changed, 5 insertions(+), 24 deletions(-)
diff --git a/arch/arm/cpu/armv7/ls102xa/clock.c b/arch/arm/cpu/armv7/ls102xa/clock.c
index 7a337e1..b7d61ad 100644
--- a/arch/arm/cpu/armv7/ls102xa/clock.c
+++ b/arch/arm/cpu/armv7/ls102xa/clock.c
@@ -19,10 +19,6 @@ DECLARE_GLOBAL_DATA_PTR;
void get_sys_info(struct sys_info *sys_info)
{
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
-#ifdef CONFIG_FSL_IFC
- struct fsl_ifc ifc_regs = {(void *)CONFIG_SYS_IFC_ADDR, (void *)NULL};
- u32 ccr;
-#endif
struct ccsr_clk *clk = (void *)(CONFIG_SYS_FSL_LS1_CLK_ADDR);
unsigned int cpu;
const u8 core_cplx_pll[6] = {
@@ -74,10 +70,7 @@ void get_sys_info(struct sys_info *sys_info)
}
#if defined(CONFIG_FSL_IFC)
- ccr = in_be32(&ifc_regs.gregs->ifc_ccr);
- ccr = ((ccr & IFC_CCR_CLK_DIV_MASK) >> IFC_CCR_CLK_DIV_SHIFT) + 1;
-
- sys_info->freq_localbus = sys_info->freq_systembus / ccr;
+ sys_info->freq_localbus = sys_info->freq_systembus;
#endif
}
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c
index 3da7037..2d7775e 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c
@@ -22,10 +22,6 @@ DECLARE_GLOBAL_DATA_PTR;
void get_sys_info(struct sys_info *sys_info)
{
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
-#ifdef CONFIG_FSL_IFC
- struct fsl_ifc ifc_regs = {(void *)CONFIG_SYS_IFC_ADDR, (void *)NULL};
- u32 ccr;
-#endif
#if (defined(CONFIG_FSL_ESDHC) &&\
defined(CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK)) ||\
defined(CONFIG_SYS_DPAA_FMAN)
@@ -156,10 +152,8 @@ void get_sys_info(struct sys_info *sys_info)
#endif
#if defined(CONFIG_FSL_IFC)
- ccr = ifc_in32(&ifc_regs.gregs->ifc_ccr);
- ccr = ((ccr & IFC_CCR_CLK_DIV_MASK) >> IFC_CCR_CLK_DIV_SHIFT) + 1;
-
- sys_info->freq_localbus = sys_info->freq_systembus / ccr;
+ sys_info->freq_localbus = sys_info->freq_systembus /
+ CONFIG_SYS_FSL_IFC_CLK_DIV;
#endif
}
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_speed.c b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_speed.c
index f8fefc7..ab46431 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_speed.c
+++ b/arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch3_speed.c
@@ -26,10 +26,6 @@ DECLARE_GLOBAL_DATA_PTR;
void get_sys_info(struct sys_info *sys_info)
{
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
-#ifdef CONFIG_FSL_IFC
- struct fsl_ifc ifc_regs = {(void *)CONFIG_SYS_IFC_ADDR, (void *)NULL};
- u32 ccr;
-#endif
struct ccsr_clk_cluster_group __iomem *clk_grp[2] = {
(void *)(CONFIG_SYS_FSL_CH3_CLK_GRPA_ADDR),
(void *)(CONFIG_SYS_FSL_CH3_CLK_GRPB_ADDR)
@@ -128,10 +124,8 @@ void get_sys_info(struct sys_info *sys_info)
}
#if defined(CONFIG_FSL_IFC)
- ccr = ifc_in32(&ifc_regs.gregs->ifc_ccr);
- ccr = ((ccr & IFC_CCR_CLK_DIV_MASK) >> IFC_CCR_CLK_DIV_SHIFT) + 1;
-
- sys_info->freq_localbus = sys_info->freq_systembus / ccr;
+ sys_info->freq_localbus = sys_info->freq_systembus /
+ CONFIG_SYS_FSL_IFC_CLK_DIV;
#endif
}
--
2.7.4
1
0

[U-Boot] [PATCH 2/5][v7] arch: powerpc: update the IFC IP input clock
by Prabhakar Kushwaha 31 Jan '17
by Prabhakar Kushwaha 31 Jan '17
31 Jan '17
IFC IP clock is always a constant divisor of platform clock
pre-defined per SoC. Clock control register (CCR) used in
current implementation governs IFC IP output clock.
Update sys_info->freq_localbus to represent IFC input clock with
value constant divisor of platform clock.
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha(a)nxp.com>
---
Changes for v2: Split the patch in 2 patch set
Changes for v3: Rebased on top of u-boot commit
Changes for v4: fix compilation error
Changes for v5: Adding FSL_IFC as dependency
Changes for v6: Updated subject description
Changes for v7: Sending as it is
README | 3 +++
arch/powerpc/cpu/mpc85xx/Kconfig | 16 ++++++++++++++++
arch/powerpc/cpu/mpc85xx/speed.c | 10 ++--------
3 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/README b/README
index a95348a..9fda381 100644
--- a/README
+++ b/README
@@ -504,6 +504,9 @@ The following options need to be configured:
CONFIG_SYS_FSL_IFC_LE
Defines the IFC controller register space as Little Endian
+ CONFIG_SYS_FSL_IFC_CLK_DIV
+ Defines divider of platform clock(clock input to IFC controller).
+
CONFIG_SYS_FSL_PBL_PBI
It enables addition of RCW (Power on reset configuration) in built image.
Please refer doc/README.pblimage for more details
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index a3db014..83df733 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -1301,6 +1301,22 @@ config SYS_PPC_E500_DEBUG_TLB
symbol should be set to the TLB1 entry to be used for this
purpose. If unsure, do not change.
+config SYS_FSL_IFC_CLK_DIV
+ int "Divider of platform clock"
+ depends on FSL_IFC
+ default 2 if ARCH_B4420 || \
+ ARCH_B4860 || \
+ ARCH_T1024 || \
+ ARCH_T1023 || \
+ ARCH_T1040 || \
+ ARCH_T1042 || \
+ ARCH_T4160 || \
+ ARCH_T4240
+ default 1
+ help
+ Defines divider of platform clock(clock input to
+ IFC controller).
+
source "board/freescale/b4860qds/Kconfig"
source "board/freescale/bsc9131rdb/Kconfig"
source "board/freescale/bsc9132qds/Kconfig"
diff --git a/arch/powerpc/cpu/mpc85xx/speed.c b/arch/powerpc/cpu/mpc85xx/speed.c
index fcf5d92..adba092 100644
--- a/arch/powerpc/cpu/mpc85xx/speed.c
+++ b/arch/powerpc/cpu/mpc85xx/speed.c
@@ -27,10 +27,6 @@ DECLARE_GLOBAL_DATA_PTR;
void get_sys_info(sys_info_t *sys_info)
{
volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
-#ifdef CONFIG_FSL_IFC
- struct fsl_ifc ifc_regs = {(void *)CONFIG_SYS_IFC_ADDR, (void *)NULL};
- u32 ccr;
-#endif
#ifdef CONFIG_FSL_CORENET
volatile ccsr_clk_t *clk = (void *)(CONFIG_SYS_FSL_CORENET_CLK_ADDR);
unsigned int cpu;
@@ -640,10 +636,8 @@ void get_sys_info(sys_info_t *sys_info)
#endif
#if defined(CONFIG_FSL_IFC)
- ccr = ifc_in32(&ifc_regs.gregs->ifc_ccr);
- ccr = ((ccr & IFC_CCR_CLK_DIV_MASK) >> IFC_CCR_CLK_DIV_SHIFT) + 1;
-
- sys_info->freq_localbus = sys_info->freq_systembus / ccr;
+ sys_info->freq_localbus = sys_info->freq_systembus /
+ CONFIG_SYS_FSL_IFC_CLK_DIV;
#endif
}
--
2.7.4
1
0

[U-Boot] [PATCH] phy: comphy_a3700: Change SD/MMC compatible DT node to match the updates
by Stefan Roese 31 Jan '17
by Stefan Roese 31 Jan '17
31 Jan '17
Now that the SD/SDIO/MMC DT properties are updated in the Marvell
A3700 and A7/8k DT files, we need to match the checks for compatible
node in the PHY driver as well.
Signed-off-by: Stefan Roese <sr(a)denx.de>
Cc: Kostya Porotchkin <kostap(a)marvell.com>
Cc: Nadav Haklai <nadavh(a)marvell.com>
---
drivers/phy/marvell/comphy_a3700.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/phy/marvell/comphy_a3700.c b/drivers/phy/marvell/comphy_a3700.c
index faa62f90ae..5afd23c052 100644
--- a/drivers/phy/marvell/comphy_a3700.c
+++ b/drivers/phy/marvell/comphy_a3700.c
@@ -884,11 +884,10 @@ void comphy_dedicated_phys_init(void)
}
node = fdt_node_offset_by_compatible(blob, -1,
- "marvell,armada-3700-sdio");
+ "marvell,armada-8k-sdhci");
if (node <= 0) {
- debug("No SDIO node in DT, looking for MMC one\n");
- node = fdt_node_offset_by_compatible(blob, -1,
- "marvell,xenon-sdhci");
+ node = fdt_node_offset_by_compatible(
+ blob, -1, "marvell,armada-3700-sdhci");
}
if (node > 0) {
--
2.11.0
2
3

[U-Boot] [PATCH 00/16] ARM: uniphier: UniPhier SoC updates for v2017.03 (3rd round)
by Masahiro Yamada 31 Jan '17
by Masahiro Yamada 31 Jan '17
31 Jan '17
- Fix clk driver
- Optimize DRAM init code for LD20 SoC
- Get DRAM information from more reliable source
- Clean up SoC init code
- Allow to use Image.gz for booting ARM64 Linux
- Tidy up environments to use with ATF
- Clean up I2C drivers
Masahiro Yamada (16):
clk: uniphier: fix compatible strings for Pro5, PXs2, LD20 SD clock
ARM: uniphier: shrink arrays of DDR-PHY parameters for LD20 SoC
ARM: uniphier: detect RAM size by decoding HW register instead of DT
ARM: uniphier: use gd->bd->bi_dram for memory reserve on LD20 SoC
ARM: uniphier: refactor cmd_ddrphy
ARM: uniphier: clean up UMC init for PXs2 SoC
ARM: uniphier: refactor cmd_ddrmphy
ARM: uniphier: compile board data only for SPL
ARM: uniphier: collect SPL CONFIG symbols to the bottom of header
ARM: uniphier: use Image.gz instead Image for booting ARM64 Linux
ARM: uniphier: set initrd_high environment to skip initrd relocation
ARM: uniphier: change the offset to environment storage area
ARM: uniphier: change CONFIG_SPL_PAD_TO to 128KB
ARM: uniphier: make update commands more flexible for ATF
i2c: uniphier(-f): remove unneeded #include <dm/root.h>
i2c: uniphier-f: use readl_poll_timeout() to poll registers
arch/arm/mach-uniphier/Makefile | 2 +-
arch/arm/mach-uniphier/dram/cmd_ddrmphy.c | 234 ++++++++++++++-----------
arch/arm/mach-uniphier/dram/cmd_ddrphy.c | 156 +++++++++--------
arch/arm/mach-uniphier/dram/ddrmphy-regs.h | 262 ++++++++++++++--------------
arch/arm/mach-uniphier/dram/umc-ld20.c | 254 +++++++++-------------------
arch/arm/mach-uniphier/dram/umc-pxs2.c | 253 +++++++++++++--------------
arch/arm/mach-uniphier/dram_init.c | 263 ++++++++++++++++++++++-------
arch/arm/mach-uniphier/init.h | 1 +
common/spl/Kconfig | 3 +-
drivers/clk/uniphier/clk-uniphier-core.c | 6 +-
drivers/i2c/i2c-uniphier-f.c | 35 ++--
drivers/i2c/i2c-uniphier.c | 1 -
include/configs/uniphier.h | 104 ++++++++----
13 files changed, 839 insertions(+), 735 deletions(-)
--
2.7.4
2
19

[U-Boot] [PATCH v3 3/3] odroid-c2: enable new Meson GX MMC driver in board defconfig
by Heiner Kallweit 31 Jan '17
by Heiner Kallweit 31 Jan '17
31 Jan '17
Enable new Meson GX MMC driver in Odroid C2 defconfig.
Signed-off-by: Heiner Kallweit <hkallweit1(a)gmail.com>
---
v2:
- move GXBB_PINMUX definition from patch 3 to this one
v3:
- remove pinmux configuration in board init and use
pinctrl driver instead
---
configs/odroid-c2_defconfig | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/configs/odroid-c2_defconfig b/configs/odroid-c2_defconfig
index 119ab07..824dd6c 100644
--- a/configs/odroid-c2_defconfig
+++ b/configs/odroid-c2_defconfig
@@ -3,7 +3,9 @@ CONFIG_ARCH_MESON=y
CONFIG_MESON_GXBB=y
CONFIG_TARGET_ODROID_C2=y
CONFIG_IDENT_STRING=" odroid-c2"
-# CONFIG_MMC is not set
+CONFIG_MMC=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_MESON_GX=y
CONFIG_DEFAULT_DEVICE_TREE="meson-gxbb-odroidc2"
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set
@@ -14,6 +16,7 @@ CONFIG_HUSH_PARSER=y
# CONFIG_CMD_LOADS is not set
# CONFIG_CMD_FPGA is not set
# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_MMC=y
CONFIG_OF_CONTROL=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_DM_ETH=y
--
2.11.0
2
1

31 Jan '17
Add the max8997 controller for Driver model.
Exynos4210 is using max8997 pmic controller.
(pmic_max8997.c should be deprecated.)
Signed-off-by: Jaehoon Chung <jh80.chung(a)samsung.com>
---
drivers/power/pmic/Kconfig | 7 +++++
drivers/power/pmic/Makefile | 1 +
drivers/power/pmic/max8997.c | 61 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 69 insertions(+)
create mode 100644 drivers/power/pmic/max8997.c
diff --git a/drivers/power/pmic/Kconfig b/drivers/power/pmic/Kconfig
index 5e244c8..19494fa 100644
--- a/drivers/power/pmic/Kconfig
+++ b/drivers/power/pmic/Kconfig
@@ -54,6 +54,13 @@ config DM_PMIC_MAX77686
This config enables implementation of driver-model pmic uclass features
for PMIC MAX77686. The driver implements read/write operations.
+config DM_PMIC_MAX8997
+ bool "Enable Driver Model for PMIC MAX8997"
+ depends on DM_PMIC
+ ---help---
+ This config enables implementation of driver-model pmic uclass features
+ for PMIC MAX8997. The driver implements read/write operations.
+
config DM_PMIC_MAX8998
bool "Enable Driver Model for PMIC MAX8998"
depends on DM_PMIC
diff --git a/drivers/power/pmic/Makefile b/drivers/power/pmic/Makefile
index b4ac7d2..43f5557 100644
--- a/drivers/power/pmic/Makefile
+++ b/drivers/power/pmic/Makefile
@@ -7,6 +7,7 @@
obj-$(CONFIG_DM_PMIC) += pmic-uclass.o
obj-$(CONFIG_DM_PMIC_MAX77686) += max77686.o
+obj-$(CONFIG_DM_PMIC_MAX8997) += max8997.o
obj-$(CONFIG_DM_PMIC_MAX8998) += max8998.o
obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze100.o
obj-$(CONFIG_PMIC_S2MPS11) += s2mps11.o
diff --git a/drivers/power/pmic/max8997.c b/drivers/power/pmic/max8997.c
new file mode 100644
index 0000000..f749d7d
--- /dev/null
+++ b/drivers/power/pmic/max8997.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2016 Samsung Electronics
+ * Jaehoon Chung <jh80.chung(a)samsung.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <i2c.h>
+#include <power/pmic.h>
+#include <power/max8997_pmic.h>
+#include <errno.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int max8997_reg_count(struct udevice *dev)
+{
+ return PMIC_NUM_OF_REGS;
+}
+
+static int max8997_write(struct udevice *dev, uint reg, const uint8_t *buff,
+ int len)
+{
+ int ret;
+
+ ret = dm_i2c_write(dev, reg, buff, len);
+ if (ret)
+ error("write error to device: %p register: %#x!", dev, reg);
+
+ return ret;
+}
+
+static int max8997_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
+{
+ int ret;
+
+ ret = dm_i2c_read(dev, reg, buff, len);
+ if (ret)
+ error("read error from device: %p register: %#x!", dev, reg);
+
+ return ret;
+}
+
+static struct dm_pmic_ops max8997_ops = {
+ .reg_count = max8997_reg_count,
+ .read = max8997_read,
+ .write = max8997_write,
+};
+
+static const struct udevice_id max8997_ids[] = {
+ { .compatible = "maxim,max8997" },
+ { },
+};
+
+U_BOOT_DRIVER(pmic_max8997) = {
+ .name = "max8997_pmic",
+ .id = UCLASS_PMIC,
+ .of_match = max8997_ids,
+ .ops = &max8997_ops,
+};
--
2.10.2
2
4