mx25: properly initialize clocks
authorBaruch Siach <baruch@tkos.co.il>
Mon, 25 Jan 2010 10:58:20 +0000 (12:58 +0200)
committerSascha Hauer <s.hauer@pengutronix.de>
Tue, 26 Jan 2010 17:54:06 +0000 (18:54 +0100)
This patch disables all unnecessary clock in mx25_clocks_init() to make a clean
start, the same as is being done for the rest of the i.MX chips.

This patch was tested on i.MX25 PDK.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx25/clock.c

index abd303bc3bf2b3526038cbd0e4dddad9cb4cda7f..08aaa38f1f1fbb631572636cf948e9f3c6a2c6ba 100644 (file)
@@ -218,6 +218,14 @@ int __init mx25_clocks_init(void)
        for (i = 0; i < ARRAY_SIZE(lookups); i++)
                clkdev_add(&lookups[i]);
 
+       /* Turn off all clocks except the ones we need to survive, namely:
+        * EMI, GPIO1-3 (CCM_CGCR1[18:16]), GPT1, IOMUXC (CCM_CGCR1[27]), IIM,
+        * SCC
+        */
+       __raw_writel((1 << 19), CRM_BASE + CCM_CGCR0);
+       __raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1);
+       __raw_writel((1 << 5), CRM_BASE + CCM_CGCR2);
+
        mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
 
        return 0;