diff options
Diffstat (limited to 'drivers/clk/ti/clk-816x.c')
-rw-r--r-- | drivers/clk/ti/clk-816x.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/drivers/clk/ti/clk-816x.c b/drivers/clk/ti/clk-816x.c new file mode 100644 index 000000000000..9451e651a1ff --- /dev/null +++ b/drivers/clk/ti/clk-816x.c | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or | ||
3 | * modify it under the terms of the GNU General Public License as | ||
4 | * published by the Free Software Foundation version 2. | ||
5 | * | ||
6 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
7 | * kind, whether express or implied; without even the implied warranty | ||
8 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
9 | * GNU General Public License for more details. | ||
10 | */ | ||
11 | |||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/list.h> | ||
14 | #include <linux/clk-provider.h> | ||
15 | #include <linux/clk/ti.h> | ||
16 | |||
17 | static struct ti_dt_clk dm816x_clks[] = { | ||
18 | DT_CLK(NULL, "sys_clkin", "sys_clkin_ck"), | ||
19 | DT_CLK(NULL, "timer_sys_ck", "sys_clkin_ck"), | ||
20 | DT_CLK(NULL, "sys_32k_ck", "sys_32k_ck"), | ||
21 | DT_CLK(NULL, "mpu_ck", "mpu_ck"), | ||
22 | DT_CLK(NULL, "timer1_fck", "timer1_fck"), | ||
23 | DT_CLK(NULL, "timer2_fck", "timer2_fck"), | ||
24 | DT_CLK(NULL, "timer3_fck", "timer3_fck"), | ||
25 | DT_CLK(NULL, "timer4_fck", "timer4_fck"), | ||
26 | DT_CLK(NULL, "timer5_fck", "timer5_fck"), | ||
27 | DT_CLK(NULL, "timer6_fck", "timer6_fck"), | ||
28 | DT_CLK(NULL, "timer7_fck", "timer7_fck"), | ||
29 | DT_CLK(NULL, "sysclk4_ck", "sysclk4_ck"), | ||
30 | DT_CLK(NULL, "sysclk5_ck", "sysclk5_ck"), | ||
31 | DT_CLK(NULL, "sysclk6_ck", "sysclk6_ck"), | ||
32 | DT_CLK(NULL, "sysclk10_ck", "sysclk10_ck"), | ||
33 | DT_CLK(NULL, "sysclk18_ck", "sysclk18_ck"), | ||
34 | DT_CLK(NULL, "sysclk24_ck", "sysclk24_ck"), | ||
35 | DT_CLK("4a100000.ethernet", "sysclk24_ck", "sysclk24_ck"), | ||
36 | { .node_name = NULL }, | ||
37 | }; | ||
38 | |||
39 | static const char *enable_init_clks[] = { | ||
40 | "ddr_pll_clk1", | ||
41 | "ddr_pll_clk2", | ||
42 | "ddr_pll_clk3", | ||
43 | }; | ||
44 | |||
45 | int __init ti81xx_dt_clk_init(void) | ||
46 | { | ||
47 | ti_dt_clocks_register(dm816x_clks); | ||
48 | omap2_clk_disable_autoidle_all(); | ||
49 | omap2_clk_enable_init_clocks(enable_init_clks, | ||
50 | ARRAY_SIZE(enable_init_clks)); | ||
51 | |||
52 | return 0; | ||
53 | } | ||