xref: /rk3399_ARM-atf/include/drivers/st/stm32mp1_clk.h (revision 048783205025799612103f5c5cfd4d53df81156d)
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