clock: add stmmac clock for ethernet driver
authorSteven Miao <realmz6@gmail.com>
Fri, 5 Jul 2013 06:36:09 +0000 (14:36 +0800)
committerSteven Miao <realmz6@gmail.com>
Fri, 13 Sep 2013 02:42:32 +0000 (10:42 +0800)
Signed-off-by: Steven Miao <realmz6@gmail.com>
arch/blackfin/mach-bf609/clock.c

index 437d56c8228132301fce013f6ebf49e9f9467df6..dab8849af884a5a2032081eff51005c6daf08151 100644 (file)
@@ -220,6 +220,12 @@ unsigned long sys_clk_get_rate(struct clk *clk)
        }
 }
 
+unsigned long dummy_get_rate(struct clk *clk)
+{
+       clk->parent->rate = clk_get_rate(clk->parent);
+       return clk->parent->rate;
+}
+
 unsigned long sys_clk_round_rate(struct clk *clk, unsigned long rate)
 {
        unsigned long max_rate;
@@ -283,6 +289,10 @@ static struct clk_ops sys_clk_ops = {
        .round_rate = sys_clk_round_rate,
 };
 
+static struct clk_ops dummy_clk_ops = {
+       .get_rate = dummy_get_rate,
+};
+
 static struct clk sys_clkin = {
        .name       = "SYS_CLKIN",
        .rate       = CONFIG_CLKIN_HZ,
@@ -364,6 +374,12 @@ static struct clk oclk = {
        .parent     = &pll_clk,
 };
 
+static struct clk ethclk = {
+       .name       = "stmmaceth",
+       .parent     = &sclk0,
+       .ops        = &dummy_clk_ops,
+};
+
 static struct clk_lookup bf609_clks[] = {
        CLK(sys_clkin, NULL, "SYS_CLKIN"),
        CLK(pll_clk, NULL, "PLLCLK"),
@@ -375,6 +391,7 @@ static struct clk_lookup bf609_clks[] = {
        CLK(sclk1, NULL, "SCLK1"),
        CLK(dclk, NULL, "DCLK"),
        CLK(oclk, NULL, "OCLK"),
+       CLK(ethclk, NULL, "stmmaceth"),
 };
 
 int __init clk_init(void)