Skip to content

Commit 63aadb7

Browse files
committed
m68k: coldfire: use clkdev_lookup on most coldfire
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 <[email protected]> Tested-by: Greg Ungerer <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
1 parent 35f752b commit 63aadb7

File tree

12 files changed

+153
-206
lines changed

12 files changed

+153
-206
lines changed

arch/m68k/Kconfig.cpu

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,10 @@ config COLDFIRE_SLTIMERS
328328
bool
329329
select LEGACY_TIMER_TICK
330330

331+
config COLDFIRE_CLKDEV_LOOKUP
332+
def_bool !(M5206 || M5206e || M53xx || M5441x)
333+
select CLKDEV_LOOKUP
334+
331335
endif # COLDFIRE
332336

333337

arch/m68k/coldfire/clk.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ struct clk_ops clk_ops1 = {
7171
.disable = __clk_disable1,
7272
};
7373
#endif /* MCFPM_PPMCR1 */
74-
#endif /* MCFPM_PPMCR0 */
7574

7675
struct clk *clk_get(struct device *dev, const char *id)
7776
{
@@ -87,6 +86,14 @@ struct clk *clk_get(struct device *dev, const char *id)
8786
}
8887
EXPORT_SYMBOL(clk_get);
8988

89+
void clk_put(struct clk *clk)
90+
{
91+
if (clk->enabled != 0)
92+
pr_warn("clk_put %s still enabled\n", clk->name);
93+
}
94+
EXPORT_SYMBOL(clk_put);
95+
#endif /* MCFPM_PPMCR0 */
96+
9097
int clk_enable(struct clk *clk)
9198
{
9299
unsigned long flags;
@@ -117,13 +124,6 @@ void clk_disable(struct clk *clk)
117124
}
118125
EXPORT_SYMBOL(clk_disable);
119126

