configs: imx: Remove CONFIG_SYS_SPD_BUS_NUM option
[platform/kernel/u-boot.git] / drivers / watchdog / s5p_wdt.c
1 /*
2  * Copyright (C) 2012 Samsung Electronics
3  * Minkyu Kang <mk7.kang@samsung.com>
4  *
5  * SPDX-License-Identifier:     GPL-2.0+
6  */
7
8 #include <common.h>
9 #include <asm/io.h>
10 #include <asm/arch/watchdog.h>
11
12 #define PRESCALER_VAL 255
13
14 void wdt_stop(void)
15 {
16         struct s5p_watchdog *wdt =
17                 (struct s5p_watchdog *)samsung_get_base_watchdog();
18         unsigned int wtcon;
19
20         wtcon = readl(&wdt->wtcon);
21         wtcon &= ~(WTCON_EN | WTCON_INT | WTCON_RESET);
22
23         writel(wtcon, &wdt->wtcon);
24 }
25
26 void wdt_start(unsigned int timeout)
27 {
28         struct s5p_watchdog *wdt =
29                 (struct s5p_watchdog *)samsung_get_base_watchdog();
30         unsigned int wtcon;
31
32         wdt_stop();
33
34         wtcon = readl(&wdt->wtcon);
35         wtcon |= (WTCON_EN | WTCON_CLK(WTCON_CLK_128));
36         wtcon &= ~WTCON_INT;
37         wtcon |= WTCON_RESET;
38         wtcon |= WTCON_PRESCALER(PRESCALER_VAL);
39
40         writel(timeout, &wdt->wtdat);
41         writel(timeout, &wdt->wtcnt);
42         writel(wtcon, &wdt->wtcon);
43 }