xref: /arm-trusted-firmware/include/drivers/st/stm32mp_clkfunc.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2017-2022, STMicroelectronics - All Rights Reserved
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef STM32MP_CLKFUNC_H
8*91f16700Schasinglulu #define STM32MP_CLKFUNC_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stdbool.h>
11*91f16700Schasinglulu 
12*91f16700Schasinglulu #include <libfdt.h>
13*91f16700Schasinglulu 
14*91f16700Schasinglulu #include <platform_def.h>
15*91f16700Schasinglulu 
16*91f16700Schasinglulu int fdt_osc_read_freq(const char *name, uint32_t *freq);
17*91f16700Schasinglulu bool fdt_clk_read_bool(const char *node_label, const char *prop_name);
18*91f16700Schasinglulu uint32_t fdt_clk_read_uint32_default(const char *node_label,
19*91f16700Schasinglulu 				     const char *prop_name,
20*91f16700Schasinglulu 				     uint32_t dflt_value);
21*91f16700Schasinglulu 
22*91f16700Schasinglulu int fdt_rcc_read_uint32_array(const char *prop_name, uint32_t count,
23*91f16700Schasinglulu 			      uint32_t *array);
24*91f16700Schasinglulu int fdt_rcc_subnode_offset(const char *name);
25*91f16700Schasinglulu const fdt32_t *fdt_rcc_read_prop(const char *prop_name, int *lenp);
26*91f16700Schasinglulu bool fdt_get_rcc_secure_state(void);
27*91f16700Schasinglulu 
28*91f16700Schasinglulu int fdt_get_clock_id(int node);
29*91f16700Schasinglulu unsigned long fdt_get_uart_clock_freq(uintptr_t instance);
30*91f16700Schasinglulu 
31*91f16700Schasinglulu void stm32mp_stgen_config(unsigned long rate);
32*91f16700Schasinglulu void stm32mp_stgen_restore_counter(unsigned long long value,
33*91f16700Schasinglulu 				   unsigned long long offset_in_ms);
34*91f16700Schasinglulu unsigned long long stm32mp_stgen_get_counter(void);
35*91f16700Schasinglulu 
36*91f16700Schasinglulu #endif /* STM32MP_CLKFUNC_H */
37