253b0887b3
This moves out the old legacy CPG clocks to their own file, and converts over the existing users. With these clocks going away and each CPU dealing with them on their own, CPUs can gradually move over to the new interface. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
61 lines
1.1 KiB
C
61 lines
1.1 KiB
C
#include <linux/clk.h>
|
|
#include <linux/compiler.h>
|
|
#include <asm/clock.h>
|
|
|
|
static struct clk master_clk = {
|
|
.name = "master_clk",
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
.rate = CONFIG_SH_PCLK_FREQ,
|
|
};
|
|
|
|
static struct clk peripheral_clk = {
|
|
.name = "peripheral_clk",
|
|
.parent = &master_clk,
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
};
|
|
|
|
static struct clk bus_clk = {
|
|
.name = "bus_clk",
|
|
.parent = &master_clk,
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
};
|
|
|
|
static struct clk cpu_clk = {
|
|
.name = "cpu_clk",
|
|
.parent = &master_clk,
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
};
|
|
|
|
/*
|
|
* The ordering of these clocks matters, do not change it.
|
|
*/
|
|
static struct clk *onchip_clocks[] = {
|
|
&master_clk,
|
|
&peripheral_clk,
|
|
&bus_clk,
|
|
&cpu_clk,
|
|
};
|
|
|
|
int __init __deprecated cpg_clk_init(void)
|
|
{
|
|
int i, ret = 0;
|
|
|
|
for (i = 0; i < ARRAY_SIZE(onchip_clocks); i++) {
|
|
struct clk *clk = onchip_clocks[i];
|
|
arch_init_clk_ops(&clk->ops, i);
|
|
if (clk->ops)
|
|
ret |= clk_register(clk);
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
/*
|
|
* Placeholder for compatability, until the lazy CPUs do this
|
|
* on their own.
|
|
*/
|
|
int __init __weak arch_clk_init(void)
|
|
{
|
|
return cpg_clk_init();
|
|
}
|