diff options
Diffstat (limited to 'arch/arm/mach-davinci/time.c')
-rw-r--r-- | arch/arm/mach-davinci/time.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c index 0884ca57bfb0..0d1b6d407b46 100644 --- a/arch/arm/mach-davinci/time.c +++ b/arch/arm/mach-davinci/time.c | |||
@@ -406,11 +406,11 @@ struct sys_timer davinci_timer = { | |||
406 | void davinci_watchdog_reset(void) | 406 | void davinci_watchdog_reset(void) |
407 | { | 407 | { |
408 | u32 tgcr, wdtcr; | 408 | u32 tgcr, wdtcr; |
409 | struct davinci_soc_info *soc_info = &davinci_soc_info; | 409 | struct platform_device *pdev = &davinci_wdt_device; |
410 | void __iomem *base = soc_info->wdt_base; | 410 | void __iomem *base = IO_ADDRESS(pdev->resource[0].start); |
411 | struct clk *wd_clk; | 411 | struct clk *wd_clk; |
412 | 412 | ||
413 | wd_clk = clk_get(&davinci_wdt_device.dev, NULL); | 413 | wd_clk = clk_get(&pdev->dev, NULL); |
414 | if (WARN_ON(IS_ERR(wd_clk))) | 414 | if (WARN_ON(IS_ERR(wd_clk))) |
415 | return; | 415 | return; |
416 | clk_enable(wd_clk); | 416 | clk_enable(wd_clk); |
@@ -420,11 +420,11 @@ void davinci_watchdog_reset(void) | |||
420 | 420 | ||
421 | /* reset timer, set mode to 64-bit watchdog, and unreset */ | 421 | /* reset timer, set mode to 64-bit watchdog, and unreset */ |
422 | tgcr = 0; | 422 | tgcr = 0; |
423 | __raw_writel(tgcr, base + TCR); | 423 | __raw_writel(tgcr, base + TGCR); |
424 | tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT; | 424 | tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT; |
425 | tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) | | 425 | tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) | |
426 | (TGCR_UNRESET << TGCR_TIM34RS_SHIFT); | 426 | (TGCR_UNRESET << TGCR_TIM34RS_SHIFT); |
427 | __raw_writel(tgcr, base + TCR); | 427 | __raw_writel(tgcr, base + TGCR); |
428 | 428 | ||
429 | /* clear counter and period regs */ | 429 | /* clear counter and period regs */ |
430 | __raw_writel(0, base + TIM12); | 430 | __raw_writel(0, base + TIM12); |
@@ -432,12 +432,8 @@ void davinci_watchdog_reset(void) | |||
432 | __raw_writel(0, base + PRD12); | 432 | __raw_writel(0, base + PRD12); |
433 | __raw_writel(0, base + PRD34); | 433 | __raw_writel(0, base + PRD34); |
434 | 434 | ||
435 | /* enable */ | ||
436 | wdtcr = __raw_readl(base + WDTCR); | ||
437 | wdtcr |= WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT; | ||
438 | __raw_writel(wdtcr, base + WDTCR); | ||
439 | |||
440 | /* put watchdog in pre-active state */ | 435 | /* put watchdog in pre-active state */ |
436 | wdtcr = __raw_readl(base + WDTCR); | ||
441 | wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) | | 437 | wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) | |
442 | (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); | 438 | (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT); |
443 | __raw_writel(wdtcr, base + WDTCR); | 439 | __raw_writel(wdtcr, base + WDTCR); |