123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #include <linux/clk.h>
- #include <linux/compiler.h>
- #include <linux/slab.h>
- #include <linux/io.h>
- #include <linux/clkdev.h>
- #include <asm/clock.h>
- static struct clk master_clk = {
- .flags = CLK_ENABLE_ON_INIT,
- .rate = CONFIG_SH_PCLK_FREQ,
- };
- static struct clk peripheral_clk = {
- .parent = &master_clk,
- .flags = CLK_ENABLE_ON_INIT,
- };
- static struct clk bus_clk = {
- .parent = &master_clk,
- .flags = CLK_ENABLE_ON_INIT,
- };
- static struct clk 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,
- };
- static struct clk_lookup lookups[] = {
- /* main clocks */
- CLKDEV_CON_ID("master_clk", &master_clk),
- CLKDEV_CON_ID("peripheral_clk", &peripheral_clk),
- CLKDEV_CON_ID("bus_clk", &bus_clk),
- CLKDEV_CON_ID("cpu_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);
- }
- clkdev_add_table(lookups, ARRAY_SIZE(lookups));
- clk_add_alias("fck", "sh-tmu-sh3.0", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-tmu.0", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-tmu.1", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-tmu.2", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-mtu2", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-cmt-16.0", "peripheral_clk", NULL);
- clk_add_alias("fck", "sh-cmt-32.0", "peripheral_clk", NULL);
- clk_add_alias("sci_ick", NULL, "peripheral_clk", NULL);
- return ret;
- }
- /*
- * Placeholder for compatibility, until the lazy CPUs do this
- * on their own.
- */
- int __init __weak arch_clk_init(void)
- {
- return cpg_clk_init();
- }
|