Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 951d6f6d authored by Mark A. Greer's avatar Mark A. Greer Committed by Kevin Hilman
Browse files

davinci: Add watchdog base address flexibility



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 the soc_info structure
to do this.

Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent f64691b3
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -216,8 +216,6 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config)

static struct resource wdt_resources[] = {
	{
		.start	= 0x01c21c00,
		.end	= 0x01c21fff,
		.flags	= IORESOURCE_MEM,
	},
};
@@ -231,6 +229,11 @@ struct platform_device davinci_wdt_device = {

static void davinci_init_wdt(void)
{
	struct davinci_soc_info *soc_info = &davinci_soc_info;

	wdt_resources[0].start = (resource_size_t)soc_info->wdt_base;
	wdt_resources[0].end = (resource_size_t)soc_info->wdt_base + SZ_1K - 1;

	platform_device_register(&davinci_wdt_device);
}

+1 −0
Original line number Diff line number Diff line
@@ -646,6 +646,7 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
	.intc_irq_prios		= dm355_default_priorities,
	.intc_irq_num		= DAVINCI_N_AINTC_IRQ,
	.timer_info		= &dm355_timer_info,
	.wdt_base		= IO_ADDRESS(DAVINCI_WDOG_BASE),
};

void __init dm355_init(void)
+1 −0
Original line number Diff line number Diff line
@@ -589,6 +589,7 @@ static struct davinci_soc_info davinci_soc_info_dm644x = {
	.intc_irq_prios 	= dm644x_default_priorities,
	.intc_irq_num		= DAVINCI_N_AINTC_IRQ,
	.timer_info		= &dm644x_timer_info,
	.wdt_base		= IO_ADDRESS(DAVINCI_WDOG_BASE),
};

void __init dm644x_init(void)
+1 −0
Original line number Diff line number Diff line
@@ -568,6 +568,7 @@ static struct davinci_soc_info davinci_soc_info_dm646x = {
	.intc_irq_prios		= dm646x_default_priorities,
	.intc_irq_num		= DAVINCI_N_AINTC_IRQ,
	.timer_info		= &dm646x_timer_info,
	.wdt_base		= IO_ADDRESS(DAVINCI_WDOG_BASE),
};

void __init dm646x_init(void)
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ struct davinci_soc_info {
	u8				*intc_irq_prios;
	unsigned long			intc_irq_num;
	struct davinci_timer_info	*timer_info;
	void __iomem			*wdt_base;
};

extern struct davinci_soc_info davinci_soc_info;
Loading