| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- // SPDX-License-Identifier: GPL-2.0+
 
- /*
 
-  * Copyright (C) 2012 Samsung Electronics
 
-  * Minkyu Kang <mk7.kang@samsung.com>
 
-  */
 
- #include <common.h>
 
- #include <asm/io.h>
 
- #include <asm/arch/watchdog.h>
 
- #define PRESCALER_VAL 255
 
- void wdt_stop(void)
 
- {
 
- 	struct s5p_watchdog *wdt =
 
- 		(struct s5p_watchdog *)samsung_get_base_watchdog();
 
- 	unsigned int wtcon;
 
- 	wtcon = readl(&wdt->wtcon);
 
- 	wtcon &= ~(WTCON_EN | WTCON_INT | WTCON_RESET);
 
- 	writel(wtcon, &wdt->wtcon);
 
- }
 
- void wdt_start(unsigned int timeout)
 
- {
 
- 	struct s5p_watchdog *wdt =
 
- 		(struct s5p_watchdog *)samsung_get_base_watchdog();
 
- 	unsigned int wtcon;
 
- 	wdt_stop();
 
- 	wtcon = readl(&wdt->wtcon);
 
- 	wtcon |= (WTCON_EN | WTCON_CLK(WTCON_CLK_128));
 
- 	wtcon &= ~WTCON_INT;
 
- 	wtcon |= WTCON_RESET;
 
- 	wtcon |= WTCON_PRESCALER(PRESCALER_VAL);
 
- 	writel(timeout, &wdt->wtdat);
 
- 	writel(timeout, &wdt->wtcnt);
 
- 	writel(wtcon, &wdt->wtcon);
 
- }
 
 
  |