aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dm355.c
diff options
context:
space:
mode:
authorMark A. Greer <mgreer@mvista.com>2009-04-15 15:40:11 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2009-05-26 11:19:04 -0400
commitf64691b3ab795268072e76ddb89290b6277cdf33 (patch)
treecc8de5ab3c90674905f6d8e141bcf345a81121f4 /arch/arm/mach-davinci/dm355.c
parent673dd36f0d0cf8893d6b46d524ad80e81076b885 (diff)
davinci: Add base address and timer flexibility
The davinci timer code currently hardcodes the timer register base addresses, the timer irq numbers, and the timers to use for clock events and clocksource. This won't work for some a new SoC so put those values into the soc_info structure and set them up in the SoC-specific files. Signed-off-by: Mark A. Greer <mgreer@mvista.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/dm355.c')
-rw-r--r--arch/arm/mach-davinci/dm355.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index e8c01ffe818a..293a419a4a8e 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -25,6 +25,7 @@
25#include <mach/psc.h> 25#include <mach/psc.h>
26#include <mach/mux.h> 26#include <mach/mux.h>
27#include <mach/irqs.h> 27#include <mach/irqs.h>
28#include <mach/time.h>
28#include <mach/common.h> 29#include <mach/common.h>
29 30
30#include "clock.h" 31#include "clock.h"
@@ -616,6 +617,18 @@ static void __iomem *dm355_psc_bases[] = {
616 IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), 617 IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE),
617}; 618};
618 619
620/*
621 * T0_BOT: Timer 0, bottom: clockevent source for hrtimers
622 * T0_TOP: Timer 0, top : clocksource for generic timekeeping
623 * T1_BOT: Timer 1, bottom: (used by DSP in TI DSPLink code)
624 * T1_TOP: Timer 1, top : <unused>
625 */
626struct davinci_timer_info dm355_timer_info = {
627 .timers = davinci_timer_instance,
628 .clockevent_id = T0_BOT,
629 .clocksource_id = T0_TOP,
630};
631
619static struct davinci_soc_info davinci_soc_info_dm355 = { 632static struct davinci_soc_info davinci_soc_info_dm355 = {
620 .io_desc = dm355_io_desc, 633 .io_desc = dm355_io_desc,
621 .io_desc_num = ARRAY_SIZE(dm355_io_desc), 634 .io_desc_num = ARRAY_SIZE(dm355_io_desc),
@@ -632,6 +645,7 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
632 .intc_type = DAVINCI_INTC_TYPE_AINTC, 645 .intc_type = DAVINCI_INTC_TYPE_AINTC,
633 .intc_irq_prios = dm355_default_priorities, 646 .intc_irq_prios = dm355_default_priorities,
634 .intc_irq_num = DAVINCI_N_AINTC_IRQ, 647 .intc_irq_num = DAVINCI_N_AINTC_IRQ,
648 .timer_info = &dm355_timer_info,
635}; 649};
636 650
637void __init dm355_init(void) 651void __init dm355_init(void)