We need clks enabled to read/write watchdog registers.
After talking to the clks during probe, disable them until
/dev/watchdog is opened.
Also fix resource.end field.
Cc: Wim Van Sebroeck <[EMAIL PROTECTED]>
Cc: Tony Lindgren <[EMAIL PROTECTED]>
Signed-off-by: Felipe Balbi <[EMAIL PROTECTED]>
---
arch/arm/plat-omap/devices.c | 2 +-
drivers/watchdog/omap_wdt.c | 16 ++++++++++++++++
2 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index c22bd5f..5297db5 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -309,7 +309,7 @@ static void omap_init_wdt(void)
else
return;
- wdt_resources[0].end = wdt_resources[0].start + 0x4f;
+ wdt_resources[0].end = wdt_resources[0].start + SZ_4K;
(void) platform_device_register(&omap_wdt_device);
}
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index 7bcbb7f..2c9988a 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -349,6 +349,14 @@ static int __init omap_wdt_probe(struct platform_device
*pdev)
platform_set_drvdata(pdev, wdev);
+ if (cpu_is_omap16xx())
+ clk_enable(wdev->armwdt_ck); /* Enable the clock */
+
+ if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
+ clk_enable(wdev->mpu_wdt_ick); /* Enable the interface clock
*/
+ clk_enable(wdev->mpu_wdt_fck); /* Enable the functional
clock */
+ }
+
omap_wdt_disable(wdev);
omap_wdt_adjust_timeout(timer_margin);
@@ -368,6 +376,14 @@ static int __init omap_wdt_probe(struct platform_device
*pdev)
/* autogate OCP interface clock */
__raw_writel(0x01, wdev->base + OMAP_WATCHDOG_SYS_CONFIG);
+ if (cpu_is_omap16xx())
+ clk_disable(wdev->armwdt_ck); /* Disable the clock */
+
+ if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
+ clk_disable(wdev->mpu_wdt_ick); /* Disable the clock */
+ clk_disable(wdev->mpu_wdt_fck); /* Disable the clock */
+ }
+
omap_wdt_dev = pdev;
return 0;
--
1.6.0.2.307.gc427
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html