120-
void clk_put(struct clk *clk)
121-
{
122-
if (clk->enabled != 0)
123-
pr_warn("clk_put %s still enabled\n", clk->name);
124-
}
125-
EXPORT_SYMBOL(clk_put);
126-
127127
unsigned long clk_get_rate(struct clk *clk)
128128
{
129129
if (!clk)

arch/m68k/coldfire/m5206.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
/***************************************************************************/
1212

13+
#include <linux/clkdev.h>
1314
#include <linux/kernel.h>
1415
#include <linux/param.h>
1516
#include <linux/init.h>
@@ -23,21 +24,15 @@
2324

2425
DEFINE_CLK(pll, "pll.0", MCF_CLK);
2526
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
26-
DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
27-
DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
28-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
29-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
30-
DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
3127

32-
struct clk *mcf_clks[] = {
33-
&clk_pll,
34-
&clk_sys,
35-
&clk_mcftmr0,
36-
&clk_mcftmr1,
37-
&clk_mcfuart0,
38-
&clk_mcfuart1,
39-
&clk_mcfi2c0,
40-
NULL
28+
static struct clk_lookup m5206_clk_lookup[] = {
29+
CLKDEV_INIT(NULL, "pll.0", &clk_pll),
30+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
31+
CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
32+
CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
33+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
34+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
35+
CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
4136
};
4237

4338
/***************************************************************************/
@@ -66,6 +61,8 @@ void __init config_BSP(char *commandp, int size)
6661
mcf_mapirq2imr(28, MCFINTC_EINT4);
6762
mcf_mapirq2imr(31, MCFINTC_EINT7);
6863
m5206_i2c_init();
64+
65+
clkdev_add_table(m5206_clk_lookup, ARRAY_SIZE(m5206_clk_lookup));
6966
}
7067

7168
/***************************************************************************/

arch/m68k/coldfire/m523x.c

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
/***************************************************************************/
1515

16+
#include <linux/clkdev.h>
1617
#include <linux/kernel.h>
1718
#include <linux/param.h>
1819
#include <linux/init.h>
@@ -26,31 +27,20 @@
2627

2728
DEFINE_CLK(pll, "pll.0", MCF_CLK);
2829
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
29-
DEFINE_CLK(mcfpit0, "mcfpit.0", MCF_CLK);
30-
DEFINE_CLK(mcfpit1, "mcfpit.1", MCF_CLK);
31-
DEFINE_CLK(mcfpit2, "mcfpit.2", MCF_CLK);
32-
DEFINE_CLK(mcfpit3, "mcfpit.3", MCF_CLK);
33-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
34-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
35-
DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
36-
DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
37-
DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
38-
DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
39-
40-
struct clk *mcf_clks[] = {
41-
&clk_pll,
42-
&clk_sys,
43-
&clk_mcfpit0,
44-
&clk_mcfpit1,
45-
&clk_mcfpit2,
46-
&clk_mcfpit3,
47-
&clk_mcfuart0,
48-
&clk_mcfuart1,
49-
&clk_mcfuart2,
50-
&clk_mcfqspi0,
51-
&clk_fec0,
52-
&clk_mcfi2c0,
53-
NULL
30+
31+
struct clk_lookup m523x_clk_lookup[] = {
32+
CLKDEV_INIT(NULL, "pll.0", &clk_pll),
33+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
34+
CLKDEV_INIT("mcfpit.0", NULL, &clk_pll),
35+
CLKDEV_INIT("mcfpit.1", NULL, &clk_pll),
36+
CLKDEV_INIT("mcfpit.2", NULL, &clk_pll),
37+
CLKDEV_INIT("mcfpit.3", NULL, &clk_pll),
38+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
39+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
40+
CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
41+
CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
42+
CLKDEV_INIT("fec.0", NULL, &clk_sys),
43+
CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
5444
};
5545

5646
/***************************************************************************/
@@ -100,6 +90,8 @@ void __init config_BSP(char *commandp, int size)
10090
m523x_fec_init();
10191
m523x_qspi_init();
10292
m523x_i2c_init();
93+
94+
clkdev_add_table(m523x_clk_lookup, ARRAY_SIZE(m523x_clk_lookup));
10395
}
10496

10597
/***************************************************************************/

arch/m68k/coldfire/m5249.c

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
/***************************************************************************/
1111

12+
#include <linux/clkdev.h>
1213
#include <linux/kernel.h>
1314
#include <linux/param.h>
1415
#include <linux/init.h>
@@ -23,25 +24,17 @@
2324

2425
DEFINE_CLK(pll, "pll.0", MCF_CLK);
2526
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
26-
DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
27-
DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
28-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
29-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
30-
DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
31-
DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
32-
DEFINE_CLK(mcfi2c1, "imx1-i2c.1", MCF_BUSCLK);
33-
34-
struct clk *mcf_clks[] = {
35-
&clk_pll,
36-
&clk_sys,
37-
&clk_mcftmr0,
38-
&clk_mcftmr1,
39-
&clk_mcfuart0,
40-
&clk_mcfuart1,
41-
&clk_mcfqspi0,
42-
&clk_mcfi2c0,
43-
&clk_mcfi2c1,
44-
NULL
27+
28+
struct clk_lookup m5249_clk_lookup[] = {
29+
CLKDEV_INIT(NULL, "pll.0", &clk_pll),
30+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
31+
CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
32+
CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
33+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
34+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
35+
CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
36+
CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
37+
CLKDEV_INIT("imx1-i2c.1", NULL, &clk_sys),
4538
};
4639

4740
/***************************************************************************/
@@ -137,6 +130,8 @@ void __init config_BSP(char *commandp, int size)
137130
#endif
138131
m5249_qspi_init();
139132
m5249_i2c_init();
133+
134+
clkdev_add_table(m5249_clk_lookup, ARRAY_SIZE(m5249_clk_lookup));
140135
}
141136

142137
/***************************************************************************/

arch/m68k/coldfire/m525x.c

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
/***************************************************************************/
1111

12+
#include <linux/clkdev.h>
1213
#include <linux/kernel.h>
1314
#include <linux/param.h>
1415
#include <linux/init.h>
@@ -23,25 +24,17 @@
2324

2425
DEFINE_CLK(pll, "pll.0", MCF_CLK);
2526
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
26-
DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
27-
DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
28-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
29-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
30-
DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
31-
DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
32-
DEFINE_CLK(mcfi2c1, "imx1-i2c.1", MCF_BUSCLK);
33-
34-
struct clk *mcf_clks[] = {
35-
&clk_pll,
36-
&clk_sys,
37-
&clk_mcftmr0,
38-
&clk_mcftmr1,
39-
&clk_mcfuart0,
40-
&clk_mcfuart1,
41-
&clk_mcfqspi0,
42-
&clk_mcfi2c0,
43-
&clk_mcfi2c1,
44-
NULL
27+
28+
static struct clk_lookup m525x_clk_lookup[] = {
29+
CLKDEV_INIT(NULL, "pll.0", &pll),
30+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
31+
CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
32+
CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
33+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
34+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
35+
CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
36+
CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
37+
CLKDEV_INIT("imx1-i2c.1", NULL, &clk_sys),
4538
};
4639

4740
/***************************************************************************/
@@ -88,6 +81,8 @@ void __init config_BSP(char *commandp, int size)
8881

8982
m525x_qspi_init();
9083
m525x_i2c_init();
84+
85+
clkdev_add_table(m525x_clk_lookup, ARRAY_SIZE(m525x_clk_lookup));
9186
}
9287

9388
/***************************************************************************/

arch/m68k/coldfire/m5272.c

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
/***************************************************************************/
1212

13+
#include <linux/clkdev.h>
1314
#include <linux/kernel.h>
1415
#include <linux/param.h>
1516
#include <linux/init.h>
@@ -34,27 +35,18 @@ unsigned char ledbank = 0xff;
3435

3536
DEFINE_CLK(pll, "pll.0", MCF_CLK);
3637
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
37-
DEFINE_CLK(mcftmr0, "mcftmr.0", MCF_BUSCLK);
38-
DEFINE_CLK(mcftmr1, "mcftmr.1", MCF_BUSCLK);
39-
DEFINE_CLK(mcftmr2, "mcftmr.2", MCF_BUSCLK);
40-
DEFINE_CLK(mcftmr3, "mcftmr.3", MCF_BUSCLK);
41-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
42-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
43-
DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
44-
DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
45-
46-
struct clk *mcf_clks[] = {
47-
&clk_pll,
48-
&clk_sys,
49-
&clk_mcftmr0,
50-
&clk_mcftmr1,
51-
&clk_mcftmr2,
52-
&clk_mcftmr3,
53-
&clk_mcfuart0,
54-
&clk_mcfuart1,
55-
&clk_mcfqspi0,
56-
&clk_fec0,
57-
NULL
38+
39+
static struct clk_lookup m5272_clk_lookup[] = {
40+
CLKDEV_INIT(NULL, "pll.0", &clk_pll),
41+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
42+
CLKDEV_INIT("mcftmr.0", NULL, &clk_sys),
43+
CLKDEV_INIT("mcftmr.1", NULL, &clk_sys),
44+
CLKDEV_INIT("mcftmr.2", NULL, &clk_sys),
45+
CLKDEV_INIT("mcftmr.3", NULL, &clk_sys),
46+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
47+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
48+
CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
49+
CLKDEV_INIT("fec.0", NULL, &clk_sys),
5850
};
5951

6052
/***************************************************************************/
@@ -128,6 +120,7 @@ static int __init init_BSP(void)
128120
{
129121
m5272_uarts_init();
130122
fixed_phy_add(PHY_POLL, 0, &nettel_fixed_phy_status);
123+
clkdev_add_table(m5272_clk_lookup, ARRAY_SIZE(m5272_clk_lookup));
131124
return 0;
132125
}
133126

arch/m68k/coldfire/m527x.c

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
/***************************************************************************/
1515

16+
#include <linux/clkdev.h>
1617
#include <linux/kernel.h>
1718
#include <linux/param.h>
1819
#include <linux/init.h>
@@ -27,33 +28,21 @@
2728

2829
DEFINE_CLK(pll, "pll.0", MCF_CLK);
2930
DEFINE_CLK(sys, "sys.0", MCF_BUSCLK);
30-
DEFINE_CLK(mcfpit0, "mcfpit.0", MCF_CLK);
31-
DEFINE_CLK(mcfpit1, "mcfpit.1", MCF_CLK);
32-
DEFINE_CLK(mcfpit2, "mcfpit.2", MCF_CLK);
33-
DEFINE_CLK(mcfpit3, "mcfpit.3", MCF_CLK);
34-
DEFINE_CLK(mcfuart0, "mcfuart.0", MCF_BUSCLK);
35-
DEFINE_CLK(mcfuart1, "mcfuart.1", MCF_BUSCLK);
36-
DEFINE_CLK(mcfuart2, "mcfuart.2", MCF_BUSCLK);
37-
DEFINE_CLK(mcfqspi0, "mcfqspi.0", MCF_BUSCLK);
38-
DEFINE_CLK(fec0, "fec.0", MCF_BUSCLK);
39-
DEFINE_CLK(fec1, "fec.1", MCF_BUSCLK);
40-
DEFINE_CLK(mcfi2c0, "imx1-i2c.0", MCF_BUSCLK);
41-
42-
struct clk *mcf_clks[] = {
43-
&clk_pll,
44-
&clk_sys,
45-
&clk_mcfpit0,
46-
&clk_mcfpit1,
47-
&clk_mcfpit2,
48-
&clk_mcfpit3,
49-
&clk_mcfuart0,
50-
&clk_mcfuart1,
51-
&clk_mcfuart2,
52-
&clk_mcfqspi0,
53-
&clk_fec0,
54-
&clk_fec1,
55-
&clk_mcfi2c0,
56-
NULL
31+
32+
static struct clk_lookup m527x_clk_lookup[] = {
33+
CLKDEV_INIT(NULL, "pll.0", &clk_pll),
34+
CLKDEV_INIT(NULL, "sys.0", &clk_sys),
35+
CLKDEV_INIT("mcfpit.0", NULL, &clk_pll),
36+
CLKDEV_INIT("mcfpit.1", NULL, &clk_pll),
37+
CLKDEV_INIT("mcfpit.2", NULL, &clk_pll),
38+
CLKDEV_INIT("mcfpit.3", NULL, &clk_pll),
39+
CLKDEV_INIT("mcfuart.0", NULL, &clk_sys),
40+
CLKDEV_INIT("mcfuart.1", NULL, &clk_sys),
41+
CLKDEV_INIT("mcfuart.2", NULL, &clk_sys),
42+
CLKDEV_INIT("mcfqspi.0", NULL, &clk_sys),
43+
CLKDEV_INIT("fec.0", NULL, &clk_sys),
44+
CLKDEV_INIT("fec.1", NULL, &clk_sys),
45+
CLKDEV_INIT("imx1-i2c.0", NULL, &clk_sys),
5746
};
5847

5948
/***************************************************************************/
@@ -151,6 +140,7 @@ void __init config_BSP(char *commandp, int size)
151140
m527x_fec_init();
152141
m527x_qspi_init();
153142
m527x_i2c_init();
143+
clkdev_add_table(m527x_clk_lookup, ARRAY_SIZE(m527x_clk_lookup));
154144
}
155145

156146
/***************************************************************************/

0 commit comments

Comments
 (0)