[ARM] omap: MMC: provide a dummy ick for OMAP1
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Fri, 23 Jan 2009 19:03:37 +0000 (19:03 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 8 Feb 2009 17:50:17 +0000 (17:50 +0000)
Eliminate the OMAP1 vs OMAP2 clock knowledge in the MMC driver.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-omap1/clock.c
drivers/mmc/host/omap.c

index 3015e85296580d3cde1eb1e4e3d66a2afa77a692..61ace02e7ddc395564462a9d7d061b7677bd2ddb 100644 (file)
@@ -125,7 +125,9 @@ static struct omap_clk omap_clks[] = {
        CLK(NULL,       "bclk",         &bclk_1510,     CK_1510 | CK_310),
        CLK(NULL,       "bclk",         &bclk_16xx,     CK_16XX),
        CLK("mmci-omap.0", "fck",       &mmc1_ck,       CK_16XX | CK_1510 | CK_310),
+       CLK("mmci-omap.0", "ick",       &armper_ck.clk, CK_16XX | CK_1510 | CK_310),
        CLK("mmci-omap.1", "fck",       &mmc2_ck,       CK_16XX),
+       CLK("mmci-omap.1", "ick",       &armper_ck.clk, CK_16XX),
        /* Virtual clocks */
        CLK(NULL,       "mpu",          &virtual_ck_mpu, CK_16XX | CK_1510 | CK_310),
        CLK("i2c_omap.1", "i2c_fck",    &i2c_fck,       CK_16XX | CK_1510 | CK_310),
index 15eb8834376055645f29c14a10993e2cd683a4af..5570849188cc806032cab4791ab3ce10706a51f2 100644 (file)
@@ -1460,15 +1460,12 @@ static int __init mmc_omap_probe(struct platform_device *pdev)
        if (!host->virt_base)
                goto err_ioremap;
 
-       if (cpu_is_omap24xx()) {
-               host->iclk = clk_get(&pdev->dev, "ick");
-               if (IS_ERR(host->iclk))
-                       goto err_free_mmc_host;
-               clk_enable(host->iclk);
-       }
+       host->iclk = clk_get(&pdev->dev, "ick");
+       if (IS_ERR(host->iclk))
+               goto err_free_mmc_host;
+       clk_enable(host->iclk);
 
        host->fclk = clk_get(&pdev->dev, "fck");
-
        if (IS_ERR(host->fclk)) {
                ret = PTR_ERR(host->fclk);
                goto err_free_iclk;
@@ -1533,10 +1530,10 @@ static int mmc_omap_remove(struct platform_device *pdev)
        if (host->pdata->cleanup)
                host->pdata->cleanup(&pdev->dev);
 
-       if (host->iclk && !IS_ERR(host->iclk))
-               clk_put(host->iclk);
-       if (host->fclk && !IS_ERR(host->fclk))
-               clk_put(host->fclk);
+       mmc_omap_fclk_enable(host, 0);
+       clk_put(host->fclk);
+       clk_disable(host->iclk);
+       clk_put(host->iclk);
 
        iounmap(host->virt_base);
        release_mem_region(pdev->resource[0].start,