* [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI
@ 2017-02-20 11:24 ` Andy Shevchenko
2017-02-20 11:24 ` [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver Andy Shevchenko
2017-02-28 4:42 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Jaehoon Chung
0 siblings, 2 replies; 5+ messages in thread
From: Andy Shevchenko @ 2017-02-20 11:24 UTC (permalink / raw)
To: u-boot
From: Felipe Balbi <felipe.balbi@linux.intel.com>
We don't want pci_mmc to compile every time x86 compiles, only when
there's a platform that needs it. For that reason, we're adding a new
CONFIG_MMC_PCI which platforms can choose to enable.
Suggested-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
configs/bayleybay_defconfig | 1 +
configs/conga-qeval20-qa3-e3845-internal-uart_defconfig | 1 +
configs/conga-qeval20-qa3-e3845_defconfig | 1 +
configs/crownbay_defconfig | 1 +
configs/dfi-bt700-q7x-151_defconfig | 1 +
configs/galileo_defconfig | 1 +
configs/minnowmax_defconfig | 1 +
configs/theadorable-x86-dfi-bt700_defconfig | 1 +
drivers/mmc/Kconfig | 8 ++++++++
drivers/mmc/Makefile | 2 +-
10 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig
index c6aa24f9be..d2f9f24a19 100644
--- a/configs/bayleybay_defconfig
+++ b/configs/bayleybay_defconfig
@@ -48,6 +48,7 @@ CONFIG_REGMAP=y
CONFIG_SYSCON=y
CONFIG_CPU=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
index 890d28ce69..d96bfcbe14 100644
--- a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
+++ b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
@@ -50,6 +50,7 @@ CONFIG_DM_I2C=y
CONFIG_SYS_I2C_INTEL=y
CONFIG_WINBOND_W83627=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/conga-qeval20-qa3-e3845_defconfig b/configs/conga-qeval20-qa3-e3845_defconfig
index 6e4cd843d9..1642bf2926 100644
--- a/configs/conga-qeval20-qa3-e3845_defconfig
+++ b/configs/conga-qeval20-qa3-e3845_defconfig
@@ -49,6 +49,7 @@ CONFIG_DM_I2C=y
CONFIG_SYS_I2C_INTEL=y
CONFIG_WINBOND_W83627=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
index 13a00c2a17..4a88f5f3c5 100644
--- a/configs/crownbay_defconfig
+++ b/configs/crownbay_defconfig
@@ -37,6 +37,7 @@ CONFIG_REGMAP=y
CONFIG_SYSCON=y
CONFIG_CPU=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig
index ce447f540a..d5bd66f83c 100644
--- a/configs/dfi-bt700-q7x-151_defconfig
+++ b/configs/dfi-bt700-q7x-151_defconfig
@@ -47,6 +47,7 @@ CONFIG_CPU=y
CONFIG_DM_I2C=y
CONFIG_NUVOTON_NCT6102D=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig
index 570f9ea810..f60abc3422 100644
--- a/configs/galileo_defconfig
+++ b/configs/galileo_defconfig
@@ -42,6 +42,7 @@ CONFIG_REGMAP=y
CONFIG_SYSCON=y
CONFIG_CPU=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig
index 5f61f2a19c..8dac1d72fb 100644
--- a/configs/minnowmax_defconfig
+++ b/configs/minnowmax_defconfig
@@ -47,6 +47,7 @@ CONFIG_REGMAP=y
CONFIG_SYSCON=y
CONFIG_CPU=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig
index cde33bbfe1..1703cee841 100644
--- a/configs/theadorable-x86-dfi-bt700_defconfig
+++ b/configs/theadorable-x86-dfi-bt700_defconfig
@@ -47,6 +47,7 @@ CONFIG_CPU=y
CONFIG_DM_I2C=y
CONFIG_NUVOTON_NCT6102D=y
CONFIG_MMC=y
+CONFIG_MMC_PCI=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_SPI_FLASH=y
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index 01d1dbfb1b..af8436f337 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -122,6 +122,14 @@ config MMC_MXS
If unsure, say N.
+config MMC_PCI
+ bool "Support for MMC controllers on PCI"
+ help
+ This selects PCI-based MMC controllers.
+ If you have an MMC controller on a PCI bus, say Y here.
+
+ If unsure, say N.
+
config MMC_OMAP_HS
bool "TI OMAP High Speed Multimedia Card Interface support"
help
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
index 8e922db3f1..9fccac8ead 100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -34,7 +34,7 @@ obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o
obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
obj-$(CONFIG_MMC_MXC) += mxcmmc.o
obj-$(CONFIG_MMC_MXS) += mxsmmc.o
-obj-$(CONFIG_X86) += pci_mmc.o
+obj-$(CONFIG_MMC_PCI) += pci_mmc.o
obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o
obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o
obj-$(CONFIG_S3C_SDI) += s3c_sdi.o
--
2.11.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver
2017-02-20 11:24 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Andy Shevchenko
@ 2017-02-20 11:24 ` Andy Shevchenko
2017-02-21 1:47 ` Bin Meng
2017-02-28 4:43 ` Jaehoon Chung
2017-02-28 4:42 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Jaehoon Chung
1 sibling, 2 replies; 5+ messages in thread
From: Andy Shevchenko @ 2017-02-20 11:24 UTC (permalink / raw)
To: u-boot
From: Felipe Balbi <felipe.balbi@linux.intel.com>
This patch adds Intel Tangier eMMC/SDHCI driver.
Intel Tangier SoC contains a hybrid of PCI and non-PCI devices. SDHCI
controller is one of the devices which are *not* on a PCI and, hence,
cannot be enumerated by standard PCI means. This driver, allows for
SDHCI controller on Tangier SoC to work in U-Boot.
Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/mmc/Kconfig | 14 ++++++++
drivers/mmc/Makefile | 1 +
drivers/mmc/tangier_sdhci.c | 81 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 96 insertions(+)
create mode 100644 drivers/mmc/tangier_sdhci.c
diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
index af8436f337..7238aade42 100644
--- a/drivers/mmc/Kconfig
+++ b/drivers/mmc/Kconfig
@@ -318,6 +318,20 @@ config MMC_SDHCI_XENON
If unsure, say N.
+config MMC_SDHCI_TANGIER
+ bool "Tangier SDHCI controller support"
+ depends on DM_MMC && BLK
+ depends on MMC_SDHCI
+ help
+ This selects support for SDHCI controller on Tanginer
+ SoC. Note that this controller does not sit on PCI bus and,
+ hence, cannot be enumerated by standard PCI means.
+
+ If you're using an Intel Tangier SoC (available on Intel
+ Edison board), say Y here.
+
+ If unsure, say N.
+
config MMC_SDHCI_TEGRA
bool "SDHCI platform support for the Tegra SD/MMC Controller"
depends on TEGRA
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
index 9fccac8ead..b210d2c3b3 100644
--- a/drivers/mmc/Makefile
+++ b/drivers/mmc/Makefile
@@ -61,6 +61,7 @@ obj-$(CONFIG_MMC_SDHCI_PIC32) += pic32_sdhci.o
obj-$(CONFIG_MMC_SDHCI_ROCKCHIP) += rockchip_sdhci.o
obj-$(CONFIG_MMC_SDHCI_S5P) += s5p_sdhci.o
obj-$(CONFIG_MMC_SDHCI_SPEAR) += spear_sdhci.o
+obj-$(CONFIG_MMC_SDHCI_TANGIER) += tangier_sdhci.o
obj-$(CONFIG_MMC_SDHCI_TEGRA) += tegra_mmc.o
obj-$(CONFIG_MMC_SDHCI_XENON) += xenon_sdhci.o
obj-$(CONFIG_MMC_SDHCI_ZYNQ) += zynq_sdhci.o
diff --git a/drivers/mmc/tangier_sdhci.c b/drivers/mmc/tangier_sdhci.c
new file mode 100644
index 0000000000..77b18e75f0
--- /dev/null
+++ b/drivers/mmc/tangier_sdhci.c
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+#include <common.h>
+#include <dm.h>
+#include <dm/device.h>
+#include <linux/io.h>
+#include <linux/sizes.h>
+#include <malloc.h>
+#include <mmc.h>
+#include <sdhci.h>
+
+#define SDHCI_TANGIER_FMAX 200000000
+#define SDHCI_TANGIER_FMIN 400000
+
+struct sdhci_tangier_plat {
+ struct mmc_config cfg;
+ struct mmc mmc;
+ void __iomem *ioaddr;
+};
+
+static int sdhci_tangier_bind(struct udevice *dev)
+{
+ struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+
+ return sdhci_bind(dev, &plat->mmc, &plat->cfg);
+}
+
+static int sdhci_tangier_probe(struct udevice *dev)
+{
+ struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
+ struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
+ struct sdhci_host *host = dev_get_priv(dev);
+ fdt_addr_t base;
+ int ret;
+
+ base = dev_get_addr(dev);
+ if (base == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ plat->ioaddr = devm_ioremap(dev, base, SZ_1K);
+ if (!plat->ioaddr)
+ return -ENOMEM;
+
+ host->name = dev->name;
+ host->ioaddr = plat->ioaddr;
+ host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
+ SDHCI_QUIRK_32BIT_DMA_ADDR | SDHCI_QUIRK_WAIT_SEND_CMD;
+
+ /* MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195 */
+ host->voltages = MMC_VDD_165_195;
+
+ ret = sdhci_setup_cfg(&plat->cfg, host, SDHCI_TANGIER_FMAX,
+ SDHCI_TANGIER_FMIN);
+ if (ret)
+ return ret;
+
+ upriv->mmc = &plat->mmc;
+ host->mmc = &plat->mmc;
+ host->mmc->priv = host;
+
+ return sdhci_probe(dev);
+}
+
+static const struct udevice_id sdhci_tangier_match[] = {
+ { .compatible = "intel,sdhci-tangier" },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(sdhci_tangier) = {
+ .name = "sdhci-tangier",
+ .id = UCLASS_MMC,
+ .of_match = sdhci_tangier_match,
+ .bind = sdhci_tangier_bind,
+ .probe = sdhci_tangier_probe,
+ .ops = &sdhci_ops,
+ .priv_auto_alloc_size = sizeof(struct sdhci_host),
+ .platdata_auto_alloc_size = sizeof(struct sdhci_tangier_plat),
+};
--
2.11.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver
2017-02-20 11:24 ` [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver Andy Shevchenko
@ 2017-02-21 1:47 ` Bin Meng
2017-02-28 4:43 ` Jaehoon Chung
1 sibling, 0 replies; 5+ messages in thread
From: Bin Meng @ 2017-02-21 1:47 UTC (permalink / raw)
To: u-boot
On Mon, Feb 20, 2017 at 7:24 PM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> From: Felipe Balbi <felipe.balbi@linux.intel.com>
>
> This patch adds Intel Tangier eMMC/SDHCI driver.
>
> Intel Tangier SoC contains a hybrid of PCI and non-PCI devices. SDHCI
> controller is one of the devices which are *not* on a PCI and, hence,
> cannot be enumerated by standard PCI means. This driver, allows for
> SDHCI controller on Tangier SoC to work in U-Boot.
>
> Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com>
> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> drivers/mmc/Kconfig | 14 ++++++++
> drivers/mmc/Makefile | 1 +
> drivers/mmc/tangier_sdhci.c | 81 +++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 96 insertions(+)
> create mode 100644 drivers/mmc/tangier_sdhci.c
>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI
2017-02-20 11:24 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Andy Shevchenko
2017-02-20 11:24 ` [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver Andy Shevchenko
@ 2017-02-28 4:42 ` Jaehoon Chung
1 sibling, 0 replies; 5+ messages in thread
From: Jaehoon Chung @ 2017-02-28 4:42 UTC (permalink / raw)
To: u-boot
Hi Andy,
On 02/20/2017 08:24 PM, Andy Shevchenko wrote:
> From: Felipe Balbi <felipe.balbi@linux.intel.com>
>
> We don't want pci_mmc to compile every time x86 compiles, only when
> there's a platform that needs it. For that reason, we're adding a new
> CONFIG_MMC_PCI which platforms can choose to enable.
>
> Suggested-by: Jaehoon Chung <jh80.chung@samsung.com>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Applied on u-boot-mmc. Thanks!
Best Regards,
Jaehoon Chung
> ---
> configs/bayleybay_defconfig | 1 +
> configs/conga-qeval20-qa3-e3845-internal-uart_defconfig | 1 +
> configs/conga-qeval20-qa3-e3845_defconfig | 1 +
> configs/crownbay_defconfig | 1 +
> configs/dfi-bt700-q7x-151_defconfig | 1 +
> configs/galileo_defconfig | 1 +
> configs/minnowmax_defconfig | 1 +
> configs/theadorable-x86-dfi-bt700_defconfig | 1 +
> drivers/mmc/Kconfig | 8 ++++++++
> drivers/mmc/Makefile | 2 +-
> 10 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig
> index c6aa24f9be..d2f9f24a19 100644
> --- a/configs/bayleybay_defconfig
> +++ b/configs/bayleybay_defconfig
> @@ -48,6 +48,7 @@ CONFIG_REGMAP=y
> CONFIG_SYSCON=y
> CONFIG_CPU=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> index 890d28ce69..d96bfcbe14 100644
> --- a/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> +++ b/configs/conga-qeval20-qa3-e3845-internal-uart_defconfig
> @@ -50,6 +50,7 @@ CONFIG_DM_I2C=y
> CONFIG_SYS_I2C_INTEL=y
> CONFIG_WINBOND_W83627=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/conga-qeval20-qa3-e3845_defconfig b/configs/conga-qeval20-qa3-e3845_defconfig
> index 6e4cd843d9..1642bf2926 100644
> --- a/configs/conga-qeval20-qa3-e3845_defconfig
> +++ b/configs/conga-qeval20-qa3-e3845_defconfig
> @@ -49,6 +49,7 @@ CONFIG_DM_I2C=y
> CONFIG_SYS_I2C_INTEL=y
> CONFIG_WINBOND_W83627=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig
> index 13a00c2a17..4a88f5f3c5 100644
> --- a/configs/crownbay_defconfig
> +++ b/configs/crownbay_defconfig
> @@ -37,6 +37,7 @@ CONFIG_REGMAP=y
> CONFIG_SYSCON=y
> CONFIG_CPU=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig
> index ce447f540a..d5bd66f83c 100644
> --- a/configs/dfi-bt700-q7x-151_defconfig
> +++ b/configs/dfi-bt700-q7x-151_defconfig
> @@ -47,6 +47,7 @@ CONFIG_CPU=y
> CONFIG_DM_I2C=y
> CONFIG_NUVOTON_NCT6102D=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/galileo_defconfig b/configs/galileo_defconfig
> index 570f9ea810..f60abc3422 100644
> --- a/configs/galileo_defconfig
> +++ b/configs/galileo_defconfig
> @@ -42,6 +42,7 @@ CONFIG_REGMAP=y
> CONFIG_SYSCON=y
> CONFIG_CPU=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/minnowmax_defconfig b/configs/minnowmax_defconfig
> index 5f61f2a19c..8dac1d72fb 100644
> --- a/configs/minnowmax_defconfig
> +++ b/configs/minnowmax_defconfig
> @@ -47,6 +47,7 @@ CONFIG_REGMAP=y
> CONFIG_SYSCON=y
> CONFIG_CPU=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig
> index cde33bbfe1..1703cee841 100644
> --- a/configs/theadorable-x86-dfi-bt700_defconfig
> +++ b/configs/theadorable-x86-dfi-bt700_defconfig
> @@ -47,6 +47,7 @@ CONFIG_CPU=y
> CONFIG_DM_I2C=y
> CONFIG_NUVOTON_NCT6102D=y
> CONFIG_MMC=y
> +CONFIG_MMC_PCI=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_SDMA=y
> CONFIG_SPI_FLASH=y
> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> index 01d1dbfb1b..af8436f337 100644
> --- a/drivers/mmc/Kconfig
> +++ b/drivers/mmc/Kconfig
> @@ -122,6 +122,14 @@ config MMC_MXS
>
> If unsure, say N.
>
> +config MMC_PCI
> + bool "Support for MMC controllers on PCI"
> + help
> + This selects PCI-based MMC controllers.
> + If you have an MMC controller on a PCI bus, say Y here.
> +
> + If unsure, say N.
> +
> config MMC_OMAP_HS
> bool "TI OMAP High Speed Multimedia Card Interface support"
> help
> diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
> index 8e922db3f1..9fccac8ead 100644
> --- a/drivers/mmc/Makefile
> +++ b/drivers/mmc/Makefile
> @@ -34,7 +34,7 @@ obj-$(CONFIG_MVEBU_MMC) += mvebu_mmc.o
> obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
> obj-$(CONFIG_MMC_MXC) += mxcmmc.o
> obj-$(CONFIG_MMC_MXS) += mxsmmc.o
> -obj-$(CONFIG_X86) += pci_mmc.o
> +obj-$(CONFIG_MMC_PCI) += pci_mmc.o
> obj-$(CONFIG_PXA_MMC_GENERIC) += pxa_mmc_gen.o
> obj-$(CONFIG_SUPPORT_EMMC_RPMB) += rpmb.o
> obj-$(CONFIG_S3C_SDI) += s3c_sdi.o
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver
2017-02-20 11:24 ` [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver Andy Shevchenko
2017-02-21 1:47 ` Bin Meng
@ 2017-02-28 4:43 ` Jaehoon Chung
1 sibling, 0 replies; 5+ messages in thread
From: Jaehoon Chung @ 2017-02-28 4:43 UTC (permalink / raw)
To: u-boot
Hi Andy,
On 02/20/2017 08:24 PM, Andy Shevchenko wrote:
> From: Felipe Balbi <felipe.balbi@linux.intel.com>
>
> This patch adds Intel Tangier eMMC/SDHCI driver.
>
> Intel Tangier SoC contains a hybrid of PCI and non-PCI devices. SDHCI
> controller is one of the devices which are *not* on a PCI and, hence,
> cannot be enumerated by standard PCI means. This driver, allows for
> SDHCI controller on Tangier SoC to work in U-Boot.
>
> Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com>
> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Applied on u-boot-mmc. Thanks!
Best Regards,
Jaehoon Chung
> ---
> drivers/mmc/Kconfig | 14 ++++++++
> drivers/mmc/Makefile | 1 +
> drivers/mmc/tangier_sdhci.c | 81 +++++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 96 insertions(+)
> create mode 100644 drivers/mmc/tangier_sdhci.c
>
> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
> index af8436f337..7238aade42 100644
> --- a/drivers/mmc/Kconfig
> +++ b/drivers/mmc/Kconfig
> @@ -318,6 +318,20 @@ config MMC_SDHCI_XENON
>
> If unsure, say N.
>
> +config MMC_SDHCI_TANGIER
> + bool "Tangier SDHCI controller support"
> + depends on DM_MMC && BLK
> + depends on MMC_SDHCI
> + help
> + This selects support for SDHCI controller on Tanginer
> + SoC. Note that this controller does not sit on PCI bus and,
> + hence, cannot be enumerated by standard PCI means.
> +
> + If you're using an Intel Tangier SoC (available on Intel
> + Edison board), say Y here.
> +
> + If unsure, say N.
> +
> config MMC_SDHCI_TEGRA
> bool "SDHCI platform support for the Tegra SD/MMC Controller"
> depends on TEGRA
> diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
> index 9fccac8ead..b210d2c3b3 100644
> --- a/drivers/mmc/Makefile
> +++ b/drivers/mmc/Makefile
> @@ -61,6 +61,7 @@ obj-$(CONFIG_MMC_SDHCI_PIC32) += pic32_sdhci.o
> obj-$(CONFIG_MMC_SDHCI_ROCKCHIP) += rockchip_sdhci.o
> obj-$(CONFIG_MMC_SDHCI_S5P) += s5p_sdhci.o
> obj-$(CONFIG_MMC_SDHCI_SPEAR) += spear_sdhci.o
> +obj-$(CONFIG_MMC_SDHCI_TANGIER) += tangier_sdhci.o
> obj-$(CONFIG_MMC_SDHCI_TEGRA) += tegra_mmc.o
> obj-$(CONFIG_MMC_SDHCI_XENON) += xenon_sdhci.o
> obj-$(CONFIG_MMC_SDHCI_ZYNQ) += zynq_sdhci.o
> diff --git a/drivers/mmc/tangier_sdhci.c b/drivers/mmc/tangier_sdhci.c
> new file mode 100644
> index 0000000000..77b18e75f0
> --- /dev/null
> +++ b/drivers/mmc/tangier_sdhci.c
> @@ -0,0 +1,81 @@
> +/*
> + * Copyright (c) 2017 Intel Corporation
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +#include <common.h>
> +#include <dm.h>
> +#include <dm/device.h>
> +#include <linux/io.h>
> +#include <linux/sizes.h>
> +#include <malloc.h>
> +#include <mmc.h>
> +#include <sdhci.h>
> +
> +#define SDHCI_TANGIER_FMAX 200000000
> +#define SDHCI_TANGIER_FMIN 400000
> +
> +struct sdhci_tangier_plat {
> + struct mmc_config cfg;
> + struct mmc mmc;
> + void __iomem *ioaddr;
> +};
> +
> +static int sdhci_tangier_bind(struct udevice *dev)
> +{
> + struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
> +
> + return sdhci_bind(dev, &plat->mmc, &plat->cfg);
> +}
> +
> +static int sdhci_tangier_probe(struct udevice *dev)
> +{
> + struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
> + struct sdhci_tangier_plat *plat = dev_get_platdata(dev);
> + struct sdhci_host *host = dev_get_priv(dev);
> + fdt_addr_t base;
> + int ret;
> +
> + base = dev_get_addr(dev);
> + if (base == FDT_ADDR_T_NONE)
> + return -EINVAL;
> +
> + plat->ioaddr = devm_ioremap(dev, base, SZ_1K);
> + if (!plat->ioaddr)
> + return -ENOMEM;
> +
> + host->name = dev->name;
> + host->ioaddr = plat->ioaddr;
> + host->quirks = SDHCI_QUIRK_NO_HISPD_BIT | SDHCI_QUIRK_BROKEN_VOLTAGE |
> + SDHCI_QUIRK_32BIT_DMA_ADDR | SDHCI_QUIRK_WAIT_SEND_CMD;
> +
> + /* MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195 */
> + host->voltages = MMC_VDD_165_195;
> +
> + ret = sdhci_setup_cfg(&plat->cfg, host, SDHCI_TANGIER_FMAX,
> + SDHCI_TANGIER_FMIN);
> + if (ret)
> + return ret;
> +
> + upriv->mmc = &plat->mmc;
> + host->mmc = &plat->mmc;
> + host->mmc->priv = host;
> +
> + return sdhci_probe(dev);
> +}
> +
> +static const struct udevice_id sdhci_tangier_match[] = {
> + { .compatible = "intel,sdhci-tangier" },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(sdhci_tangier) = {
> + .name = "sdhci-tangier",
> + .id = UCLASS_MMC,
> + .of_match = sdhci_tangier_match,
> + .bind = sdhci_tangier_bind,
> + .probe = sdhci_tangier_probe,
> + .ops = &sdhci_ops,
> + .priv_auto_alloc_size = sizeof(struct sdhci_host),
> + .platdata_auto_alloc_size = sizeof(struct sdhci_tangier_plat),
> +};
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-02-28 4:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20170220112537epcas3p381df74bee869824821737be5727d73bf@epcas3p3.samsung.com>
2017-02-20 11:24 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Andy Shevchenko
2017-02-20 11:24 ` [U-Boot] [PATCH v3 2/2] mmc: tangier: Add Intel Tangier eMMC/SDHCI driver Andy Shevchenko
2017-02-21 1:47 ` Bin Meng
2017-02-28 4:43 ` Jaehoon Chung
2017-02-28 4:42 ` [U-Boot] [PATCH v3 1/2] mmc: pci: Add CONFIG_MMC_PCI Jaehoon Chung
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox