aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-10-01 18:13:47 +0000
committerJohn Crispin <blogic@openwrt.org>2015-10-01 18:13:47 +0000
commitdbcb39f54ec88296a64f2d9827d6d202a321ac90 (patch)
tree6fc7d5fecf25ce73fde0aa98874ffe01749d3366 /target/linux/ramips
parent66bafb3a59e67ae501db51baf39018d1408bec7a (diff)
downloadmaster-187ad058-dbcb39f54ec88296a64f2d9827d6d202a321ac90.tar.gz
master-187ad058-dbcb39f54ec88296a64f2d9827d6d202a321ac90.tar.bz2
master-187ad058-dbcb39f54ec88296a64f2d9827d6d202a321ac90.zip
ralink: the mmc driver can now handle CD lines that are active low
Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47074 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips')
-rw-r--r--target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch18
1 files changed, 14 insertions, 4 deletions
diff --git a/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch b/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch
index 686c643f40..a3688138f8 100644
--- a/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch
+++ b/target/linux/ramips/patches-3.18/0053-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch
@@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
-@@ -773,3 +773,5 @@ config MMC_SUNXI
+@@ -773,3 +773,5 @@
help
This selects support for the SD/MMC Host Controller on
Allwinner sunxi SoCs.
@@ -1760,7 +1760,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
--- /dev/null
+++ b/drivers/mmc/host/mtk-mmc/sd.c
-@@ -0,0 +1,3050 @@
+@@ -0,0 +1,3060 @@
+/* Copyright Statement:
+ *
+ * This software/firmware and related documentation ("MediaTek Software") are
@@ -1919,6 +1919,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
+static int mtk_sw_poll;
+
++static int cd_active_low = 1;
++
+//=================================
+#define PERI_MSDC0_PDN (15)
+//#define PERI_MSDC1_PDN (16)
@@ -2337,7 +2339,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ inserted = hw->get_cd_status();
+ } else {
+ status = sdr_read32(MSDC_PS);
-+ inserted = (status & MSDC_PS_CDSTS) ? 0 : 1;
++ if (cd_active_low)
++ inserted = (status & MSDC_PS_CDSTS) ? 0 : 1;
++ else
++ inserted = (status & MSDC_PS_CDSTS) ? 1 : 0;
+ }
+
+#if 0
@@ -4081,7 +4086,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#if 0
+ present = host->card_inserted; /* why not read from H/W: Fix me*/
+#else
-+ present = (sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1;
++ // CD
++ if (cd_active_low)
++ present = (sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 0 : 1;
++ else
++ present = (sdr_read32(MSDC_PS) & MSDC_PS_CDSTS) ? 1 : 0;
+ host->card_inserted = present;
+#endif
+ spin_unlock_irqrestore(&host->lock, flags);
@@ -4534,6 +4543,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ if ((hw->flags & MSDC_SDIO_IRQ) || (hw->flags & MSDC_EXT_SDIO_IRQ))
+ mmc->caps |= MMC_CAP_SDIO_IRQ; /* yes for sdio */
+
++ cd_active_low = !of_property_read_bool(pdev->dev.of_node, "mediatek,cd-high");
+ mtk_sw_poll = of_property_read_bool(pdev->dev.of_node, "mediatek,cd-poll");
+
+ if (mtk_sw_poll)