xref: /rk3399_ARM-atf/include/drivers/st/stm32mp_pmic2.h (revision 7ea6ebfbcd4f74e55b4d2bc9ee0441f65fbd920a)
1*817f42f0SPascal Paillet /*
2*817f42f0SPascal Paillet  * Copyright (c) 2024, STMicroelectronics - All Rights Reserved
3*817f42f0SPascal Paillet  *
4*817f42f0SPascal Paillet  * SPDX-License-Identifier: BSD-3-Clause
5*817f42f0SPascal Paillet  */
6*817f42f0SPascal Paillet 
7*817f42f0SPascal Paillet #ifndef STM32MP_PMIC2_H
8*817f42f0SPascal Paillet #define STM32MP_PMIC2_H
9*817f42f0SPascal Paillet 
10*817f42f0SPascal Paillet #include <stdbool.h>
11*817f42f0SPascal Paillet #include <drivers/st/regulator.h>
12*817f42f0SPascal Paillet 
13*817f42f0SPascal Paillet #include <platform_def.h>
14*817f42f0SPascal Paillet 
15*817f42f0SPascal Paillet /*
16*817f42f0SPascal Paillet  * dt_pmic_status - Check PMIC status from device tree
17*817f42f0SPascal Paillet  *
18*817f42f0SPascal Paillet  * Returns the status of the PMIC (secure, non-secure), or a negative value on
19*817f42f0SPascal Paillet  * error
20*817f42f0SPascal Paillet  */
21*817f42f0SPascal Paillet int dt_pmic_status(void);
22*817f42f0SPascal Paillet 
23*817f42f0SPascal Paillet /*
24*817f42f0SPascal Paillet  * initialize_pmic_i2c - Initialize I2C for the PMIC control
25*817f42f0SPascal Paillet  *
26*817f42f0SPascal Paillet  * Returns true if PMIC is available, false if not found, panics on errors
27*817f42f0SPascal Paillet  */
28*817f42f0SPascal Paillet bool initialize_pmic_i2c(void);
29*817f42f0SPascal Paillet 
30*817f42f0SPascal Paillet /*
31*817f42f0SPascal Paillet  * initialize_pmic - Main PMIC initialization function, called at platform init
32*817f42f0SPascal Paillet  *
33*817f42f0SPascal Paillet  * Panics on errors
34*817f42f0SPascal Paillet  */
35*817f42f0SPascal Paillet void initialize_pmic(void);
36*817f42f0SPascal Paillet 
37*817f42f0SPascal Paillet /*
38*817f42f0SPascal Paillet  * stpmic2_set_prop - Set PMIC2 proprietary property
39*817f42f0SPascal Paillet  *
40*817f42f0SPascal Paillet  * Returns non zero on errors
41*817f42f0SPascal Paillet  */
42*817f42f0SPascal Paillet int stpmic2_set_prop(const struct regul_description *desc, uint16_t prop, uint32_t value);
43*817f42f0SPascal Paillet 
44*817f42f0SPascal Paillet /*
45*817f42f0SPascal Paillet  * pmic_switch_off - switch off the platform with PMIC
46*817f42f0SPascal Paillet  *
47*817f42f0SPascal Paillet  * Panics on errors
48*817f42f0SPascal Paillet  */
49*817f42f0SPascal Paillet void pmic_switch_off(void);
50*817f42f0SPascal Paillet 
51*817f42f0SPascal Paillet #endif /* STM32MP_PMIC2_H */
52