xref: /rk3399_ARM-atf/include/drivers/st/stm32mp_pmic.h (revision ae7792e0583f83adc06eb3b14693539e95110490)
123684d0eSYann Gautier /*
2*ae7792e0SNicolas Le Bayon  * Copyright (c) 2017-2021, STMicroelectronics - All Rights Reserved
323684d0eSYann Gautier  *
423684d0eSYann Gautier  * SPDX-License-Identifier: BSD-3-Clause
523684d0eSYann Gautier  */
623684d0eSYann Gautier 
723684d0eSYann Gautier #ifndef STM32MP_PMIC_H
823684d0eSYann Gautier #define STM32MP_PMIC_H
923684d0eSYann Gautier 
1023684d0eSYann Gautier #include <stdbool.h>
1123684d0eSYann Gautier 
1223684d0eSYann Gautier #include <platform_def.h>
1323684d0eSYann Gautier 
14d82d4ff0SYann Gautier /*
15d82d4ff0SYann Gautier  * dt_pmic_status - Check PMIC status from device tree
16d82d4ff0SYann Gautier  *
17d82d4ff0SYann Gautier  * Returns the status of the PMIC (secure, non-secure), or a negative value on
18d82d4ff0SYann Gautier  * error
19d82d4ff0SYann Gautier  */
20d82d4ff0SYann Gautier int dt_pmic_status(void);
21d82d4ff0SYann Gautier 
22d82d4ff0SYann Gautier /*
23d82d4ff0SYann Gautier  * dt_pmic_configure_boot_on_regulators - Configure boot-on and always-on
24d82d4ff0SYann Gautier  * regulators from device tree configuration
25d82d4ff0SYann Gautier  *
26d82d4ff0SYann Gautier  * Returns 0 on success, and negative values on errors
27d82d4ff0SYann Gautier  */
28d82d4ff0SYann Gautier int dt_pmic_configure_boot_on_regulators(void);
29d82d4ff0SYann Gautier 
30d82d4ff0SYann Gautier /*
31d82d4ff0SYann Gautier  * initialize_pmic_i2c - Initialize I2C for the PMIC control
32d82d4ff0SYann Gautier  *
33d82d4ff0SYann Gautier  * Returns true if PMIC is available, false if not found, panics on errors
34d82d4ff0SYann Gautier  */
35d82d4ff0SYann Gautier bool initialize_pmic_i2c(void);
36d82d4ff0SYann Gautier 
37d82d4ff0SYann Gautier /*
38d82d4ff0SYann Gautier  * initialize_pmic - Main PMIC initialization function, called at platform init
39d82d4ff0SYann Gautier  *
40d82d4ff0SYann Gautier  * Panics on errors
41d82d4ff0SYann Gautier  */
4223684d0eSYann Gautier void initialize_pmic(void);
43d82d4ff0SYann Gautier 
44*ae7792e0SNicolas Le Bayon #if DEBUG
45*ae7792e0SNicolas Le Bayon void print_pmic_info_and_debug(void);
46*ae7792e0SNicolas Le Bayon #else
47*ae7792e0SNicolas Le Bayon static inline void print_pmic_info_and_debug(void)
48*ae7792e0SNicolas Le Bayon {
49*ae7792e0SNicolas Le Bayon }
50*ae7792e0SNicolas Le Bayon #endif
51*ae7792e0SNicolas Le Bayon 
52d82d4ff0SYann Gautier /*
53d82d4ff0SYann Gautier  * pmic_ddr_power_init - Initialize regulators required for DDR
54d82d4ff0SYann Gautier  *
55d82d4ff0SYann Gautier  * Returns 0 on success, and negative values on errors
56d82d4ff0SYann Gautier  */
5723684d0eSYann Gautier int pmic_ddr_power_init(enum ddr_type ddr_type);
5823684d0eSYann Gautier 
5923684d0eSYann Gautier #endif /* STM32MP_PMIC_H */
60