xref: /optee_os/core/include/drivers/stm32_cpu_opp.h (revision 155ebf230015659f32d01c1e67dc52daca5a1e94)
1*155ebf23SPascal Paillet /* SPDX-License-Identifier: BSD-2-Clause */
2*155ebf23SPascal Paillet /*
3*155ebf23SPascal Paillet  * Copyright (c) 2022-2024, STMicroelectronics
4*155ebf23SPascal Paillet  */
5*155ebf23SPascal Paillet 
6*155ebf23SPascal Paillet #ifndef DRIVERS_STM32_CPU_OPP_H
7*155ebf23SPascal Paillet #define DRIVERS_STM32_CPU_OPP_H
8*155ebf23SPascal Paillet 
9*155ebf23SPascal Paillet #include <tee_api_types.h>
10*155ebf23SPascal Paillet 
11*155ebf23SPascal Paillet /* Get the actual number of CPU operating points */
12*155ebf23SPascal Paillet unsigned int stm32_cpu_opp_count(void);
13*155ebf23SPascal Paillet 
14*155ebf23SPascal Paillet /* Get sustained frequency level */
15*155ebf23SPascal Paillet unsigned int stm32_cpu_opp_sustained_level(void);
16*155ebf23SPascal Paillet 
17*155ebf23SPascal Paillet /* Get level value identifying CPU operating point @opp_index */
18*155ebf23SPascal Paillet unsigned int stm32_cpu_opp_level(unsigned int opp);
19*155ebf23SPascal Paillet 
20*155ebf23SPascal Paillet /* Request to switch to CPU operating point related to @level */
21*155ebf23SPascal Paillet TEE_Result stm32_cpu_opp_set_level(unsigned int level);
22*155ebf23SPascal Paillet 
23*155ebf23SPascal Paillet /* Get level (Freq KHz) related to current CPU operating point */
24*155ebf23SPascal Paillet TEE_Result stm32_cpu_opp_read_level(unsigned int *level);
25*155ebf23SPascal Paillet 
26*155ebf23SPascal Paillet #endif /*DRIVERS_STM32_CPU_OPP_H*/
27