xref: /openbmc/u-boot/arch/arm/include/asm/arch-sunxi/watchdog.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
22b679f9fSChen-Yu Tsai /*
32b679f9fSChen-Yu Tsai  * (C) Copyright 2014
42b679f9fSChen-Yu Tsai  * Chen-Yu Tsai <wens@csie.org>
52b679f9fSChen-Yu Tsai  *
62b679f9fSChen-Yu Tsai  * Watchdog register definitions
72b679f9fSChen-Yu Tsai  */
82b679f9fSChen-Yu Tsai 
92b679f9fSChen-Yu Tsai #ifndef _SUNXI_WATCHDOG_H_
102b679f9fSChen-Yu Tsai #define _SUNXI_WATCHDOG_H_
112b679f9fSChen-Yu Tsai 
122b679f9fSChen-Yu Tsai #define WDT_CTRL_RESTART	(0x1 << 0)
132b679f9fSChen-Yu Tsai #define WDT_CTRL_KEY		(0x0a57 << 1)
1478c396a1SChen-Yu Tsai 
156c7ae2bfSChen-Yu Tsai #if defined(CONFIG_MACH_SUN4I) || \
166c7ae2bfSChen-Yu Tsai     defined(CONFIG_MACH_SUN5I) || \
176c7ae2bfSChen-Yu Tsai     defined(CONFIG_MACH_SUN7I) || \
186c7ae2bfSChen-Yu Tsai     defined(CONFIG_MACH_SUN8I_R40)
1978c396a1SChen-Yu Tsai 
202b679f9fSChen-Yu Tsai #define WDT_MODE_EN		(0x1 << 0)
212b679f9fSChen-Yu Tsai #define WDT_MODE_RESET_EN	(0x1 << 1)
222b679f9fSChen-Yu Tsai 
232b679f9fSChen-Yu Tsai struct sunxi_wdog {
242b679f9fSChen-Yu Tsai 	u32 ctl;		/* 0x00 */
252b679f9fSChen-Yu Tsai 	u32 mode;		/* 0x04 */
262b679f9fSChen-Yu Tsai 	u32 res[2];
272b679f9fSChen-Yu Tsai };
282b679f9fSChen-Yu Tsai 
2978c396a1SChen-Yu Tsai #else
3078c396a1SChen-Yu Tsai 
3178c396a1SChen-Yu Tsai #define WDT_CFG_RESET		(0x1)
3278c396a1SChen-Yu Tsai #define WDT_MODE_EN		(0x1)
3378c396a1SChen-Yu Tsai 
3478c396a1SChen-Yu Tsai struct sunxi_wdog {
3578c396a1SChen-Yu Tsai 	u32 irq_en;		/* 0x00 */
3678c396a1SChen-Yu Tsai 	u32 irq_sta;		/* 0x04 */
3778c396a1SChen-Yu Tsai 	u32 res1[2];
3878c396a1SChen-Yu Tsai 	u32 ctl;		/* 0x10 */
3978c396a1SChen-Yu Tsai 	u32 cfg;		/* 0x14 */
4078c396a1SChen-Yu Tsai 	u32 mode;		/* 0x18 */
4178c396a1SChen-Yu Tsai 	u32 res2;
4278c396a1SChen-Yu Tsai };
4378c396a1SChen-Yu Tsai 
4478c396a1SChen-Yu Tsai #endif
4578c396a1SChen-Yu Tsai 
462b679f9fSChen-Yu Tsai #endif /* _SUNXI_WATCHDOG_H_ */
47