2 * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
7 #include <lib/bakery_lock.h>
12 #include "../../fvp_def.h"
13 #include "../../fvp_private.h"
17 * TODO: Someday there will be a generic power controller api. At the moment
18 * each platform has its own pwrc so just exporting functions is fine.
22 unsigned int fvp_pwrc_get_cpu_wkr(u_register_t mpidr
)
24 return PSYSR_WK(fvp_pwrc_read_psysr(mpidr
));
27 unsigned int fvp_pwrc_read_psysr(u_register_t mpidr
)
31 mmio_write_32(PWRC_BASE
+ PSYSR_OFF
, (unsigned int) mpidr
);
32 rc
= mmio_read_32(PWRC_BASE
+ PSYSR_OFF
);
37 void fvp_pwrc_write_pponr(u_register_t mpidr
)
40 mmio_write_32(PWRC_BASE
+ PPONR_OFF
, (unsigned int) mpidr
);
44 void fvp_pwrc_write_ppoffr(u_register_t mpidr
)
47 mmio_write_32(PWRC_BASE
+ PPOFFR_OFF
, (unsigned int) mpidr
);
51 void fvp_pwrc_set_wen(u_register_t mpidr
)
54 mmio_write_32(PWRC_BASE
+ PWKUPR_OFF
,
55 (unsigned int) (PWKUPR_WEN
| mpidr
));
59 void fvp_pwrc_clr_wen(u_register_t mpidr
)
62 mmio_write_32(PWRC_BASE
+ PWKUPR_OFF
,
63 (unsigned int) mpidr
);
67 void fvp_pwrc_write_pcoffr(u_register_t mpidr
)
70 mmio_write_32(PWRC_BASE
+ PCOFFR_OFF
, (unsigned int) mpidr
);
74 /* Nothing else to do here apart from initializing the lock */
75 void __init
plat_arm_pwrc_setup(void)