1 /*
2 * Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
3 *
4 * Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
5 * the the People's Republic of China and other countries.
6 * All Allwinner Technology Co.,Ltd. trademarks are used with permission.
7 *
8 * DISCLAIMER
9 * THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
10 * IF YOU NEED TO INTEGRATE THIRD PARTY’S TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
11 * IN ALLWINNERS’SDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
12 * ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
13 * ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
14 * COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
15 * YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTY’S TECHNOLOGY.
16 *
17 *
18 * THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
19 * PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
20 * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
21 * THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
22 * OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
23 * IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 * LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
30 * OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 #ifndef __PLATFORM_WDT_H__
34 #define __PLATFORM_WDT_H__
35 
36 #include "sunxi_hal_watchdog.h"
37 
38 /* Base Address */
39 #if defined(CONFIG_ARCH_SUN8IW18P1)
40 #define WDT_BASE        0x030090a0  /* @TODO */
41 #elif defined(CONFIG_ARCH_SUN8IW19)
42 #define WDT_BASE        0x030090a0  /* @TODO */
43 #elif defined(CONFIG_SOC_SUN20IW1) /* RISC-V */
44 #define WDT_BASE                0x020500A0
45 #endif
46 
47 /* watchdog register offset */
48 #define WDT_IRQ_EN              (WDT_BASE + 0x00)
49 #define WDT_STA                 (WDT_BASE + 0x04)
50 #define WDT_CTL                 (WDT_BASE + 0x10)
51 #define WDT_CFG                 (WDT_BASE + 0x14)
52 #define WDT_MODE                (WDT_BASE + 0x18)
53 //#define WDT_OUT_CFG             (WDT_BASE + 0x1C)
54 
55 //#define WDT_TIMEOUT             16
56 
57 #define WDT_CTRL_RESTART        (0x1 << 0)
58 #define WDT_CTRL_KEY            (0x0a57 << 1)
59 
60 #define WDT_CFG_RESET           (0x1)
61 #define WDT_MODE_EN             (0x1)
62 #define KEY_FIELD_MAGIC         (0x16AA0000)
63 
64 struct hal_sunxi_wdt {
65         volatile u32 irq_en;    //0x00
66         volatile u32 sta;       //0x04
67         volatile u32 rsl[2];
68         volatile u32 ctl;       //0x10
69         volatile u32 cfg;       //0x14
70         volatile u32 mode;      //0x18
71 };
72 
73 #endif /* __PLATFORM_WDT_H__ */
74