1*560293bbSAntonio Nino Diaz /* 2*560293bbSAntonio Nino Diaz * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 3*560293bbSAntonio Nino Diaz * 4*560293bbSAntonio Nino Diaz * SPDX-License-Identifier: BSD-3-Clause 5*560293bbSAntonio Nino Diaz */ 6*560293bbSAntonio Nino Diaz 7*560293bbSAntonio Nino Diaz #ifndef FVP_PWRC_H 8*560293bbSAntonio Nino Diaz #define FVP_PWRC_H 9*560293bbSAntonio Nino Diaz 10*560293bbSAntonio Nino Diaz /* FVP Power controller register offset etc */ 11*560293bbSAntonio Nino Diaz #define PPOFFR_OFF U(0x0) 12*560293bbSAntonio Nino Diaz #define PPONR_OFF U(0x4) 13*560293bbSAntonio Nino Diaz #define PCOFFR_OFF U(0x8) 14*560293bbSAntonio Nino Diaz #define PWKUPR_OFF U(0xc) 15*560293bbSAntonio Nino Diaz #define PSYSR_OFF U(0x10) 16*560293bbSAntonio Nino Diaz 17*560293bbSAntonio Nino Diaz #define PWKUPR_WEN BIT_32(31) 18*560293bbSAntonio Nino Diaz 19*560293bbSAntonio Nino Diaz #define PSYSR_AFF_L2 BIT_32(31) 20*560293bbSAntonio Nino Diaz #define PSYSR_AFF_L1 BIT_32(30) 21*560293bbSAntonio Nino Diaz #define PSYSR_AFF_L0 BIT_32(29) 22*560293bbSAntonio Nino Diaz #define PSYSR_WEN BIT_32(28) 23*560293bbSAntonio Nino Diaz #define PSYSR_PC BIT_32(27) 24*560293bbSAntonio Nino Diaz #define PSYSR_PP BIT_32(26) 25*560293bbSAntonio Nino Diaz 26*560293bbSAntonio Nino Diaz #define PSYSR_WK_SHIFT 24 27*560293bbSAntonio Nino Diaz #define PSYSR_WK_WIDTH 0x2 28*560293bbSAntonio Nino Diaz #define PSYSR_WK_MASK ((1U << PSYSR_WK_WIDTH) - 1U) 29*560293bbSAntonio Nino Diaz #define PSYSR_WK(x) ((x) >> PSYSR_WK_SHIFT) & PSYSR_WK_MASK 30*560293bbSAntonio Nino Diaz 31*560293bbSAntonio Nino Diaz #define WKUP_COLD U(0x0) 32*560293bbSAntonio Nino Diaz #define WKUP_RESET U(0x1) 33*560293bbSAntonio Nino Diaz #define WKUP_PPONR U(0x2) 34*560293bbSAntonio Nino Diaz #define WKUP_GICREQ U(0x3) 35*560293bbSAntonio Nino Diaz 36*560293bbSAntonio Nino Diaz #define PSYSR_INVALID U(0xffffffff) 37*560293bbSAntonio Nino Diaz 38*560293bbSAntonio Nino Diaz #ifndef __ASSEMBLY__ 39*560293bbSAntonio Nino Diaz 40*560293bbSAntonio Nino Diaz #include <stdint.h> 41*560293bbSAntonio Nino Diaz 42*560293bbSAntonio Nino Diaz /******************************************************************************* 43*560293bbSAntonio Nino Diaz * Function & variable prototypes 44*560293bbSAntonio Nino Diaz ******************************************************************************/ 45*560293bbSAntonio Nino Diaz void fvp_pwrc_write_pcoffr(u_register_t mpidr); 46*560293bbSAntonio Nino Diaz void fvp_pwrc_write_ppoffr(u_register_t mpidr); 47*560293bbSAntonio Nino Diaz void fvp_pwrc_write_pponr(u_register_t mpidr); 48*560293bbSAntonio Nino Diaz void fvp_pwrc_set_wen(u_register_t mpidr); 49*560293bbSAntonio Nino Diaz void fvp_pwrc_clr_wen(u_register_t mpidr); 50*560293bbSAntonio Nino Diaz unsigned int fvp_pwrc_read_psysr(u_register_t mpidr); 51*560293bbSAntonio Nino Diaz unsigned int fvp_pwrc_get_cpu_wkr(u_register_t mpidr); 52*560293bbSAntonio Nino Diaz 53*560293bbSAntonio Nino Diaz #endif /*__ASSEMBLY__*/ 54*560293bbSAntonio Nino Diaz 55*560293bbSAntonio Nino Diaz #endif /* FVP_PWRC_H */ 56