xref: /freebsd/sys/dev/ichwd/i6300esbwd.h (revision 2b74ff5fceb6623f6114ce39baee9f6ec5f79277)
1 /*
2  * Copyright (c) 2025 The FreeBSD Foundation
3  *
4  * SPDX-License-Identifier: BSD-2-Clause
5  */
6 
7 #ifndef _I6300ESBWD_H_
8 #define _I6300ESBWD_H_
9 
10 #define WDT_CONFIG_REG	  0x60
11 #define WDT_LOCK_REG	  0x68
12 
13 #define WDT_PRELOAD_1_REG 0x00
14 #define WDT_PRELOAD_2_REG 0x04
15 #define WDT_INTR_REG	  0x08
16 #define WDT_RELOAD_REG	  0x0C
17 
18 /* For config register */
19 #define WDT_OUTPUT_EN		  (0x1 << 5)
20 #define WDT_PRE_SEL		  (0x1 << 2)
21 #define WDT_INT_TYPE_BITS	  (0x3)
22 #define WDT_INT_TYPE_IRQ_VAL	  (0x0)
23 #define WDT_INT_TYPE_RES_VAL	  (0x1)
24 #define WDT_INT_TYPE_SMI_VAL	  (0x2)
25 #define WDT_INT_TYPE_DISABLED_VAL (0x3)
26 
27 /* For lock register */
28 #define WDT_TOUT_CNF_WT_MODE (0x0 << 2)
29 #define WDT_TOUT_CNF_FR_MODE (0x1 << 2)
30 #define WDT_ENABLE	     (0x02)
31 #define WDT_LOCK	     (0x01)
32 
33 /* For preload 1/2 registers */
34 #define WDT_PRELOAD_BIT	 20
35 #define WDT_PRELOAD_BITS ((0x1 << WDT_PRELOAD_BIT) - 1)
36 
37 /* For interrupt register */
38 #define WDT_INTR_ACT (0x01 << 0)
39 
40 /* For reload register */
41 #define WDT_TIMEOUT	     (0x01 << 9)
42 #define WDT_RELOAD	     (0x01 << 8)
43 #define WDT_UNLOCK_SEQ_1_VAL 0x80
44 #define WDT_UNLOCK_SEQ_2_VAL 0x86
45 
46 #endif /* _I6300ESBWD_H_ */
47