1 /* 2 * Copyright (c) 2018-2025, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef DSU_DEF_H 8 #define DSU_DEF_H 9 10 #include <lib/utils_def.h> 11 12 /******************************************************************** 13 * DSU Cluster Configuration registers definitions 14 ********************************************************************/ 15 #define CLUSTERCFR_EL1 S3_0_C15_C3_0 16 17 #define CLUSTERCFR_ACP_SHIFT U(11) 18 19 /******************************************************************** 20 * DSU Cluster Main Revision ID registers definitions 21 ********************************************************************/ 22 #define CLUSTERIDR_EL1 S3_0_C15_C3_1 23 24 #define CLUSTERIDR_REV_SHIFT U(0) 25 #define CLUSTERIDR_REV_BITS U(4) 26 #define CLUSTERIDR_VAR_SHIFT U(4) 27 #define CLUSTERIDR_VAR_BITS U(4) 28 29 /******************************************************************** 30 * DSU Cluster Auxiliary Control registers definitions 31 ********************************************************************/ 32 #define CLUSTERACTLR_EL1 S3_0_C15_C3_3 33 #define CLUSTERPWRCTLR_EL1 S3_0_C15_C3_5 34 35 #define CLUSTERACTLR_EL1_DISABLE_CLOCK_GATING (ULL(1) << 15) 36 #define CLUSTERACTLR_EL1_DISABLE_SCLK_GATING (ULL(3) << 15) 37 38 /******************************************************************** 39 * Masks applied for DSU errata workarounds 40 ********************************************************************/ 41 #define DSU_ERRATA_936184_MASK (U(0x3) << 15) 42 43 #define CPUCFR_EL1 S3_0_C15_C0_0 44 /* SCU bit of CPU Configuration Register, EL1 */ 45 #define SCU_SHIFT U(2) 46 47 #ifndef __ASSEMBLER__ 48 DEFINE_RENAME_SYSREG_RW_FUNCS(clusterpwrctlr_el1, CLUSTERPWRCTLR_EL1); 49 50 /* --------------------------------------------- 51 * controls power features of the cluster 52 * 1. Cache portion power not request 53 * 2. Disable the retention circuit 54 * --------------------------------------------- 55 */ 56 static inline void dsu_pwr_dwn(void) 57 { 58 write_clusterpwrctlr_el1(0); 59 isb(); 60 } 61 #endif 62 #endif /* DSU_DEF_H */ 63