1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2018-2022, STMicroelectronics - All Rights Reserved 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef STM32MP1_CLK_H 8*91f16700Schasinglulu #define STM32MP1_CLK_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <arch_helpers.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu enum stm32mp_osc_id { 13*91f16700Schasinglulu _HSI, 14*91f16700Schasinglulu _HSE, 15*91f16700Schasinglulu _CSI, 16*91f16700Schasinglulu _LSI, 17*91f16700Schasinglulu _LSE, 18*91f16700Schasinglulu _I2S_CKIN, 19*91f16700Schasinglulu NB_OSC, 20*91f16700Schasinglulu _UNKNOWN_OSC_ID = 0xFF 21*91f16700Schasinglulu }; 22*91f16700Schasinglulu 23*91f16700Schasinglulu extern const char *stm32mp_osc_node_label[NB_OSC]; 24*91f16700Schasinglulu 25*91f16700Schasinglulu int stm32mp1_clk_probe(void); 26*91f16700Schasinglulu int stm32mp1_clk_init(void); 27*91f16700Schasinglulu 28*91f16700Schasinglulu bool stm32mp1_rcc_is_secure(void); 29*91f16700Schasinglulu bool stm32mp1_rcc_is_mckprot(void); 30*91f16700Schasinglulu 31*91f16700Schasinglulu /* SMP protection on RCC registers access */ 32*91f16700Schasinglulu void stm32mp1_clk_rcc_regs_lock(void); 33*91f16700Schasinglulu void stm32mp1_clk_rcc_regs_unlock(void); 34*91f16700Schasinglulu 35*91f16700Schasinglulu #ifdef STM32MP_SHARED_RESOURCES 36*91f16700Schasinglulu void stm32mp1_register_clock_parents_secure(unsigned long id); 37*91f16700Schasinglulu #endif 38*91f16700Schasinglulu #endif /* STM32MP1_CLK_H */ 39