[PATCH 4/7] clocksource: time-armada-370-xp converted to clk framework
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Fri Nov 16 08:49:06 EST 2012
Dear Andrew Lunn,
Title should be "clocksource: convert time-armada-370-xp to the clk
framework".
On Thu, 15 Nov 2012 22:28:23 +0100, Andrew Lunn wrote:
> diff --git a/drivers/clocksource/time-armada-370-xp.c b/drivers/clocksource/time-armada-370-xp.c
> index 4674f94..a4605fd 100644
> --- a/drivers/clocksource/time-armada-370-xp.c
> +++ b/drivers/clocksource/time-armada-370-xp.c
> @@ -18,6 +18,7 @@
> #include <linux/init.h>
> #include <linux/platform_device.h>
> #include <linux/kernel.h>
> +#include <linux/clk.h>
> #include <linux/timer.h>
> #include <linux/clockchips.h>
> #include <linux/interrupt.h>
> @@ -167,7 +168,6 @@ void __init armada_370_xp_timer_init(void)
> u32 u;
> struct device_node *np;
> unsigned int timer_clk;
> - int ret;
> np = of_find_compatible_node(NULL, NULL, "marvell,armada-370-xp-timer");
> timer_base = of_iomap(np, 0);
> WARN_ON(!timer_base);
> @@ -179,13 +179,14 @@ void __init armada_370_xp_timer_init(void)
> timer_base + TIMER_CTRL_OFF);
> timer_clk = 25000000;
> } else {
> - u32 clk = 0;
> - ret = of_property_read_u32(np, "clock-frequency", &clk);
> - WARN_ON(!clk || ret < 0);
> + unsigned long rate = 0;
> + struct clk *clk = of_clk_get(np, 0);
> + WARN_ON(IS_ERR(clk));
> + rate = clk_get_rate(clk);
> u = readl(timer_base + TIMER_CTRL_OFF);
> writel(u & ~(TIMER0_25MHZ | TIMER1_25MHZ),
> timer_base + TIMER_CTRL_OFF);
> - timer_clk = clk / TIMER_DIVIDER;
> + timer_clk = rate / TIMER_DIVIDER;
> }
>
> /* We use timer 0 as clocksource, and timer 1 for
This change requires an update to
Documentation/devicetree/bindings/arm/armada-370-xp-timer.txt. The
previous clock-frequency property was not documented, but maybe the new
clocks property should.
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
More information about the devicetree-discuss
mailing list