ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource
authorSudeep Holla <sudeep.holla@arm.com>
Mon, 18 May 2015 15:29:40 +0000 (16:29 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 2 Jun 2015 08:58:18 +0000 (09:58 +0100)
The ARM Dual-Timer SP804 module is peripheral found not only on ARM32
platforms but also on ARM64 platforms.

This patch moves the driver out of arch/arm to driver/clocksource
so that it can be used on ARM64 platforms also.

Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Olof Johansson <olof@lixom.net>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/Kconfig
arch/arm/common/Makefile
arch/arm/mach-nspire/nspire.c
arch/arm/mach-realview/core.c
arch/arm/mach-versatile/core.c
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/timer-integrator-ap.c
drivers/clocksource/timer-sp.h [moved from arch/arm/include/asm/hardware/arm_timer.h with 93% similarity]
drivers/clocksource/timer-sp804.c [moved from arch/arm/common/timer-sp.c with 98% similarity]
include/clocksource/timer-sp804.h [moved from arch/arm/include/asm/hardware/timer-sp.h with 90% similarity]

index d0950ce..34b7285 100644 (file)
@@ -975,11 +975,6 @@ config PLAT_PXA
 config PLAT_VERSATILE
        bool
 
-config ARM_TIMER_SP804
-       bool
-       select CLKSRC_MMIO
-       select CLKSRC_OF if OF
-
 source "arch/arm/firmware/Kconfig"
 
 source arch/arm/mm/Kconfig
index 70b1eff..6ee5959 100644 (file)
@@ -11,7 +11,6 @@ obj-$(CONFIG_SHARP_LOCOMO)    += locomo.o
 obj-$(CONFIG_SHARP_PARAM)      += sharpsl_param.o
 obj-$(CONFIG_SHARP_SCOOP)      += scoop.o
 obj-$(CONFIG_PCI_HOST_ITE8152)  += it8152.o
-obj-$(CONFIG_ARM_TIMER_SP804)  += timer-sp.o
 obj-$(CONFIG_MCPM)             += mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
 CFLAGS_REMOVE_mcpm_entry.o     = -pg
 AFLAGS_mcpm_head.o             := -march=armv7-a
index 3445a56..34c2a1b 100644 (file)
@@ -22,8 +22,6 @@
 #include <asm/mach-types.h>
 #include <asm/mach/map.h>
 
-#include <asm/hardware/timer-sp.h>
-
 #include "mmio.h"
 #include "clcd.h"
 
index c611f48..44575ed 100644 (file)
@@ -35,6 +35,8 @@
 #include <linux/mtd/physmap.h>
 #include <linux/memblock.h>
 
+#include <clocksource/timer-sp804.h>
+
 #include <mach/hardware.h>
 #include <asm/irq.h>
 #include <asm/mach-types.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/map.h>
 
-
 #include <mach/platform.h>
 #include <mach/irqs.h>
-#include <asm/hardware/timer-sp.h>
 
 #include <plat/sched_clock.h>
 
index f98c196..23a04fe 100644 (file)
@@ -41,6 +41,8 @@
 #include <linux/bitops.h>
 #include <linux/reboot.h>
 
+#include <clocksource/timer-sp804.h>
+
 #include <asm/irq.h>
 #include <asm/hardware/icst.h>
 #include <asm/mach-types.h>
@@ -51,7 +53,6 @@
 #include <asm/mach/map.h>
 #include <mach/hardware.h>
 #include <mach/platform.h>
-#include <asm/hardware/timer-sp.h>
 
 #include <plat/sched_clock.h>
 
index 51d7865..0f1c0e7 100644 (file)
@@ -132,6 +132,11 @@ config ARM_GLOBAL_TIMER
        help
          This options enables support for the ARM global timer unit
 
+config ARM_TIMER_SP804
+       bool "Support for Dual Timer SP804 module"
+       select CLKSRC_MMIO
+       select CLKSRC_OF if OF
+
 config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
        bool
        depends on ARM_GLOBAL_TIMER
index 5b85f6a..5ca59f9 100644 (file)
@@ -45,6 +45,7 @@ obj-$(CONFIG_MTK_TIMER)               += mtk_timer.o
 
 obj-$(CONFIG_ARM_ARCH_TIMER)           += arm_arch_timer.o
 obj-$(CONFIG_ARM_GLOBAL_TIMER)         += arm_global_timer.o
+obj-$(CONFIG_ARM_TIMER_SP804)          += timer-sp804.o
 obj-$(CONFIG_CLKSRC_METAG_GENERIC)     += metag_generic.o
 obj-$(CONFIG_ARCH_HAS_TICK_BROADCAST)  += dummy_timer.o
 obj-$(CONFIG_ARCH_KEYSTONE)            += timer-keystone.o
index b9efd30..d7d21e4 100644 (file)
@@ -26,7 +26,8 @@
 #include <linux/clockchips.h>
 #include <linux/interrupt.h>
 #include <linux/sched_clock.h>
-#include <asm/hardware/arm_timer.h>
+
+#include "timer-sp.h"
 
 static void __iomem * sched_clk_base;
 
similarity index 93%
rename from arch/arm/include/asm/hardware/arm_timer.h
rename to drivers/clocksource/timer-sp.h
index d6030ff..050d885 100644 (file)
@@ -1,6 +1,3 @@
-#ifndef __ASM_ARM_HARDWARE_ARM_TIMER_H
-#define __ASM_ARM_HARDWARE_ARM_TIMER_H
-
 /*
  * ARM timer implementation, found in Integrator, Versatile and Realview
  * platforms.  Not all platforms support all registers and bits in these
@@ -31,5 +28,3 @@
 #define TIMER_RIS      0x10                    /*  CVR ro */
 #define TIMER_MIS      0x14                    /*  CVR ro */
 #define TIMER_BGLOAD   0x18                    /*  CVR rw */
-
-#endif
similarity index 98%
rename from arch/arm/common/timer-sp.c
rename to drivers/clocksource/timer-sp804.c
index 000aea3..ca02503 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  linux/arch/arm/common/timer-sp.c
+ *  linux/drivers/clocksource/timer-sp.c
  *
  *  Copyright (C) 1999 - 2003 ARM Limited
  *  Copyright (C) 2000 Deep Blue Solutions Ltd
@@ -30,8 +30,9 @@
 #include <linux/of_irq.h>
 #include <linux/sched_clock.h>
 
-#include <asm/hardware/arm_timer.h>
-#include <asm/hardware/timer-sp.h>
+#include <clocksource/timer-sp804.h>
+
+#include "timer-sp.h"
 
 static long __init sp804_get_clock_rate(struct clk *clk)
 {
similarity index 90%
rename from arch/arm/include/asm/hardware/timer-sp.h
rename to include/clocksource/timer-sp804.h
index 05eaefa..1f8a1ca 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef __CLKSOURCE_TIMER_SP804_H
+#define __CLKSOURCE_TIMER_SP804_H
+
 struct clk;
 
 void __sp804_clocksource_and_sched_clock_init(void __iomem *,
@@ -22,3 +25,4 @@ static inline void sp804_clockevents_init(void __iomem *base, unsigned int irq,
        __sp804_clockevents_init(base, irq, NULL, name);
 
 }
+#endif