clock: add stmmac clock for ethernet driver

Signed-off-by: Steven Miao <realmz6@gmail.com>
This commit is contained in:
Steven Miao 2013-07-05 14:36:09 +08:00
parent 206f060c21
commit 3036dccf2c
1 changed files with 17 additions and 0 deletions

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