/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Callisto CSR definitions.
 *
 * Copyright (C) 2022 Google LLC
 */

#ifndef __CALLISTO_CSRS_H__
#define __CALLISTO_CSRS_H__

#define GXP_REG_DOORBELLS_SET_WRITEMASK 0x1
#define GXP_REG_DOORBELLS_CLEAR_WRITEMASK 0x1

enum gxp_csrs {
	GXP_REG_LPM_VERSION = 0x40000,
	GXP_REG_AURORA_REVISION = 0x80000,
	GXP_REG_COMMON_INT_POL_0 = 0x81000,
	GXP_REG_COMMON_INT_POL_1 = 0x81004,
	GXP_REG_DEDICATED_INT_POL = 0x81008,
	GXP_REG_RAW_EXT_INT = 0x82000,
	GXP_REG_CORE_PD = 0x82800,
	GXP_REG_GLOBAL_COUNTER_LOW = 0x83000,
	GXP_REG_GLOBAL_COUNTER_HIGH = 0x83004,
	GXP_REG_WDOG_CONTROL = 0x86000,
	GXP_REG_WDOG_VALUE = 0x86008,
	GXP_REG_TIMER_COMPARATOR = 0x90000,
	GXP_REG_TIMER_CONTROL = 0x90004,
	GXP_REG_TIMER_VALUE = 0x90008,
	/* We borrow the 8th timer's TIMER_COMPARATOR as an indicator of MCU boot stage */
	GXP_REG_MCU_BOOT_STAGE = 0x97000,
	GXP_REG_DOORBELL_0_STATUS = 0xC0000,
	GXP_REG_DOORBELL_0_SET = 0xC0004,
	GXP_REG_DOORBELL_0_CLEAR = 0xC0008,
	GXP_REG_DOORBELL_1_STATUS = 0xC1000,
	GXP_REG_DOORBELL_1_SET = 0xC1004,
	GXP_REG_DOORBELL_1_CLEAR = 0xC1008,
	GXP_REG_SYNC_BARRIER_0 = 0x100000,
	GXP_REG_SYNC_BARRIER_0_SHADOW = 0x100800,
	GXP_REG_SYNC_BARRIER_1 = 0x101000,
	GXP_REG_SYNC_BARRIER_1_SHADOW = 0x101800,
	GXP_REG_CORE_0_INST_BPM = 0x200000,
	GXP_REG_CORE_1_INST_BPM = 0x210000,
	GXP_REG_CORE_2_INST_BPM = 0x220000,
	GXP_REG_CORE_MCU_INST_BPM = 0x280000,
	GXP_REG_CFGVECTABLE0 = 0x284000,
	GXP_REG_IREMAP_ENABLE = 0x285000,
	GXP_REG_IREMAP_LOW = 0x285004,
	GXP_REG_IREMAP_HIGH = 0x285008,
	GXP_REG_IREMAP_TARGET = 0x28500c,
};

#define GXP_REG_COMMON_INT_MASK_0_DOORBELLS_MASK 0xFFFFFFFF
#define GXP_REG_ETM_PWRCTL_CORE_RESET_SHIFT	16

/* helpers for calculating core CSRs offsets */
#define GXP_MCU_CORE_ID GXP_NUM_CORES
#define GXP_CORE_0_BASE GXP_REG_CORE_0_INST_BPM
#define GXP_CORE_SIZE (GXP_REG_CORE_1_INST_BPM - GXP_REG_CORE_0_INST_BPM)
#define GXP_CORE_REG(core, off) (GXP_CORE_0_BASE + GXP_CORE_SIZE * core + (off))
#define GXP_MCU_REG(off) (GXP_REG_CORE_MCU_INST_BPM + (off))
/* Uses @mcu_off as the offset when @core equals GXP_MCU_CORE_ID. */
#define GXP_CORE_MCU_REG(core, off, mcu_off)                                   \
	(core == GXP_MCU_CORE_ID ? GXP_MCU_REG(mcu_off) :                      \
				   GXP_CORE_REG(core, off))

/*
 * Per core CSRs.
 * @core is usually in region 0 ~ GXP_NUM_CORES-1, but can be GXP_MCU_CORE_ID if
 * the CSR also presents in the MCU CSRs.
 */
#define GXP_CORE_REG_INST_BPM(core) GXP_CORE_MCU_REG(core, 0x0, 0x0)
#define GXP_CORE_REG_PROFILING_CONDITION(core)                                 \
	GXP_CORE_MCU_REG(core, 0x4000, 0x4010)
#define GXP_CORE_REG_PROCESSOR_ID(core) GXP_CORE_REG(core, 0x4004)
#define GXP_CORE_REG_ALT_RESET_VECTOR(core) GXP_CORE_REG(core, 0x4008)
#define GXP_CORE_REG_COMMON_INT_MASK_0(core)                                   \
	GXP_CORE_MCU_REG(core, 0x4010, 0x4020)
#define GXP_CORE_REG_COMMON_INT_MASK_1(core)                                   \
	GXP_CORE_MCU_REG(core, 0x4014, 0x4024)
#define GXP_CORE_REG_DEDICATED_INT_MASK(core)                                  \
	GXP_CORE_MCU_REG(core, 0x401c, 0x4028)
#define GXP_CORE_REG_ETM_PWRCTL(core) GXP_CORE_REG(core, 0xB020)

#define SYNC_BARRIER_SHADOW_OFFSET 0x800

#define CORE_PD_BASE(_x_)	((_x_) << 2)
#define CORE_PD_COUNT		GXP_NUM_CORES

#define TIMER_BASE(_x_)		((_x_) << 12)
#define TIMER_COMPARATOR_OFFSET	0x0
#define TIMER_CONTROL_OFFSET	0x4
#define TIMER_VALUE_OFFSET	0x8
#define TIMER_COUNT		8

/* CMU offset */
#define PLL_CON0_PLL_AUR 0x100
#define PLL_CON0_NOC_USER 0x610

#define GXP_SYSREG_AUR0_SHAREABILITY 0x0
#define GXP_SYSREG_AUR1_SHAREABILITY 0x4
#define SHAREABLE_WRITE (1 << 13)
#define SHAREABLE_READ  (1 << 12)
#define INNER_SHAREABLE 1

#endif /* __CALLISTO_CSRS_H__ */
