ramips: mmc: Add back some non-mt7621 code that staging removed
authorRosen Penev <rosenp@gmail.com>
Thu, 7 Jun 2018 17:36:19 +0000 (10:36 -0700)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:32:19 +0000 (17:32 +0100)
This reverts commit 8a570921b5ba49a2d3824f1220e4c53809063468.

This seems to have been accidentally reverted. This fixes mt7620 and
mt7628.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Daniel Golle <daniel@makrotopia.org>
(backported from 66cc6dd6c4b19a8ef9e5d2ebed3e10876c8aeaf0)

target/linux/ramips/files-4.14/drivers/mmc/host/mtk-mmc/sd.c

index 2a032fcba1ef54824c15161cea92fbf7257c112e..97ae927d2d2a8dff26cee1dc7f56e36d23a5ee15 100644 (file)
@@ -2209,7 +2209,23 @@ static int msdc_drv_probe(struct platform_device *pdev)
 
        // Set the pins for sdxc to sdxc mode
        //FIXME: this should be done by pinctl and not by the sd driver
-       reg = sdr_read32((void __iomem *)(RALINK_SYSCTL_BASE + 0x60)) & ~(0x3 << 18);
+       if (ralink_soc == MT762X_SOC_MT7620A ||
+           ralink_soc == MT762X_SOC_MT7621AT) {
+               reg = sdr_read32((void __iomem *)(RALINK_SYSCTL_BASE +
+                                                 0x60)) & ~(0x3 << 18);
+               if (ralink_soc == MT762X_SOC_MT7620A)
+                       reg |= 0x1 << 18;
+       } else {
+               reg = sdr_read32((void __iomem *)(RALINK_SYSCTL_BASE + 0x3c));
+               reg |= 0x1e << 16;
+               sdr_write32((void __iomem *)(RALINK_SYSCTL_BASE + 0x3c), reg);
+               reg = sdr_read32((void __iomem *)(RALINK_SYSCTL_BASE +
+                                                 0x60)) & ~(0x3 << 10);
+#if defined(CONFIG_MTK_MMC_EMMC_8BIT)
+               reg |= 0x3 << 26 | 0x3 << 28 | 0x3 << 30;
+#endif
+       }
+
        sdr_write32((void __iomem *)(RALINK_SYSCTL_BASE + 0x60), reg);
 
        hw = &msdc0_hw;