diff options
Diffstat (limited to 'arch/powerpc/platforms/512x/clock.c')
| -rw-r--r-- | arch/powerpc/platforms/512x/clock.c | 20 | 
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/powerpc/platforms/512x/clock.c b/arch/powerpc/platforms/512x/clock.c index 4c42246b86a..5b243bd3eb3 100644 --- a/arch/powerpc/platforms/512x/clock.c +++ b/arch/powerpc/platforms/512x/clock.c @@ -292,6 +292,15 @@ static void diu_clk_calc(struct clk *clk)  	clk->rate = rate;  } +static void viu_clk_calc(struct clk *clk) +{ +	unsigned long rate; + +	rate = sys_clk.rate; +	rate /= 2; +	clk->rate = rate; +} +  static void half_clk_calc(struct clk *clk)  {  	clk->rate = clk->parent->rate / 2; @@ -412,6 +421,14 @@ static struct clk diu_clk = {  	.calc = diu_clk_calc,  }; +static struct clk viu_clk = { +	.name = "viu_clk", +	.flags = CLK_HAS_CTRL, +	.reg = 1, +	.bit = 18, +	.calc = viu_clk_calc, +}; +  static struct clk axe_clk = {  	.name = "axe_clk",  	.flags = CLK_HAS_CTRL, @@ -535,6 +552,7 @@ struct clk *rate_clks[] = {  	&ref_clk,  	&sys_clk,  	&diu_clk, +	&viu_clk,  	&csb_clk,  	&e300_clk,  	&ips_clk, @@ -660,7 +678,7 @@ static void psc_clks_init(void)  {  	struct device_node *np;  	const u32 *cell_index; -	struct of_device *ofdev; +	struct platform_device *ofdev;  	for_each_compatible_node(np, NULL, "fsl,mpc5121-psc") {  		cell_index = of_get_property(np, "cell-index", NULL);  |