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