2 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
11 /* Inline register access functions */
13 static inline void sp805_write_wdog_load(uintptr_t base
, uint32_t value
)
15 mmio_write_32(base
+ SP805_WDOG_LOAD_OFF
, value
);
18 static inline void sp805_write_wdog_ctrl(uintptr_t base
, uint32_t value
)
20 mmio_write_32(base
+ SP805_WDOG_CTR_OFF
, value
);
23 static inline void sp805_write_wdog_lock(uintptr_t base
, uint32_t value
)
25 mmio_write_32(base
+ SP805_WDOG_LOCK_OFF
, value
);
29 /* Public API implementation */
31 void sp805_start(uintptr_t base
, unsigned int ticks
)
33 sp805_write_wdog_load(base
, ticks
);
34 sp805_write_wdog_ctrl(base
, SP805_CTR_RESEN
| SP805_CTR_INTEN
);
35 /* Lock registers access */
36 sp805_write_wdog_lock(base
, 0U);
39 void sp805_stop(uintptr_t base
)
41 sp805_write_wdog_lock(base
, WDOG_UNLOCK_KEY
);
42 sp805_write_wdog_ctrl(base
, 0U);
45 void sp805_refresh(uintptr_t base
, unsigned int ticks
)
47 sp805_write_wdog_lock(base
, WDOG_UNLOCK_KEY
);
48 sp805_write_wdog_load(base
, ticks
);
49 sp805_write_wdog_lock(base
, 0U);