Sandrine Bailleux | 3cd87d7 | 2018-10-09 11:12:55 +0200 | [diff] [blame] | 1 | /* |
Madhukar Pappireddy | dd7db24 | 2021-08-05 14:14:15 -0500 | [diff] [blame] | 2 | * Copyright (c) 2018-2021, Arm Limited. All rights reserved. |
Sandrine Bailleux | 3cd87d7 | 2018-10-09 11:12:55 +0200 | [diff] [blame] | 3 | * |
| 4 | * SPDX-License-Identifier: BSD-3-Clause |
| 5 | */ |
| 6 | |
| 7 | #ifndef __SP805_H__ |
| 8 | #define __SP805_H__ |
| 9 | |
| 10 | /* SP805 register offset */ |
| 11 | #define SP805_WDOG_LOAD_OFF 0x000 |
| 12 | #define SP805_WDOG_VALUE_0FF 0x004 |
| 13 | #define SP805_WDOG_CTRL_OFF 0x008 |
| 14 | #define SP805_WDOG_INT_CLR_OFF 0x00c |
| 15 | #define SP805_WDOG_RIS_OFF 0x010 |
| 16 | #define SP805_WDOG_MIS_OFF 0x014 |
| 17 | #define SP805_WDOG_LOCK_OFF 0xc00 |
| 18 | #define SP805_WDOG_ITCR_OFF 0xf00 |
| 19 | #define SP805_WDOG_ITOP_OFF 0xf04 |
| 20 | #define SP805_WDOG_PERIPH_ID_OFF 0xfe0 |
| 21 | #define SP805_WDOG_PCELL_ID_OFF 0xff0 |
| 22 | |
| 23 | /* |
| 24 | * Magic word to unlock access to all other watchdog registers, Writing any other |
| 25 | * value locks them. |
| 26 | */ |
| 27 | #define SP805_WDOG_UNLOCK_ACCESS 0x1ACCE551 |
| 28 | |
| 29 | /* Register field definitions */ |
| 30 | #define SP805_WDOG_CTRL_MASK 0x03 |
| 31 | #define SP805_WDOG_CTRL_RESEN (1 << 1) |
| 32 | #define SP805_WDOG_CTRL_INTEN (1 << 0) |
| 33 | #define SP805_WDOG_RIS_WDOGRIS (1 << 0) |
| 34 | #define SP805_WDOG_RIS_MASK 0x1 |
| 35 | #define SP805_WDOG_MIS_WDOGMIS (1 << 0) |
| 36 | #define SP805_WDOG_MIS_MASK 0x1 |
| 37 | #define SP805_WDOG_ITCR_MASK 0x1 |
| 38 | #define SP805_WDOG_ITOP_MASK 0x3 |
| 39 | #define SP805_WDOG_PART_NUM_SHIFT 0 |
| 40 | #define SP805_WDOG_PART_NUM_MASK 0xfff |
| 41 | #define SP805_WDOG_DESIGNER_ID_SHIFT 12 |
| 42 | #define SP805_WDOG_DESIGNER_ID_MASK 0xff |
| 43 | #define SP805_WDOG_REV_SHIFT 20 |
| 44 | #define SP805_WDOG_REV_MASK 0xf |
| 45 | #define SP805_WDOG_CFG_SHIFT 24 |
| 46 | #define SP805_WDOG_CFG_MASK 0xff |
| 47 | #define SP805_WDOG_PCELL_ID_SHIFT 0 |
| 48 | #define SP805_WDOG_PCELL_ID_MASK 0xff |
| 49 | |
Madhukar Pappireddy | dd7db24 | 2021-08-05 14:14:15 -0500 | [diff] [blame] | 50 | #define ARM_SP805_TWDG_CLK_HZ 32768 |
| 51 | |
| 52 | /* Public APIs for non-trusted watchdog module. */ |
Sandrine Bailleux | 3cd87d7 | 2018-10-09 11:12:55 +0200 | [diff] [blame] | 53 | void sp805_wdog_start(unsigned int wdog_cycles); |
| 54 | void sp805_wdog_stop(void); |
| 55 | void sp805_wdog_refresh(void); |
| 56 | |
Madhukar Pappireddy | dd7db24 | 2021-08-05 14:14:15 -0500 | [diff] [blame] | 57 | /* Public APIs for trusted watchdog module. */ |
| 58 | void sp805_twdog_start(unsigned int wdog_cycles); |
| 59 | void sp805_twdog_stop(void); |
| 60 | void sp805_twdog_refresh(void); |
| 61 | |
Sandrine Bailleux | 3cd87d7 | 2018-10-09 11:12:55 +0200 | [diff] [blame] | 62 | #endif /* __SP805_H__ */ |
| 63 | |