1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * omap_wdt.h 4 * 5 * OMAP Watchdog header file 6 * 7 * Copyright (C) 2011, Texas Instruments, Incorporated - http://www.ti.com/ 8 */ 9 10 #ifndef __OMAP_WDT_H__ 11 #define __OMAP_WDT_H__ 12 13 #ifndef __ASSEMBLY__ 14 #include <linux/bitops.h> 15 #endif 16 17 /* 18 * Watchdog: 19 * Using the prescaler, the OMAP watchdog could go for many 20 * months before firing. These limits work without scaling, 21 * with the 60 second default assumed by most tools and docs. 22 */ 23 #define TIMER_MARGIN_MAX (24 * 60 * 60) /* 1 day */ 24 #define TIMER_MARGIN_DEFAULT 60 /* 60 secs */ 25 #define TIMER_MARGIN_MIN 1 26 27 #define PTV 0 /* prescale */ 28 #define GET_WLDR_VAL(secs) (0xffffffff - ((secs) * (32768/(1<<PTV))) + 1) 29 #define WDT_WWPS_PEND_WCLR BIT(0) 30 #define WDT_WWPS_PEND_WLDR BIT(2) 31 #define WDT_WWPS_PEND_WTGR BIT(3) 32 #define WDT_WWPS_PEND_WSPR BIT(4) 33 34 #define WDT_WCLR_PRE BIT(5) 35 #define WDT_WCLR_PTV_OFF 2 36 37 /* Watchdog timer registers */ 38 struct wd_timer { 39 unsigned int resv1[4]; 40 unsigned int wdtwdsc; /* offset 0x010 */ 41 unsigned int wdtwdst; /* offset 0x014 */ 42 unsigned int wdtwisr; /* offset 0x018 */ 43 unsigned int wdtwier; /* offset 0x01C */ 44 unsigned int wdtwwer; /* offset 0x020 */ 45 unsigned int wdtwclr; /* offset 0x024 */ 46 unsigned int wdtwcrr; /* offset 0x028 */ 47 unsigned int wdtwldr; /* offset 0x02C */ 48 unsigned int wdtwtgr; /* offset 0x030 */ 49 unsigned int wdtwwps; /* offset 0x034 */ 50 unsigned int resv2[3]; 51 unsigned int wdtwdly; /* offset 0x044 */ 52 unsigned int wdtwspr; /* offset 0x048 */ 53 unsigned int resv3[1]; 54 unsigned int wdtwqeoi; /* offset 0x050 */ 55 unsigned int wdtwqstar; /* offset 0x054 */ 56 unsigned int wdtwqsta; /* offset 0x058 */ 57 unsigned int wdtwqens; /* offset 0x05C */ 58 unsigned int wdtwqenc; /* offset 0x060 */ 59 unsigned int resv4[39]; 60 unsigned int wdt_unfr; /* offset 0x100 */ 61 }; 62 63 struct omap3_wdt_priv { 64 struct wd_timer *regs; 65 unsigned int wdt_trgr_pattern; 66 }; 67 68 #endif /* __OMAP_WDT_H__ */ 69