xref: /aosp_15_r20/external/arm-trusted-firmware/include/drivers/arm/sp805.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef SP805_H
8*54fd6939SJiyong Park #define SP805_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #include <lib/utils_def.h>
11*54fd6939SJiyong Park 
12*54fd6939SJiyong Park /* SP805 register offset */
13*54fd6939SJiyong Park #define SP805_WDOG_LOAD_OFF		UL(0x000)
14*54fd6939SJiyong Park #define SP805_WDOG_CTR_OFF		UL(0x008)
15*54fd6939SJiyong Park #define SP805_WDOG_LOCK_OFF		UL(0xc00)
16*54fd6939SJiyong Park 
17*54fd6939SJiyong Park /* Magic word to unlock the wd registers */
18*54fd6939SJiyong Park #define WDOG_UNLOCK_KEY			U(0x1ACCE551)
19*54fd6939SJiyong Park 
20*54fd6939SJiyong Park /* Register field definitions */
21*54fd6939SJiyong Park #define SP805_CTR_RESEN			(U(1) << 1)
22*54fd6939SJiyong Park #define SP805_CTR_INTEN			(U(1) << 0)
23*54fd6939SJiyong Park 
24*54fd6939SJiyong Park #ifndef __ASSEMBLER__
25*54fd6939SJiyong Park 
26*54fd6939SJiyong Park #include <stdint.h>
27*54fd6939SJiyong Park 
28*54fd6939SJiyong Park /* Public high level API */
29*54fd6939SJiyong Park 
30*54fd6939SJiyong Park void sp805_start(uintptr_t base, unsigned int ticks);
31*54fd6939SJiyong Park void sp805_stop(uintptr_t base);
32*54fd6939SJiyong Park void sp805_refresh(uintptr_t base, unsigned int ticks);
33*54fd6939SJiyong Park 
34*54fd6939SJiyong Park #endif /* __ASSEMBLER__ */
35*54fd6939SJiyong Park 
36*54fd6939SJiyong Park #endif /* SP805_H */
37