m68k: coldfire: use clkdev_lookup on most coldfire
authorArnd Bergmann <arnd@arndb.de>
Mon, 31 May 2021 09:12:55 +0000 (11:12 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 8 Jun 2021 15:00:09 +0000 (17:00 +0200)
Coldfire is now the only target that implements the clk_get()/clk_put()
helpers itself rather than using the common implementation.

Most coldfire variants only have two distinct clocks and use the clk
code purely for lookup. Change those over to use clkdev_lookup instead
but leave the custom clk interface for those two clocks.

Also leave the four SoCs that have gated clocks.

Acked-by: Greg Ungerer <gerg@linux-m68k.org>
Tested-by: Greg Ungerer <gerg@linux-m68k.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
12 files changed:
arch/m68k/Kconfig.cpu
arch/m68k/coldfire/clk.c
arch/m68k/coldfire/m5206.c
arch/m68k/coldfire/m523x.c
arch/m68k/coldfire/m5249.c
arch/m68k/coldfire/m525x.c
arch/m68k/coldfire/m5272.c
arch/m68k/coldfire/m527x.c
arch/m68k/coldfire/m528x.c
arch/m68k/coldfire/m5307.c
arch/m68k/coldfire/m5407.c
arch/m68k/coldfire/m54xx.c

index f4d2397..b348392 100644 (file)
@@ -328,6 +328,10 @@ config COLDFIRE_SLTIMERS
        bool
        select LEGACY_TIMER_TICK
 
+config COLDFIRE_CLKDEV_LOOKUP
+       def_bool !(M5206 || M5206e || M53xx || M5441x)
+       select CLKDEV_LOOKUP
+
 endif # COLDFIRE
 
 
index 076a9ca..ffe3662 100644 (file)
@@ -71,7 +71,6 @@ struct clk_ops clk_ops1 = {
        .disable        = __clk_disable1,
 };
 #endif /* MCFPM_PPMCR1 */
-#endif /* MCFPM_PPMCR0 */
 
 struct clk *clk_get(struct device *dev, const char *id)
 {
@@ -87,6 +86,14 @@ struct clk *clk_get(struct device *dev, const char *id)
 }
 EXPORT_SYMBOL(clk_get);
 
+void clk_put(struct clk *clk)
+{
+       if (clk->enabled != 0)
+               pr_warn("clk_put %s still enabled\n", clk->name);
+}
+EXPORT_SYMBOL(clk_put);
+#endif /* MCFPM_PPMCR0 */
+
 int clk_enable(struct clk *clk)
 {
        unsigned long flags;
@@ -117,13 +124,6 @@ void clk_disable(struct clk *clk)
 }
 EXPORT_SYMBOL(clk_disable);
 
-void clk_put(struct clk *clk)
-{
-       if (clk->enabled != 0)
-               pr_warn("clk_put %s still enabled\n", clk->name);
-}
-EXPORT_SYMBOL(clk_put);
-
 unsigned long clk_get_rate(struct clk *clk)
 {
        if (!clk)
index 2f14ea9..5e726e9 100644 (file)
@@ -10,6 +10,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
 
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfi2c0,
-       NULL
+static struct clk_lookup m5206_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -66,6 +61,8 @@ void __init config_BSP(char *commandp, int size)
        mcf_mapirq2imr(28, MCFINTC_EINT4);
        mcf_mapirq2imr(31, MCFINTC_EINT7);
        m5206_i2c_init();
+
+       clkdev_add_table(m5206_clk_lookup, ARRAY_SIZE(m5206_clk_lookup));
 }
 
 /***************************************************************************/
index ddf2496..193c178 100644 (file)
@@ -13,6 +13,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcfpit0, "mcfpit.0", MCF_CLK);
-DEFINE_CLK(mcfpit1, "mcfpit.1", MCF_CLK);
-DEFINE_CLK(mcfpit2, "mcfpit.2", MCF_CLK);
-DEFINE_CLK(mcfpit3, "mcfpit.3", MCF_CLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcfpit0,
-       &clk_mcfpit1,
-       &clk_mcfpit2,
-       &clk_mcfpit3,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfuart2,
-       &clk_mcfqspi0,
-       &clk_fec0,
-       &clk_mcfi2c0,
-       NULL
+
+struct clk_lookup m523x_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcfpit.0", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.1", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.2", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.3", NULL, &clk_pll),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("fec.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -100,6 +90,8 @@ void __init config_BSP(char *commandp, int size)
        m523x_fec_init();
        m523x_qspi_init();
        m523x_i2c_init();
+
+       clkdev_add_table(m523x_clk_lookup, ARRAY_SIZE(m523x_clk_lookup));
 }
 
 /***************************************************************************/
