^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * exynos-nocp.h - Exynos NoC (Network on Chip) Probe header file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Copyright (c) 2016 Samsung Electronics Co., Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Author : Chanwoo Choi <cw00.choi@samsung.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #ifndef __EXYNOS_NOCP_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define __EXYNOS_NOCP_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) enum nocp_reg {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) NOCP_ID_REVISION_ID = 0x04,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) NOCP_MAIN_CTL = 0x08,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) NOCP_CFG_CTL = 0x0C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) NOCP_STAT_PERIOD = 0x24,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) NOCP_STAT_GO = 0x28,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) NOCP_STAT_ALARM_MIN = 0x2C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) NOCP_STAT_ALARM_MAX = 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) NOCP_STAT_ALARM_STATUS = 0x34,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) NOCP_STAT_ALARM_CLR = 0x38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) NOCP_COUNTERS_0_SRC = 0x138,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) NOCP_COUNTERS_0_ALARM_MODE = 0x13C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) NOCP_COUNTERS_0_VAL = 0x140,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) NOCP_COUNTERS_1_SRC = 0x14C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) NOCP_COUNTERS_1_ALARM_MODE = 0x150,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) NOCP_COUNTERS_1_VAL = 0x154,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) NOCP_COUNTERS_2_SRC = 0x160,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) NOCP_COUNTERS_2_ALARM_MODE = 0x164,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) NOCP_COUNTERS_2_VAL = 0x168,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) NOCP_COUNTERS_3_SRC = 0x174,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) NOCP_COUNTERS_3_ALARM_MODE = 0x178,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) NOCP_COUNTERS_3_VAL = 0x17C,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) /* NOCP_MAIN_CTL register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define NOCP_MAIN_CTL_ERREN_MASK BIT(0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define NOCP_MAIN_CTL_TRACEEN_MASK BIT(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define NOCP_MAIN_CTL_PAYLOADEN_MASK BIT(2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define NOCP_MAIN_CTL_STATEN_MASK BIT(3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define NOCP_MAIN_CTL_ALARMEN_MASK BIT(4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define NOCP_MAIN_CTL_STATCONDDUMP_MASK BIT(5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define NOCP_MAIN_CTL_INTRUSIVEMODE_MASK BIT(6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) /* NOCP_CFG_CTL register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define NOCP_CFG_CTL_GLOBALEN_MASK BIT(0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define NOCP_CFG_CTL_ACTIVE_MASK BIT(1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) /* NOCP_COUNTERS_x_SRC register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define NOCP_CNT_SRC_INTEVENT_SHIFT 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define NOCP_CNT_SRC_INTEVENT_MASK (0x1F << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define NOCP_CNT_SRC_INTEVENT_OFF_MASK (0x0 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define NOCP_CNT_SRC_INTEVENT_CYCLE_MASK (0x1 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #define NOCP_CNT_SRC_INTEVENT_IDLE_MASK (0x2 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #define NOCP_CNT_SRC_INTEVENT_XFER_MASK (0x3 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #define NOCP_CNT_SRC_INTEVENT_BUSY_MASK (0x4 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #define NOCP_CNT_SRC_INTEVENT_WAIT_MASK (0x5 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define NOCP_CNT_SRC_INTEVENT_PKT_MASK (0x6 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define NOCP_CNT_SRC_INTEVENT_BYTE_MASK (0x8 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define NOCP_CNT_SRC_INTEVENT_CHAIN_MASK (0x10 << NOCP_CNT_SRC_INTEVENT_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) /* NOCP_COUNTERS_x_ALARM_MODE register */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #define NOCP_CNT_ALARM_MODE_SHIFT 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define NOCP_CNT_ALARM_MODE_MASK (0x3 << NOCP_CNT_ALARM_MODE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #define NOCP_CNT_ALARM_MODE_OFF_MASK (0x0 << NOCP_CNT_ALARM_MODE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #define NOCP_CNT_ALARM_MODE_MIN_MASK (0x1 << NOCP_CNT_ALARM_MODE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #define NOCP_CNT_ALARM_MODE_MAX_MASK (0x2 << NOCP_CNT_ALARM_MODE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #define NOCP_CNT_ALARM_MODE_MIN_MAX_MASK (0x3 << NOCP_CNT_ALARM_MODE_SHIFT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #endif /* __EXYNOS_NOCP_H__ */