aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dm644x.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/dm644x.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/dm644x.c')
-rw-r--r--arch/arm/mach-davinci/dm644x.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index 5c6a7b175786..8e9385c34853 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -22,6 +22,7 @@
22#include <mach/irqs.h> 22#include <mach/irqs.h>
23#include <mach/psc.h> 23#include <mach/psc.h>
24#include <mach/mux.h> 24#include <mach/mux.h>
25#include <mach/time.h>
25#include <mach/common.h> 26#include <mach/common.h>
26 27
27#include "clock.h" 28#include "clock.h"
@@ -559,6 +560,18 @@ static void __iomem *dm644x_psc_bases[] = {
559 IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE), 560 IO_ADDRESS(DAVINCI_PWR_SLEEP_CNTRL_BASE),
560}; 561};
561 562
563/*
564 * T0_BOT: Timer 0, bottom: clockevent source for hrtimers
565 * T0_TOP: Timer 0, top : clocksource for generic timekeeping
566 * T1_BOT: Timer 1, bottom: (used by DSP in TI DSPLink code)
567 * T1_TOP: Timer 1, top : <unused>
568 */
569struct davinci_timer_info dm644x_timer_info = {
570 .timers = davinci_timer_instance,
571 .clockevent_id = T0_BOT,
572 .clocksource_id = T0_TOP,
573};
574
562static struct davinci_soc_info davinci_soc_info_dm644x = { 575static struct davinci_soc_info davinci_soc_info_dm644x = {
563 .io_desc = dm644x_io_desc, 576 .io_desc = dm644x_io_desc,
564 .io_desc_num = ARRAY_SIZE(dm644x_io_desc), 577 .io_desc_num = ARRAY_SIZE(dm644x_io_desc),
@@ -575,6 +588,7 @@ static struct davinci_soc_info davinci_soc_info_dm644x = {
575 .intc_type = DAVINCI_INTC_TYPE_AINTC, 588 .intc_type = DAVINCI_INTC_TYPE_AINTC,
576 .intc_irq_prios = dm644x_default_priorities, 589 .intc_irq_prios = dm644x_default_priorities,
577 .intc_irq_num = DAVINCI_N_AINTC_IRQ, 590 .intc_irq_num = DAVINCI_N_AINTC_IRQ,
591 .timer_info = &dm644x_timer_info,
578}; 592};
579 593
580void __init dm644x_init(void) 594void __init dm644x_init(void)