index 0590f8c..6d66972 100644 (file)
@@ -9,6 +9,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c1, "imx1-i2c.1", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfqspi0,
-       &clk_mcfi2c0,
-       &clk_mcfi2c1,
-       NULL
+
+struct clk_lookup m5249_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.1", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -137,6 +130,8 @@ void __init config_BSP(char *commandp, int size)
 #endif
        m5249_qspi_init();
        m5249_i2c_init();
+
+       clkdev_add_table(m5249_clk_lookup, ARRAY_SIZE(m5249_clk_lookup));
 }
 
 /***************************************************************************/
index 1772359..2c4d2ca 100644 (file)
@@ -9,6 +9,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c1, "imx1-i2c.1", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfqspi0,
-       &clk_mcfi2c0,
-       &clk_mcfi2c1,
-       NULL
+
+static struct clk_lookup m525x_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.1", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -88,6 +81,8 @@ void __init config_BSP(char *commandp, int size)
 
        m525x_qspi_init();
        m525x_i2c_init();
+
+       clkdev_add_table(m525x_clk_lookup, ARRAY_SIZE(m525x_clk_lookup));
 }
 
 /***************************************************************************/
index 6b3ab58..734dab6 100644 (file)
@@ -10,6 +10,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
@@ -34,27 +35,18 @@ unsigned char ledbank = 0xff;
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcftmr2, "mcftmr.2", MCF_BUSCLK);
-DEFINE_CLK(mcftmr3, "mcftmr.3", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcftmr2,
-       &clk_mcftmr3,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfqspi0,
-       &clk_fec0,
-       NULL
+
+static struct clk_lookup m5272_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.2", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.3", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("fec.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -128,6 +120,7 @@ static int __init init_BSP(void)
 {
        m5272_uarts_init();
        fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status);
+       clkdev_add_table(m5272_clk_lookup, ARRAY_SIZE(m5272_clk_lookup));
        return 0;
 }
 
index cad462d..037f3e5 100644 (file)
@@ -13,6 +13,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcfpit0, "mcfpit.0", MCF_CLK);
-DEFINE_CLK(mcfpit1, "mcfpit.1", MCF_CLK);
-DEFINE_CLK(mcfpit2, "mcfpit.2", MCF_CLK);
-DEFINE_CLK(mcfpit3, "mcfpit.3", MCF_CLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
-DEFINE_CLK(fec1, "fec.1", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcfpit0,
-       &clk_mcfpit1,
-       &clk_mcfpit2,
-       &clk_mcfpit3,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfuart2,
-       &clk_mcfqspi0,
-       &clk_fec0,
-       &clk_fec1,
-       &clk_mcfi2c0,
-       NULL
+
+static struct clk_lookup m527x_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcfpit.0", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.1", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.2", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.3", NULL, &clk_pll),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("fec.0", NULL, &clk_sys),
+       CLKDEV_INIT("fec.1", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -151,6 +140,7 @@ void __init config_BSP(char *commandp, int size)
        m527x_fec_init();
        m527x_qspi_init();
        m527x_i2c_init();
+       clkdev_add_table(m527x_clk_lookup, ARRAY_SIZE(m527x_clk_lookup));
 }
 
 /***************************************************************************/
index 7ad3193..51a6a62 100644 (file)
@@ -13,6 +13,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcfpit0, "mcfpit.0", MCF_CLK);
-DEFINE_CLK(mcfpit1, "mcfpit.1", MCF_CLK);
-DEFINE_CLK(mcfpit2, "mcfpit.2", MCF_CLK);
-DEFINE_CLK(mcfpit3, "mcfpit.3", MCF_CLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
-DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
-DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcfpit0,
-       &clk_mcfpit1,
-       &clk_mcfpit2,
-       &clk_mcfpit3,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfuart2,
-       &clk_mcfqspi0,
-       &clk_fec0,
-       &clk_mcfi2c0,
-       NULL
+
+static struct clk_lookup m528x_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcfpit.0", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.1", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.2", NULL, &clk_pll),
+       CLKDEV_INIT("mcfpit.3", NULL, &clk_pll),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
+       CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
+       CLKDEV_INIT("fec.0", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -146,6 +136,8 @@ void __init config_BSP(char *commandp, int size)
        m528x_fec_init();
        m528x_qspi_init();
        m528x_i2c_init();
+
+       clkdev_add_table(m528x_clk_lookup, ARRAY_SIZE(m528x_clk_lookup));
 }
 
 /***************************************************************************/
index 64b4b1f..4ed2e43 100644 (file)
@@ -10,6 +10,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
@@ -32,21 +33,15 @@ unsigned char ledbank = 0xff;
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfi2c0,
-       NULL
+
+static struct clk_lookup m5307_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -88,6 +83,8 @@ void __init config_BSP(char *commandp, int size)
        wdebug(MCFDEBUG_CSR, MCFDEBUG_CSR_PSTCLK);
 #endif
        m5307_i2c_init();
+
+       clkdev_add_table(m5307_clk_lookup, ARRAY_SIZE(m5307_clk_lookup));
 }
 
 /***************************************************************************/
