diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0168-clocksource-armada-370-xp-Introduce-new-compatibles.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0168-clocksource-armada-370-xp-Introduce-new-compatibles.patch | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/target/linux/mvebu/patches-3.10/0168-clocksource-armada-370-xp-Introduce-new-compatibles.patch b/target/linux/mvebu/patches-3.10/0168-clocksource-armada-370-xp-Introduce-new-compatibles.patch deleted file mode 100644 index f028dfabc0..0000000000 --- a/target/linux/mvebu/patches-3.10/0168-clocksource-armada-370-xp-Introduce-new-compatibles.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 9cb47bf175645d15f97e6d964dd4a4f089275ef5 Mon Sep 17 00:00:00 2001 -From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> -Date: Tue, 13 Aug 2013 11:43:13 -0300 -Subject: [PATCH 168/203] clocksource: armada-370-xp: Introduce new compatibles - -The Armada XP SoC clocksource driver cannot work without the 25 MHz -fixed timer. Therefore it's appropriate to introduce a new compatible -string and use it to set the 25 MHz fixed timer. - -The 'marvell,timer-25MHz' property will be marked as deprecated. - -Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> -Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> -Reviewed-by: Andrew Lunn <andrew@lunn.ch> ---- - drivers/clocksource/time-armada-370-xp.c | 54 +++++++++++++++++++++++--------- - 1 file changed, 39 insertions(+), 15 deletions(-) - ---- a/drivers/clocksource/time-armada-370-xp.c -+++ b/drivers/clocksource/time-armada-370-xp.c -@@ -13,6 +13,19 @@ - * - * Timer 0 is used as free-running clocksource, while timer 1 is - * used as clock_event_device. -+ * -+ * --- -+ * Clocksource driver for Armada 370 and Armada XP SoC. -+ * This driver implements one compatible string for each SoC, given -+ * each has its own characteristics: -+ * -+ * * Armada 370 has no 25 MHz fixed timer. -+ * -+ * * Armada XP cannot work properly without such 25 MHz fixed timer as -+ * doing otherwise leads to using a clocksource whose frequency varies -+ * when doing cpufreq frequency changes. -+ * -+ * See Documentation/devicetree/bindings/timer/marvell,armada-370-xp-timer.txt - */ - - #include <linux/init.h> -@@ -212,7 +225,7 @@ static struct local_timer_ops armada_370 - .stop = armada_370_xp_timer_stop, - }; - --static void __init armada_370_xp_timer_init(struct device_node *np) -+static void __init armada_370_xp_timer_common_init(struct device_node *np) - { - u32 clr = 0, set = 0; - int res; -@@ -221,20 +234,10 @@ static void __init armada_370_xp_timer_i - WARN_ON(!timer_base); - local_base = of_iomap(np, 1); - -- if (of_find_property(np, "marvell,timer-25Mhz", NULL)) { -- /* The fixed 25MHz timer is available so let's use it */ -+ if (timer25Mhz) - set = TIMER0_25MHZ; -- timer_clk = 25000000; -- } else { -- unsigned long rate = 0; -- struct clk *clk = of_clk_get(np, 0); -- WARN_ON(IS_ERR(clk)); -- rate = clk_get_rate(clk); -- timer_clk = rate / TIMER_DIVIDER; -- -+ else - clr = TIMER0_25MHZ; -- timer25Mhz = false; -- } - timer_ctrl_clrset(clr, set); - local_timer_ctrl_clrset(clr, set); - -@@ -288,5 +291,26 @@ static void __init armada_370_xp_timer_i - #endif - } - } --CLOCKSOURCE_OF_DECLARE(armada_370_xp, "marvell,armada-370-xp-timer", -- armada_370_xp_timer_init); -+ -+static void __init armada_xp_timer_init(struct device_node *np) -+{ -+ /* The fixed 25MHz timer is required, timer25Mhz is true by default */ -+ timer_clk = 25000000; -+ -+ armada_370_xp_timer_common_init(np); -+} -+CLOCKSOURCE_OF_DECLARE(armada_xp, "marvell,armada-xp-timer", -+ armada_xp_timer_init); -+ -+static void __init armada_370_timer_init(struct device_node *np) -+{ -+ struct clk *clk = of_clk_get(np, 0); -+ -+ WARN_ON(IS_ERR(clk)); -+ timer_clk = clk_get_rate(clk) / TIMER_DIVIDER; -+ timer25Mhz = false; -+ -+ armada_370_xp_timer_common_init(np); -+} -+CLOCKSOURCE_OF_DECLARE(armada_370, "marvell,armada-370-timer", -+ armada_370_timer_init); |