aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf609/clock.c
diff options
context:
space:
mode:
authorSteven Miao <realmz6@gmail.com>2013-07-05 02:36:09 -0400
committerSteven Miao <realmz6@gmail.com>2013-09-12 22:42:32 -0400
commit3036dccf2c2a5186bb50939f412c54c6c74a0fb0 (patch)
tree8c45d555bcacd1bd7ecb63c37e5781107692f970 /arch/blackfin/mach-bf609/clock.c
parent206f060c21503f33f9716710715cabba602355d5 (diff)
clock: add stmmac clock for ethernet driver
Signed-off-by: Steven Miao <realmz6@gmail.com>
Diffstat (limited to 'arch/blackfin/mach-bf609/clock.c')
-rw-r--r--arch/blackfin/mach-bf609/clock.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf609/clock.c b/arch/blackfin/mach-bf609/clock.c
index 437d56c82281..dab8849af884 100644
--- a/arch/blackfin/mach-bf609/clock.c
+++ b/arch/blackfin/mach-bf609/clock.c
@@ -220,6 +220,12 @@ unsigned long sys_clk_get_rate(struct clk *clk)
220 } 220 }
221} 221}
222 222
223unsigned long dummy_get_rate(struct clk *clk)
224{
225 clk->parent->rate = clk_get_rate(clk->parent);
226 return clk->parent->rate;
227}
228
223unsigned long sys_clk_round_rate(struct clk *clk, unsigned long rate) 229unsigned long sys_clk_round_rate(struct clk *clk, unsigned long rate)
224{ 230{
225 unsigned long max_rate; 231 unsigned long max_rate;
@@ -283,6 +289,10 @@ static struct clk_ops sys_clk_ops = {
283 .round_rate = sys_clk_round_rate, 289 .round_rate = sys_clk_round_rate,
284}; 290};
285 291
292static struct clk_ops dummy_clk_ops = {
293 .get_rate = dummy_get_rate,
294};
295
286static struct clk sys_clkin = { 296static struct clk sys_clkin = {
287 .name = "SYS_CLKIN", 297 .name = "SYS_CLKIN",
288 .rate = CONFIG_CLKIN_HZ, 298 .rate = CONFIG_CLKIN_HZ,
@@ -364,6 +374,12 @@ static struct clk oclk = {
364 .parent = &pll_clk, 374 .parent = &pll_clk,
365}; 375};
366 376
377static struct clk ethclk = {
378 .name = "stmmaceth",
379 .parent = &sclk0,
380 .ops = &dummy_clk_ops,
381};
382
367static struct clk_lookup bf609_clks[] = { 383static struct clk_lookup bf609_clks[] = {
368 CLK(sys_clkin, NULL, "SYS_CLKIN"), 384 CLK(sys_clkin, NULL, "SYS_CLKIN"),
369 CLK(pll_clk, NULL, "PLLCLK"), 385 CLK(pll_clk, NULL, "PLLCLK"),
@@ -375,6 +391,7 @@ static struct clk_lookup bf609_clks[] = {
375 CLK(sclk1, NULL, "SCLK1"), 391 CLK(sclk1, NULL, "SCLK1"),
376 CLK(dclk, NULL, "DCLK"), 392 CLK(dclk, NULL, "DCLK"),
377 CLK(oclk, NULL, "OCLK"), 393 CLK(oclk, NULL, "OCLK"),
394 CLK(ethclk, NULL, "stmmaceth"),
378}; 395};
379 396
380int __init clk_init(void) 397int __init clk_init(void)