index 0400d76..b32efb3 100644 (file)
@@ -10,6 +10,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
-DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
 
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcftmr0,
-       &clk_mcftmr1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfi2c0,
-       NULL
+static struct clk_lookup m5407_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -63,6 +58,8 @@ void __init config_BSP(char *commandp, int size)
        mcf_mapirq2imr(29, MCFINTC_EINT5);
        mcf_mapirq2imr(31, MCFINTC_EINT7);
        m5407_i2c_init();
+
+       clkdev_add_table(m5407_clk_lookup, ARRAY_SIZE(m5407_clk_lookup));
 }
 
 /***************************************************************************/
index 360c723..8e3c8fe 100644 (file)
@@ -9,6 +9,7 @@
 
 /***************************************************************************/
 
+#include <linux/clkdev.h>
 #include <linux/kernel.h>
 #include <linux/param.h>
 #include <linux/init.h>
 
 DEFINE_CLK(pll, "pll.0", MCF_CLK);
 DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
-DEFINE_CLK(mcfslt0, "mcfslt.0", MCF_BUSCLK);
-DEFINE_CLK(mcfslt1, "mcfslt.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
-DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
-DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
-DEFINE_CLK(mcfuart3, "mcfuart.3", MCF_BUSCLK);
-DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
-
-struct clk *mcf_clks[] = {
-       &clk_pll,
-       &clk_sys,
-       &clk_mcfslt0,
-       &clk_mcfslt1,
-       &clk_mcfuart0,
-       &clk_mcfuart1,
-       &clk_mcfuart2,
-       &clk_mcfuart3,
-       &clk_mcfi2c0,
-       NULL
+
+static struct clk_lookup m54xx_clk_lookup[] = {
+       CLKDEV_INIT(NULL, "pll.0", &clk_pll),
+       CLKDEV_INIT(NULL, "sys.0", &clk_sys),
+       CLKDEV_INIT("mcfslt.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfslt.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
+       CLKDEV_INIT("mcfuart.3", NULL, &clk_sys),
+       CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
 };
 
 /***************************************************************************/
@@ -100,6 +93,8 @@ void __init config_BSP(char *commandp, int size)
        mach_sched_init = hw_timer_init;
        m54xx_uarts_init();
        m54xx_i2c_init();
+
+       clkdev_add_table(m54xx_clk_lookup, ARRAY_SIZE(m54xx_clk_lookup));
 }
 
 /***************************************************************************/