From a86c456862efe72f3724a53fbfde572ca6310562 Mon Sep 17 00:00:00 2001 From: juhosg Date: Wed, 26 Jan 2011 20:48:46 +0000 Subject: ramips: add watchdog device for RT305x git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25127 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../ramips/files/arch/mips/ralink/rt305x/devices.c | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c') diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c index 3936ee7a4..7d41b079a 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c @@ -189,3 +189,31 @@ void __init rt305x_register_wifi(void) { platform_device_register(&rt305x_wifi_device); } + +static struct resource rt305x_wdt_resources[] = { + { + .start = RT305X_TIMER_BASE, + .end = RT305X_TIMER_BASE + RT305X_TIMER_SIZE - 1, + .flags = IORESOURCE_MEM, + }, +}; + +static struct platform_device rt305x_wdt_device = { + .name = "ramips-wdt", + .id = -1, + .resource = rt305x_wdt_resources, + .num_resources = ARRAY_SIZE(rt305x_wdt_resources), +}; + +void __init rt305x_register_wdt(void) +{ + u32 t; + + /* enable WDT reset output on pin SRAM_CS_N */ + t = rt305x_sysc_rr(SYSC_REG_SYSTEM_CONFIG); + t |= SYSTEM_CONFIG_SRAM_CS0_MODE_WDT << + SYSTEM_CONFIG_SRAM_CS0_MODE_SHIFT; + rt305x_sysc_wr(t, SYSC_REG_SYSTEM_CONFIG); + + platform_device_register(&rt305x_wdt_device); +} -- cgit v1.2.3