blob: 950b4643f3e7fd428be3e13547725b1ca8aef5e9 [file] [log] [blame]
Guenter Roeckd0173272019-06-20 09:28:46 -07001/* SPDX-License-Identifier: GPL-2.0+ */
Komal Shah7768a132006-09-29 01:59:18 -07002/*
3 * linux/drivers/char/watchdog/omap_wdt.h
4 *
5 * BRIEF MODULE DESCRIPTION
6 * OMAP Watchdog timer register definitions
7 *
8 * Copyright (C) 2004 Texas Instruments.
Komal Shah7768a132006-09-29 01:59:18 -07009 */
10
11#ifndef _OMAP_WATCHDOG_H
12#define _OMAP_WATCHDOG_H
13
Felipe Balbi28171422008-09-20 04:14:01 +030014#define OMAP_WATCHDOG_REV (0x00)
15#define OMAP_WATCHDOG_SYS_CONFIG (0x10)
16#define OMAP_WATCHDOG_STATUS (0x14)
17#define OMAP_WATCHDOG_CNTRL (0x24)
18#define OMAP_WATCHDOG_CRR (0x28)
19#define OMAP_WATCHDOG_LDR (0x2c)
20#define OMAP_WATCHDOG_TGR (0x30)
21#define OMAP_WATCHDOG_WPS (0x34)
22#define OMAP_WATCHDOG_SPR (0x48)
Komal Shah7768a132006-09-29 01:59:18 -070023
24/* Using the prescaler, the OMAP watchdog could go for many
25 * months before firing. These limits work without scaling,
26 * with the 60 second default assumed by most tools and docs.
27 */
Wim Van Sebroeck5f3b2752011-02-23 20:04:38 +000028#define TIMER_MARGIN_MAX (24 * 60 * 60) /* 1 day */
Komal Shah7768a132006-09-29 01:59:18 -070029#define TIMER_MARGIN_DEFAULT 60 /* 60 secs */
30#define TIMER_MARGIN_MIN 1
31
32#define PTV 0 /* prescale */
33#define GET_WLDR_VAL(secs) (0xffffffff - ((secs) * (32768/(1<<PTV))) + 1)
Lars Poeschel452fafe2015-06-17 10:58:59 +020034#define GET_WCCR_SECS(val) ((0xffffffff - (val) + 1) / (32768/(1<<PTV)))
Komal Shah7768a132006-09-29 01:59:18 -070035
36#endif /* _OMAP_WATCHDOG_H */