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 22typedef struct at91_wdt { 23 u32 cr; 24 u32 mr; 25 u32 sr; 26} at91_wdt_t; 27 28struct 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