aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-integrator/integrator_ap.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 18:37:40 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 18:37:40 -0400
commitcbda94e039c3862326a65d1d0506447af8330c3c (patch)
tree1147da54ec6eb7e1081977f07e62d514b981d9a3 /arch/arm/mach-integrator/integrator_ap.c
parentf83ccb93585d1f472c30fa2bbb8b56c23dbdb506 (diff)
parentf1d7d8c86bc8ca41c88acf10ce383c5104cf4920 (diff)
Merge tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC driver changes from Arnd Bergmann: "These changes are mostly for ARM specific device drivers that either don't have an upstream maintainer, or that had the maintainer ask us to pick up the changes to avoid conflicts. A large chunk of this are clock drivers (bcm281xx, exynos, versatile, shmobile), aside from that, reset controllers for STi as well as a large rework of the Marvell Orion/EBU watchdog driver are notable" * tag 'drivers-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits) Revert "dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac." Revert "net: stmmac: Add SOCFPGA glue driver" ARM: shmobile: r8a7791: Fix SCIFA3-5 clocks ARM: STi: Add reset controller support to mach-sti Kconfig drivers: reset: stih416: add softreset controller drivers: reset: stih415: add softreset controller drivers: reset: Reset controller driver for STiH416 drivers: reset: Reset controller driver for STiH415 drivers: reset: STi SoC system configuration reset controller support dts: socfpga: Add sysmgr node so the gmac can use to reference dts: socfpga: Add support for SD/MMC on the SOCFPGA platform reset: Add optional resets and stubs ARM: shmobile: r7s72100: fix bus clock calculation Power: Reset: Generalize qnap-poweroff to work on Synology devices. dts: socfpga: Update clock entry to support multiple parents ARM: socfpga: Update socfpga_defconfig dts: socfpga: Add DTS entry for adding the stmmac glue layer for stmmac. net: stmmac: Add SOCFPGA glue driver watchdog: orion_wdt: Use %pa to print 'phys_addr_t' drivers: cci: Export CCI PMU revision ...
Diffstat (limited to 'arch/arm/mach-integrator/integrator_ap.c')
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index e4f27f0e56ac..cc0857cab2e1 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -42,6 +42,7 @@
42#include <linux/sys_soc.h> 42#include <linux/sys_soc.h>
43#include <linux/termios.h> 43#include <linux/termios.h>
44#include <linux/sched_clock.h> 44#include <linux/sched_clock.h>
45#include <linux/clk-provider.h>
45 46
46#include <mach/hardware.h> 47#include <mach/hardware.h>
47#include <mach/platform.h> 48#include <mach/platform.h>
@@ -402,10 +403,7 @@ static void __init ap_of_timer_init(void)
402 struct clk *clk; 403 struct clk *clk;
403 unsigned long rate; 404 unsigned long rate;
404 405
405 clk = clk_get_sys("ap_timer", NULL); 406 of_clk_init(NULL);
406 BUG_ON(IS_ERR(clk));
407 clk_prepare_enable(clk);
408 rate = clk_get_rate(clk);
409 407
410 err = of_property_read_string(of_aliases, 408 err = of_property_read_string(of_aliases,
411 "arm,timer-primary", &path); 409 "arm,timer-primary", &path);
@@ -415,6 +413,12 @@ static void __init ap_of_timer_init(void)
415 base = of_iomap(node, 0); 413 base = of_iomap(node, 0);
416 if (WARN_ON(!base)) 414 if (WARN_ON(!base))
417 return; 415 return;
416
417 clk = of_clk_get(node, 0);
418 BUG_ON(IS_ERR(clk));
419 clk_prepare_enable(clk);
420 rate = clk_get_rate(clk);
421
418 writel(0, base + TIMER_CTRL); 422 writel(0, base + TIMER_CTRL);
419 integrator_clocksource_init(rate, base); 423 integrator_clocksource_init(rate, base);
420 424
@@ -427,6 +431,12 @@ static void __init ap_of_timer_init(void)
427 if (WARN_ON(!base)) 431 if (WARN_ON(!base))
428 return; 432 return;
429 irq = irq_of_parse_and_map(node, 0); 433 irq = irq_of_parse_and_map(node, 0);
434
435 clk = of_clk_get(node, 0);
436 BUG_ON(IS_ERR(clk));
437 clk_prepare_enable(clk);
438 rate = clk_get_rate(clk);
439
430 writel(0, base + TIMER_CTRL); 440 writel(0, base + TIMER_CTRL);
431 integrator_clockevent_init(rate, base, irq); 441 integrator_clockevent_init(rate, base, irq);
432} 442}
@@ -440,7 +450,6 @@ static void __init ap_init_irq_of(void)
440{ 450{
441 cm_init(); 451 cm_init();
442 of_irq_init(fpga_irq_of_match); 452 of_irq_init(fpga_irq_of_match);
443 integrator_clk_init(false);
444} 453}
445 454
446/* For the Device Tree, add in the UART callbacks as AUXDATA */ 455/* For the Device Tree, add in the UART callbacks as AUXDATA */