ARM: 6858/1: mmci: force negative edge on clock bypass for ux500
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 1 Apr 2011 06:59:17 +0000 (07:59 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 12 May 2011 09:15:25 +0000 (10:15 +0100)
This fixes a regression on high clock speeds with the MMCI on
ux500. We need to make sure we derive the passthru clock on the
falling edge of the incoming clock if it shall work at high
frequencies, and on the ux500's there is a special bit for this.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/mmc/host/mmci.c

index 92061f8df31e568f72a4006c9cd50dd929444db3..4941e06fe2e17511b552bd5a605ea12fb86c5880 100644 (file)
@@ -103,6 +103,8 @@ static void mmci_set_clkreg(struct mmci_host *host, unsigned int desired)
        if (desired) {
                if (desired >= host->mclk) {
                        clk = MCI_CLK_BYPASS;
+                       if (variant->st_clkdiv)
+                               clk |= MCI_ST_UX500_NEG_EDGE;
                        host->cclk = host->mclk;
                } else if (variant->st_clkdiv) {
                        /*