Commit 0b7402dc authored by Sudeep Holla's avatar Sudeep Holla Committed by Russell King

ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource

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: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 1e5f0519
...@@ -975,11 +975,6 @@ config PLAT_PXA ...@@ -975,11 +975,6 @@ config PLAT_PXA
config PLAT_VERSATILE config PLAT_VERSATILE
bool bool
config ARM_TIMER_SP804
bool
select CLKSRC_MMIO
select CLKSRC_OF if OF
source "arch/arm/firmware/Kconfig" source "arch/arm/firmware/Kconfig"
source arch/arm/mm/Kconfig source arch/arm/mm/Kconfig
......
...@@ -11,7 +11,6 @@ obj-$(CONFIG_SHARP_LOCOMO) += locomo.o ...@@ -11,7 +11,6 @@ obj-$(CONFIG_SHARP_LOCOMO) += locomo.o
obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o obj-$(CONFIG_SHARP_PARAM) += sharpsl_param.o
obj-$(CONFIG_SHARP_SCOOP) += scoop.o obj-$(CONFIG_SHARP_SCOOP) += scoop.o
obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.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 obj-$(CONFIG_MCPM) += mcpm_head.o mcpm_entry.o mcpm_platsmp.o vlock.o
CFLAGS_REMOVE_mcpm_entry.o = -pg CFLAGS_REMOVE_mcpm_entry.o = -pg
AFLAGS_mcpm_head.o := -march=armv7-a AFLAGS_mcpm_head.o := -march=armv7-a
......
...@@ -22,8 +22,6 @@ ...@@ -22,8 +22,6 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/hardware/timer-sp.h>
#include "mmio.h" #include "mmio.h"
#include "clcd.h" #include "clcd.h"
......
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/memblock.h> #include <linux/memblock.h>
#include <clocksource/timer-sp804.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -44,10 +46,8 @@ ...@@ -44,10 +46,8 @@
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/platform.h> #include <mach/platform.h>
#include <mach/irqs.h> #include <mach/irqs.h>
#include <asm/hardware/timer-sp.h>
#include <plat/sched_clock.h> #include <plat/sched_clock.h>
......
...@@ -41,6 +41,8 @@ ...@@ -41,6 +41,8 @@
#include <linux/bitops.h> #include <linux/bitops.h>
#include <linux/reboot.h> #include <linux/reboot.h>
#include <clocksource/timer-sp804.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/hardware/icst.h> #include <asm/hardware/icst.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -51,7 +53,6 @@ ...@@ -51,7 +53,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/platform.h> #include <mach/platform.h>
#include <asm/hardware/timer-sp.h>
#include <plat/sched_clock.h> #include <plat/sched_clock.h>
......
...@@ -132,6 +132,11 @@ config ARM_GLOBAL_TIMER ...@@ -132,6 +132,11 @@ config ARM_GLOBAL_TIMER
help help
This options enables support for the ARM global timer unit 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 config CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
bool bool
depends on ARM_GLOBAL_TIMER depends on ARM_GLOBAL_TIMER
......
...@@ -45,6 +45,7 @@ obj-$(CONFIG_MTK_TIMER) += mtk_timer.o ...@@ -45,6 +45,7 @@ obj-$(CONFIG_MTK_TIMER) += mtk_timer.o
obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o obj-$(CONFIG_ARM_ARCH_TIMER) += arm_arch_timer.o
obj-$(CONFIG_ARM_GLOBAL_TIMER) += arm_global_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_CLKSRC_METAG_GENERIC) += metag_generic.o
obj-$(CONFIG_ARCH_HAS_TICK_BROADCAST) += dummy_timer.o obj-$(CONFIG_ARCH_HAS_TICK_BROADCAST) += dummy_timer.o
obj-$(CONFIG_ARCH_KEYSTONE) += timer-keystone.o obj-$(CONFIG_ARCH_KEYSTONE) += timer-keystone.o
......
...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
#include <linux/clockchips.h> #include <linux/clockchips.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/sched_clock.h> #include <linux/sched_clock.h>
#include <asm/hardware/arm_timer.h>
#include "timer-sp.h"
static void __iomem * sched_clk_base; static void __iomem * sched_clk_base;
......
#ifndef __ASM_ARM_HARDWARE_ARM_TIMER_H
#define __ASM_ARM_HARDWARE_ARM_TIMER_H
/* /*
* ARM timer implementation, found in Integrator, Versatile and Realview * ARM timer implementation, found in Integrator, Versatile and Realview
* platforms. Not all platforms support all registers and bits in these * platforms. Not all platforms support all registers and bits in these
...@@ -31,5 +28,3 @@ ...@@ -31,5 +28,3 @@
#define TIMER_RIS 0x10 /* CVR ro */ #define TIMER_RIS 0x10 /* CVR ro */
#define TIMER_MIS 0x14 /* CVR ro */ #define TIMER_MIS 0x14 /* CVR ro */
#define TIMER_BGLOAD 0x18 /* CVR rw */ #define TIMER_BGLOAD 0x18 /* CVR rw */
#endif
/* /*
* linux/arch/arm/common/timer-sp.c * linux/drivers/clocksource/timer-sp.c
* *
* Copyright (C) 1999 - 2003 ARM Limited * Copyright (C) 1999 - 2003 ARM Limited
* Copyright (C) 2000 Deep Blue Solutions Ltd * Copyright (C) 2000 Deep Blue Solutions Ltd
...@@ -30,8 +30,9 @@ ...@@ -30,8 +30,9 @@
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/sched_clock.h> #include <linux/sched_clock.h>
#include <asm/hardware/arm_timer.h> #include <clocksource/timer-sp804.h>
#include <asm/hardware/timer-sp.h>
#include "timer-sp.h"
static long __init sp804_get_clock_rate(struct clk *clk) static long __init sp804_get_clock_rate(struct clk *clk)
{ {
......
#ifndef __CLKSOURCE_TIMER_SP804_H
#define __CLKSOURCE_TIMER_SP804_H
struct clk; struct clk;
void __sp804_clocksource_and_sched_clock_init(void __iomem *, 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, ...@@ -22,3 +25,4 @@ static inline void sp804_clockevents_init(void __iomem *base, unsigned int irq,
__sp804_clockevents_init(base, irq, NULL, name); __sp804_clockevents_init(base, irq, NULL, name);
} }
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment