"Mark A. Greer" <mgr...@mvista.com> writes: > From: Mark A. Greer <mgr...@mvista.com> > > The watchdog code currently hardcodes the base address > of the timer its using. To support new SoCs, make it > support timers at any address. Use davinci_soc_info > to do this. > > Signed-off-by: Mark A. Greer <mgr...@mvista.com>
You should also update the WDT setup from devices.c. This is where it sets up the actual watchdog driver. Now that it's in soc_info, it could be done in common.c instead of devices.c. Kevin > --- > arch/arm/mach-davinci/dm355.c | 1 + > arch/arm/mach-davinci/dm644x.c | 1 + > arch/arm/mach-davinci/dm646x.c | 1 + > arch/arm/mach-davinci/include/mach/common.h | 1 + > arch/arm/mach-davinci/include/mach/time.h | 1 + > arch/arm/mach-davinci/time.c | 4 +--- > 6 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c > index 837570b..68e2320 100644 > --- a/arch/arm/mach-davinci/dm355.c > +++ b/arch/arm/mach-davinci/dm355.c > @@ -649,6 +649,7 @@ static struct davinci_soc_info davinci_soc_info_dm355 = { > .intc_type = DAVINCI_INTC_TYPE_AINTC, > .intc_num = DAVINCI_N_AINTC_IRQ, > .timer_info = &dm355_timer_info, > + .wdt_base = IO_ADDRESS(DAVINCI_WDOG_BASE), > }; > > struct davinci_soc_info *dm355_get_soc_info(void) > diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c > index 5d63d46..3d3b05c 100644 > --- a/arch/arm/mach-davinci/dm644x.c > +++ b/arch/arm/mach-davinci/dm644x.c > @@ -592,6 +592,7 @@ static struct davinci_soc_info davinci_soc_info_dm644x = { > .intc_type = DAVINCI_INTC_TYPE_AINTC, > .intc_num = DAVINCI_N_AINTC_IRQ, > .timer_info = &dm644x_timer_info, > + .wdt_base = IO_ADDRESS(DAVINCI_WDOG_BASE), > }; > > struct davinci_soc_info *dm644x_get_soc_info(void) > diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c > index 96ae370..5f49b30 100644 > --- a/arch/arm/mach-davinci/dm646x.c > +++ b/arch/arm/mach-davinci/dm646x.c > @@ -571,6 +571,7 @@ static struct davinci_soc_info davinci_soc_info_dm646x = { > .intc_type = DAVINCI_INTC_TYPE_AINTC, > .intc_num = DAVINCI_N_AINTC_IRQ, > .timer_info = &dm646x_timer_info, > + .wdt_base = IO_ADDRESS(DAVINCI_WDOG_BASE), > }; > > struct davinci_soc_info *dm646x_get_soc_info(void) > diff --git a/arch/arm/mach-davinci/include/mach/common.h > b/arch/arm/mach-davinci/include/mach/common.h > index 664655b..9a232b5 100644 > --- a/arch/arm/mach-davinci/include/mach/common.h > +++ b/arch/arm/mach-davinci/include/mach/common.h > @@ -54,6 +54,7 @@ struct davinci_soc_info { > int intc_type; > unsigned long intc_num; > struct davinci_timer_info *timer_info; > + void __iomem *wdt_base; > }; > > extern struct davinci_soc_info *davinci_soc_info; > diff --git a/arch/arm/mach-davinci/include/mach/time.h > b/arch/arm/mach-davinci/include/mach/time.h > index 260d276..16cc89f 100644 > --- a/arch/arm/mach-davinci/include/mach/time.h > +++ b/arch/arm/mach-davinci/include/mach/time.h > @@ -13,6 +13,7 @@ > > #define DAVINCI_TIMER0_BASE (IO_PHYS + 0x21400) > #define DAVINCI_TIMER1_BASE (IO_PHYS + 0x21800) > +#define DAVINCI_WDOG_BASE (IO_PHYS + 0x21C00) > > enum { > T0_BOT, > diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c > index ab456e5..f07bac8 100644 > --- a/arch/arm/mach-davinci/time.c > +++ b/arch/arm/mach-davinci/time.c > @@ -34,8 +34,6 @@ > static struct clock_event_device clockevent_davinci; > static unsigned int davinci_clock_tick_rate; > > -#define DAVINCI_WDOG_BASE (IO_PHYS + 0x21C00) > - > /* > * This driver configures the 2 64-bit count-up timers as 4 independent > * 32-bit count-up timers used as follows: > @@ -341,7 +339,7 @@ struct sys_timer davinci_timer = { > /* reset board using watchdog timer */ > void davinci_watchdog_reset(void) { > u32 tgcr, wdtcr; > - void __iomem *base = IO_ADDRESS(DAVINCI_WDOG_BASE); > + void __iomem *base = davinci_soc_info->wdt_base; > struct device dev; > struct clk *wd_clk; > > -- > 1.6.0.3 > > > _______________________________________________ > Davinci-linux-open-source mailing list > Davinci-linux-open-source@linux.davincidsp.com > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source