Thread (5 messages) 5 messages, 3 authors, 2013-05-09

[RFC 2/8] ARM:global_timer: Add ARM global timer support.

From: Srinivas KANDAGATLA <hidden>
Date: 2013-05-09 14:13:30
Also in: linux-devicetree, linux-serial, lkml

On 08/05/13 15:38, Arnd Bergmann wrote:
On Wednesday 08 May 2013, Srinivas KANDAGATLA wrote:
quoted
From: Stuart Menefy <redacted>

This is a simple driver for the global timer module found in the Cortex
A9-MP cores from revision r1p0 onwards. This should be able to perform
the functions of the system timer and the local timer in an SMP system.

The global timer has the following features:
    The global timer is a 64-bit incrementing counter with an
auto-incrementing feature. It continues incrementing after sending
interrupts. The global timer is memory mapped in the private memory
region.
    The global timer is accessible to all Cortex-A9 processors in the
cluster. Each Cortex-A9 processor has a private 64-bit comparator that
is used to assert a private interrupt when the global timer has reached
the comparator value. All the Cortex-A9 processors in a design use the
banked ID, ID27, for this interrupt. ID27 is sent to the Interrupt
Controller as a Private Peripheral Interrupt. The global timer is
clocked by PERIPHCLK.

Signed-off-by: Stuart Menefy <redacted>
Signed-off-by: Srinivas Kandagatla <redacted>
Are you sure we don't already have a driver for this? It sounds unlikely
that you are the first one to do this when the hardware is so common.
Yes, in mainline we do not have support to this.
quoted
 Documentation/devicetree/bindings/arm/gt.txt |   21 ++
 arch/arm/Kconfig                             |    6 +
 arch/arm/include/asm/global_timer.h          |   12 +
 arch/arm/kernel/Makefile                     |    1 +
 arch/arm/kernel/global_timer.c               |  325 ++++++++++++++++++++++++++
 5 files changed, 365 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/gt.txt
 create mode 100644 arch/arm/include/asm/global_timer.h
 create mode 100644 arch/arm/kernel/global_timer.c
Move it into drivers/clocksource?
Sure, I will move this in the next version.
 
quoted
diff --git a/arch/arm/include/asm/global_timer.h b/arch/arm/include/asm/global_timer.h
new file mode 100644
index 0000000..46f9188
--- /dev/null
+++ b/arch/arm/include/asm/global_timer.h
@@ -0,0 +1,12 @@
+int __init global_timer_init(void __iomem *base, unsigned int timer_irq);
I don't see a need to call this from platform code for non-DT platforms, it
can easily be used with CLOCKSOURCE_OF_DECLARE() all the time I think.
sorry Am confused here.
How would this work for non-DT?

Looking at the code in clocksource_of_init it just goes through the
of_device_id table, which is not used in case of non-DT.
	Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help