17839a050SYann Gautier /* 2*77b4ca0bSLionel Debieve * Copyright (c) 2018-2024, STMicroelectronics - All Rights Reserved 37839a050SYann Gautier * 47839a050SYann Gautier * SPDX-License-Identifier: BSD-3-Clause 57839a050SYann Gautier */ 67839a050SYann Gautier 7c3cf06f1SAntonio Nino Diaz #ifndef STM32MP1_CLK_H 8c3cf06f1SAntonio Nino Diaz #define STM32MP1_CLK_H 97839a050SYann Gautier 1009d40e0eSAntonio Nino Diaz #include <arch_helpers.h> 1109d40e0eSAntonio Nino Diaz 12f66358afSYann Gautier enum stm32mp_osc_id { 13f66358afSYann Gautier _HSI, 14f66358afSYann Gautier _HSE, 15f66358afSYann Gautier _CSI, 16f66358afSYann Gautier _LSI, 17f66358afSYann Gautier _LSE, 18f66358afSYann Gautier _I2S_CKIN, 19f66358afSYann Gautier NB_OSC, 20f66358afSYann Gautier _UNKNOWN_OSC_ID = 0xFF 21f66358afSYann Gautier }; 22f66358afSYann Gautier 23f66358afSYann Gautier extern const char *stm32mp_osc_node_label[NB_OSC]; 24f66358afSYann Gautier 257839a050SYann Gautier int stm32mp1_clk_probe(void); 267839a050SYann Gautier int stm32mp1_clk_init(void); 270d21680cSYann Gautier 280d21680cSYann Gautier bool stm32mp1_rcc_is_secure(void); 29b053a22eSYann Gautier bool stm32mp1_rcc_is_mckprot(void); 300d21680cSYann Gautier 310d21680cSYann Gautier /* SMP protection on RCC registers access */ 320d21680cSYann Gautier void stm32mp1_clk_rcc_regs_lock(void); 330d21680cSYann Gautier void stm32mp1_clk_rcc_regs_unlock(void); 340d21680cSYann Gautier 35*77b4ca0bSLionel Debieve void stm32mp1_clk_mcuss_protect(bool enable); 36*77b4ca0bSLionel Debieve 3737e8295aSEtienne Carriere #ifdef STM32MP_SHARED_RESOURCES 3837e8295aSEtienne Carriere void stm32mp1_register_clock_parents_secure(unsigned long id); 3937e8295aSEtienne Carriere #endif 40c3cf06f1SAntonio Nino Diaz #endif /* STM32MP1_CLK_H */ 41