1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * [origin: Linux kernel arch/arm/mach-at91/include/mach/at91_wdt.h] 4 * 5 * Copyright (C) 2008 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> 6 * Copyright (C) 2007 Andrew Victor 7 * Copyright (C) 2018 Microchip Technology Inc. 8 * 9 * Watchdog Timer (WDT) - System peripherals regsters. 10 * Based on AT91SAM9261 datasheet revision D. 11 */ 12 13 #ifndef AT91_WDT_H 14 #define AT91_WDT_H 15 16 #ifdef __ASSEMBLY__ 17 18 #define AT91_ASM_WDT_MR (ATMEL_BASE_WDT + 0x04) 19 20 #else 21 22 typedef struct at91_wdt { 23 u32 cr; 24 u32 mr; 25 u32 sr; 26 } at91_wdt_t; 27 28 struct at91_wdt_priv { 29 void __iomem *regs; 30 u32 regval; 31 }; 32 33 #endif 34 35 /* Watchdog Control Register */ 36 #define AT91_WDT_CR 0x00 37 #define AT91_WDT_CR_WDRSTT 1 38 #define AT91_WDT_CR_KEY 0xa5000000 /* KEY Password */ 39 40 /* Watchdog Mode Register*/ 41 #define AT91_WDT_MR 0X04 42 #define AT91_WDT_MR_WDV(x) (x & 0xfff) 43 #define AT91_WDT_MR_WDFIEN 0x00001000 44 #define AT91_WDT_MR_WDRSTEN 0x00002000 45 #define AT91_WDT_MR_WDRPROC 0x00004000 46 #define AT91_WDT_MR_WDDIS 0x00008000 47 #define AT91_WDT_MR_WDD(x) ((x & 0xfff) << 16) 48 #define AT91_WDT_MR_WDDBGHLT 0x10000000 49 #define AT91_WDT_MR_WDIDLEHLT 0x20000000 50 51 /* Hardware timeout in seconds */ 52 #define WDT_MAX_TIMEOUT 16 53 54 #endif 55