xref: /optee_os/core/arch/arm/plat-stm32mp1/drivers/stm32mp1_syscfg.h (revision 43e0957ad66eef409607e885865afdb78a9121e6)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2023, STMicroelectronics
4  */
5 
6 #ifndef __DRIVERS_STM32MP1_SYSCFG_H
7 #define __DRIVERS_STM32MP1_SYSCFG_H
8 
9 /* High Speed Low Voltage domains IDs for STM32MP13 variants */
10 enum stm32mp13_hslv_id {
11 	SYSCFG_HSLV_IDX_TPIU = 0,
12 	SYSCFG_HSLV_IDX_QSPI,
13 	SYSCFG_HSLV_IDX_ETH1,
14 	SYSCFG_HSLV_IDX_ETH2,
15 	SYSCFG_HSLV_IDX_SDMMC1,
16 	SYSCFG_HSLV_IDX_SDMMC2,
17 	SYSCFG_HSLV_IDX_SPI1,
18 	SYSCFG_HSLV_IDX_SPI2,
19 	SYSCFG_HSLV_IDX_SPI3,
20 	SYSCFG_HSLV_IDX_SPI4,
21 	SYSCFG_HSLV_IDX_SPI5,
22 	SYSCFG_HSLV_IDX_LTDC,
23 	SYSCFG_HSLV_COUNT
24 };
25 
26 /* IO compensation domains IDs for STM32MP13 variants */
27 enum stm32mp13_vddsd_comp_id {
28 	SYSCFG_IO_COMP_IDX_SD1,
29 	SYSCFG_IO_COMP_IDX_SD2,
30 	SYSCFG_IO_COMP_COUNT
31 };
32 
33 #ifdef CFG_STM32MP13
34 /*
35  * Enable or disable IO compensation for a VDDSD IO domains
36  * @id: VDDSD domain ID
37  * @enable: True to enable IO compensation, false to disable
38  */
39 void stm32mp_set_vddsd_comp_state(enum stm32mp13_vddsd_comp_id id, bool enable);
40 
41 /*
42  * Enable or disable High Speed Low Voltage mode of an IO domain
43  * @index: HSLV IO domain ID
44  * @enable: True to enable IO compensation, false to disable
45  */
46 void stm32mp_set_hslv_state(enum stm32mp13_hslv_id id, bool enable);
47 #endif /*CFG_STM32MP13*/
48 
49 /* Enable High Speed Low Voltage mode for domains fixed supplied VDD */
50 void stm32mp_enable_fixed_vdd_hslv(void);
51 #endif /*__DRIVERS_STM32MP1_SYSCFG_H*/
52