1 /*
2  * Copyright (c) 2017-2022, STMicroelectronics - All Rights Reserved
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef STM32MP_PMIC_H
8 #define STM32MP_PMIC_H
9 
10 #include <stdbool.h>
11 
12 #include <platform_def.h>
13 
14 /*
15  * dt_pmic_status - Check PMIC status from device tree
16  *
17  * Returns the status of the PMIC (secure, non-secure), or a negative value on
18  * error
19  */
20 int dt_pmic_status(void);
21 
22 /*
23  * initialize_pmic_i2c - Initialize I2C for the PMIC control
24  *
25  * Returns true if PMIC is available, false if not found, panics on errors
26  */
27 bool initialize_pmic_i2c(void);
28 
29 /*
30  * initialize_pmic - Main PMIC initialization function, called at platform init
31  *
32  * Panics on errors
33  */
34 void initialize_pmic(void);
35 
36 #if DEBUG
37 void print_pmic_info_and_debug(void);
38 #else
print_pmic_info_and_debug(void)39 static inline void print_pmic_info_and_debug(void)
40 {
41 }
42 #endif
43 
44 /*
45  * pmic_ddr_power_init - Initialize regulators required for DDR
46  *
47  * Returns 0 on success, and negative values on errors
48  */
49 int pmic_ddr_power_init(enum ddr_type ddr_type);
50 
51 /*
52  * pmic_voltages_init - Update voltages for platform init
53  *
54  * Returns 0 on success, and negative values on errors
55  */
56 int pmic_voltages_init(void);
57 
58 #endif /* STM32MP_PMIC_H */
59