Lines Matching +full:timer +full:- +full:watchdog

2  * Watchdog driver for SiByte SB1 SoCs
16 * It is a simple timer, and there is an interrupt that is raised the
17 * first time the timer expires. The second time it expires, the chip
26 * The timer takes 23 bits of a 64 bit register (?) as a count value,
30 * This watchdog borrows some user semantics from the softdog driver,
31 * in that if you close the fd, it leaves the watchdog running, unless
33 * the watchdog when you close the fd like some other drivers.
35 * Based on various other watchdog drivers, which are probably all
55 #include <linux/watchdog.h>
66 * set the initial count value of a timer
74 __raw_writeq(t & 0x7fffffUL, wdog - 0x10); in sbwdog_set()
79 * cause the timer to [re]load it's initial count and start counting
100 .identity = "SiByte Watchdog",
110 return -EBUSY; in sbwdog_open()
114 * Activate the timer in sbwdog_open()
131 pr_crit("%s: Unexpected close, not stopping watchdog!\n", in sbwdog_release()
142 * 42 - the answer
151 * restart the timer in sbwdog_write()
159 return -EFAULT; in sbwdog_write()
172 int ret = -ENOTTY; in sbwdog_ioctl()
179 ret = copy_to_user(argp, &ident, sizeof(ident)) ? -EFAULT : 0; in sbwdog_ioctl()
199 ret = -EINVAL; in sbwdog_ioctl()
212 ret = put_user((u32)__raw_readq(user_dog - 8) / 1000000, p); in sbwdog_ioctl()
246 .name = "watchdog",
258 * code can use it to re-up the watchdog, thereby saving the kernel from
259 * having to create and maintain a timer, just to tickle another timer,
269 wd_init = __raw_readq(wd_cfg_reg - 8) & 0x7fffff; in sbwdog_interrupt()
272 * if it's the second watchdog timer, it's for those users in sbwdog_interrupt()
308 pr_err("%s: failed to request irq 1 - %d\n", in sbwdog_init()
338 MODULE_DESCRIPTION("SiByte Watchdog");
342 "Watchdog timeout in microseconds (max/default 8388607 or 8.3ish secs)");
348 * first watchdog timer for the kernels own purpose.
355 "Kernel Watchdog", IOADDR(A_SCD_WDOG_CFG_0));
357 pr_crit("Watchdog IRQ zero(0) failed to be requested - %d\n", ret);