mmc: add Faraday FTSDC021 SDHCI controller support
authorKuo-Jung Su <dantesu@faraday-tech.com>
Mon, 25 Nov 2013 02:51:41 +0000 (10:51 +0800)
committerPantelis Antoniou <panto@antoniou-consulting.com>
Sun, 8 Dec 2013 12:23:05 +0000 (14:23 +0200)
Faraday FTSDC021 is a controller which is compliant with
SDHCI v3.0, SDIO v2.0 and MMC v4.3.

However this driver is only verified with SD memory cards.

Signed-off-by: Kuo-Jung Su <dantesu@faraday-tech.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
CC: Andy Fleming <afleming@gmail.com>
drivers/mmc/Makefile
drivers/mmc/ftsdc021_sdhci.c [new file with mode: 0644]
include/faraday/ftsdc021.h [new file with mode: 0644]

index a7ae38dadcb35138f385e4bde274806ac7e6df0d..1ed26cab34f463c37c4f60dd3f749f43fd68e09e 100644 (file)
@@ -9,6 +9,7 @@ obj-$(CONFIG_BFIN_SDH) += bfin_sdh.o
 obj-$(CONFIG_DAVINCI_MMC) += davinci_mmc.o
 obj-$(CONFIG_FSL_ESDHC) += fsl_esdhc.o
 obj-$(CONFIG_FTSDC010) += ftsdc010_mci.o
+obj-$(CONFIG_FTSDC021) += ftsdc021_sdhci.o
 obj-$(CONFIG_GENERIC_MMC) += mmc.o
 obj-$(CONFIG_GENERIC_ATMEL_MCI) += gen_atmel_mci.o
 obj-$(CONFIG_MMC_SPI) += mmc_spi.o
diff --git a/drivers/mmc/ftsdc021_sdhci.c b/drivers/mmc/ftsdc021_sdhci.c
new file mode 100644 (file)
index 0000000..1f6cdba
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * (C) Copyright 2013 Faraday Technology
+ * Kuo-Jung Su <dantesu@faraday-tech.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <malloc.h>
+#include <sdhci.h>
+
+#ifndef CONFIG_FTSDC021_CLOCK
+#define CONFIG_FTSDC021_CLOCK   clk_get_rate("MMC")
+#endif
+
+int ftsdc021_sdhci_init(u32 regbase)
+{
+       struct sdhci_host *host = NULL;
+       uint32_t freq = CONFIG_FTSDC021_CLOCK;
+
+       host = calloc(1, sizeof(struct sdhci_host));
+       if (!host) {
+               puts("sdh_host malloc fail!\n");
+               return 1;
+       }
+
+       host->name = "FTSDC021";
+       host->ioaddr = (void __iomem *)regbase;
+       host->quirks = 0;
+       add_sdhci(host, freq, 0);
+
+       return 0;
+}
diff --git a/include/faraday/ftsdc021.h b/include/faraday/ftsdc021.h
new file mode 100644 (file)
index 0000000..de8e250
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ * (C) Copyright 2013 Faraday Technology
+ * Dante Su <dantesu@faraday-tech.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#ifndef __FTSDC021_H
+#define __FTSDC021_H
+
+int ftsdc021_sdhci_init(u32 regbase);
+
+#endif /* __FTSDC021_H */