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 <wim@xxxxxxxxx> Cc: Tony Lindgren <tony@xxxxxxxxxxx> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html