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