* [PATCH] MMC: add support for the Marvell platform SDHCI controller
@ 2010-10-27 8:07 Mike Rapoport
2010-10-27 8:46 ` Saeed Bishara
2010-10-27 9:10 ` Chris Ball
0 siblings, 2 replies; 4+ messages in thread
From: Mike Rapoport @ 2010-10-27 8:07 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
CC: Saeed Bishara <saeed@marvell.com>
---
drivers/mmc/host/Kconfig | 13 +++++++
drivers/mmc/host/Makefile | 1 +
drivers/mmc/host/sdhci-mv.c | 77 ++++++++++++++++++++++++++++++++++++++++
drivers/mmc/host/sdhci-pltfm.c | 3 ++
drivers/mmc/host/sdhci-pltfm.h | 1 +
5 files changed, 95 insertions(+), 0 deletions(-)
create mode 100644 drivers/mmc/host/sdhci-mv.c
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 68d1279..1952fa9 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -130,6 +130,19 @@ config MMC_SDHCI_CNS3XXX
If unsure, say N.
+config MMC_SDHCI_MV
+ bool "SDHCI support on Marvell's SoC"
+ depends on MMC_SDHCI
+ depends on MMC_SDHCI_PLTFM
+ select MMC_SDHCI_IO_ACCESSORS
+ help
+ This selects the Secure Digital Host Controller Interface in
+ Marvell's SoC controllers.
+
+ If you have a controller with this interface, say Y or M here.
+
+ If unsure, say N.
+
config MMC_SDHCI_S3C
tristate "SDHCI support on Samsung S3C SoC"
depends on MMC_SDHCI && PLAT_SAMSUNG
diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
index 840bcb5..fdb3e96 100644
--- a/drivers/mmc/host/Makefile
+++ b/drivers/mmc/host/Makefile
@@ -40,6 +40,7 @@ obj-$(CONFIG_MMC_JZ4740) += jz4740_mmc.o
obj-$(CONFIG_MMC_SDHCI_PLTFM) += sdhci-platform.o
sdhci-platform-y := sdhci-pltfm.o
sdhci-platform-$(CONFIG_MMC_SDHCI_CNS3XXX) += sdhci-cns3xxx.o
+sdhci-platform-$(CONFIG_MMC_SDHCI_MV) += sdhci-mv.o
obj-$(CONFIG_MMC_SDHCI_OF) += sdhci-of.o
sdhci-of-y := sdhci-of-core.o
diff --git a/drivers/mmc/host/sdhci-mv.c b/drivers/mmc/host/sdhci-mv.c
new file mode 100644
index 0000000..b461205
--- /dev/null
+++ b/drivers/mmc/host/sdhci-mv.c
@@ -0,0 +1,77 @@
+/*
+ * sdhci-mv.c Support for SDHCI platform devices
+ *
+ * Author: Saeed Bishara <saeed@marvell.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/*
+ * SDHCI platform devices found on Marvell SoC's
+ *
+ * Based on sdhci-cns3xxx.c
+ */
+
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+#include <linux/platform_device.h>
+#include <linux/io.h>
+#include <linux/mmc/host.h>
+#include "sdhci.h"
+#include "sdhci-pltfm.h"
+
+static u16 sdhci_mv_readw(struct sdhci_host *host, int reg)
+{
+ u16 ret;
+
+ switch (reg) {
+ case SDHCI_HOST_VERSION:
+ case SDHCI_SLOT_INT_STATUS:
+ /* those registers don't exist */
+ return 0;
+ default:
+ ret = readw(host->ioaddr + reg);
+ }
+ return ret;
+}
+
+static u32 sdhci_mv_readl(struct sdhci_host *host, int reg)
+{
+ u32 ret;
+
+ switch (reg) {
+ case SDHCI_CAPABILITIES:
+ ret = readl(host->ioaddr + reg);
+ /* Mask the support for 3.0V */
+ ret &= ~SDHCI_CAN_VDD_300;
+ break;
+ default:
+ ret = readl(host->ioaddr + reg);
+ }
+ return ret;
+}
+
+static struct sdhci_ops sdhci_mv_ops = {
+ .read_w = sdhci_mv_readw,
+ .read_l = sdhci_mv_readl,
+};
+
+struct sdhci_pltfm_data sdhci_mv_pdata = {
+ .ops = &sdhci_mv_ops,
+ .quirks = SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER |
+ SDHCI_QUIRK_NO_BUSY_IRQ |
+ SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
+ SDHCI_QUIRK_FORCE_DMA,
+};
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
index e045e3c..3a389c2 100644
--- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c
@@ -161,6 +161,9 @@ static const struct platform_device_id sdhci_pltfm_ids[] = {
#ifdef CONFIG_MMC_SDHCI_CNS3XXX
{ "sdhci-cns3xxx", (kernel_ulong_t)&sdhci_cns3xxx_pdata },
#endif
+#ifdef CONFIG_MMC_SDHCI_MV
+ { "sdhci-mv", (kernel_ulong_t)&sdhci_mv_pdata },
+#endif
{ },
};
MODULE_DEVICE_TABLE(platform, sdhci_pltfm_ids);
diff --git a/drivers/mmc/host/sdhci-pltfm.h b/drivers/mmc/host/sdhci-pltfm.h
index 900f329..17da875 100644
--- a/drivers/mmc/host/sdhci-pltfm.h
+++ b/drivers/mmc/host/sdhci-pltfm.h
@@ -14,5 +14,6 @@
#include <linux/sdhci-pltfm.h>
extern struct sdhci_pltfm_data sdhci_cns3xxx_pdata;
+extern struct sdhci_pltfm_data sdhci_mv_pdata;
#endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */
--
1.7.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] MMC: add support for the Marvell platform SDHCI controller
2010-10-27 8:07 [PATCH] MMC: add support for the Marvell platform SDHCI controller Mike Rapoport
@ 2010-10-27 8:46 ` Saeed Bishara
2010-10-27 9:17 ` Mike Rapoport
2010-10-27 9:10 ` Chris Ball
1 sibling, 1 reply; 4+ messages in thread
From: Saeed Bishara @ 2010-10-27 8:46 UTC (permalink / raw)
To: linux-arm-kernel
>+config MMC_SDHCI_MV
>+ bool "SDHCI support on Marvell's SoC"
>+ depends on MMC_SDHCI
>+ depends on MMC_SDHCI_PLTFM
>+ select MMC_SDHCI_IO_ACCESSORS
>+ help
>+ This selects the Secure Digital Host Controller Interface in
>+ Marvell's SoC controllers.
>+
>+ If you have a controller with this interface, say Y or M here.
>+
>+ If unsure, say N.
>+
Mike, the config name and description is too generic as there are several sdhci controllers on Marvell devices (see like pxa), I suggest to name it SDHCI_DOVE and make it depends on ARCH_DOVE and modify the description accordingly.
>+#include <linux/clk.h>
>+#include <linux/delay.h>
>+#include <linux/err.h>
>+#include <linux/platform_device.h>
>+#include <linux/io.h>
>+#include <linux/mmc/host.h>
>+#include "sdhci.h"
>+#include "sdhci-pltfm.h"
are those includes are realy needed? At least the delay.h and clk.h not needed for now.
saeed
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] MMC: add support for the Marvell platform SDHCI controller
2010-10-27 8:07 [PATCH] MMC: add support for the Marvell platform SDHCI controller Mike Rapoport
2010-10-27 8:46 ` Saeed Bishara
@ 2010-10-27 9:10 ` Chris Ball
1 sibling, 0 replies; 4+ messages in thread
From: Chris Ball @ 2010-10-27 9:10 UTC (permalink / raw)
To: linux-arm-kernel
Hi Mike,
I concur with Saeed, and please also fold this patch into the submission:
http://marc.info/?l=linux-kernel&m=128458441031769&q=raw
Thanks!
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] MMC: add support for the Marvell platform SDHCI controller
2010-10-27 8:46 ` Saeed Bishara
@ 2010-10-27 9:17 ` Mike Rapoport
0 siblings, 0 replies; 4+ messages in thread
From: Mike Rapoport @ 2010-10-27 9:17 UTC (permalink / raw)
To: linux-arm-kernel
On 10/27/10 10:46, Saeed Bishara wrote:
>
>
>> +config MMC_SDHCI_MV
>> + bool "SDHCI support on Marvell's SoC"
>> + depends on MMC_SDHCI
>> + depends on MMC_SDHCI_PLTFM
>> + select MMC_SDHCI_IO_ACCESSORS
>> + help
>> + This selects the Secure Digital Host Controller Interface in
>> + Marvell's SoC controllers.
>> +
>> + If you have a controller with this interface, say Y or M here.
>> +
>> + If unsure, say N.
>> +
> Mike, the config name and description is too generic as there are several sdhci
> controllers on Marvell devices (see like pxa), I suggest to name it SDHCI_DOVE
> and make it depends on ARCH_DOVE and modify the description accordingly.
No problem. That said, no ARCH_MPP for now, like it was in [1]?
[1] http://marc.info/?l=linux-kernel&m=128458441031769&q=raw
>> +#include <linux/clk.h>
>> +#include <linux/delay.h>
>> +#include <linux/err.h>
>> +#include <linux/platform_device.h>
>> +#include <linux/io.h>
>> +#include <linux/mmc/host.h>
>> +#include "sdhci.h"
>> +#include "sdhci-pltfm.h"
> are those includes are realy needed? At least the delay.h and clk.h not needed for now.
>
> saeed
--
Sincerely yours,
Mike.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-10-27 9:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-27 8:07 [PATCH] MMC: add support for the Marvell platform SDHCI controller Mike Rapoport
2010-10-27 8:46 ` Saeed Bishara
2010-10-27 9:17 ` Mike Rapoport
2010-10-27 9:10 ` Chris Ball
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).