xref: /aosp_15_r20/external/arm-trusted-firmware/include/drivers/st/stm32mp_pmic.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2017-2019, STMicroelectronics - All Rights Reserved
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef STM32MP_PMIC_H
8*54fd6939SJiyong Park #define STM32MP_PMIC_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #include <stdbool.h>
11*54fd6939SJiyong Park 
12*54fd6939SJiyong Park #include <platform_def.h>
13*54fd6939SJiyong Park 
14*54fd6939SJiyong Park /*
15*54fd6939SJiyong Park  * dt_pmic_status - Check PMIC status from device tree
16*54fd6939SJiyong Park  *
17*54fd6939SJiyong Park  * Returns the status of the PMIC (secure, non-secure), or a negative value on
18*54fd6939SJiyong Park  * error
19*54fd6939SJiyong Park  */
20*54fd6939SJiyong Park int dt_pmic_status(void);
21*54fd6939SJiyong Park 
22*54fd6939SJiyong Park /*
23*54fd6939SJiyong Park  * dt_pmic_configure_boot_on_regulators - Configure boot-on and always-on
24*54fd6939SJiyong Park  * regulators from device tree configuration
25*54fd6939SJiyong Park  *
26*54fd6939SJiyong Park  * Returns 0 on success, and negative values on errors
27*54fd6939SJiyong Park  */
28*54fd6939SJiyong Park int dt_pmic_configure_boot_on_regulators(void);
29*54fd6939SJiyong Park 
30*54fd6939SJiyong Park /*
31*54fd6939SJiyong Park  * initialize_pmic_i2c - Initialize I2C for the PMIC control
32*54fd6939SJiyong Park  *
33*54fd6939SJiyong Park  * Returns true if PMIC is available, false if not found, panics on errors
34*54fd6939SJiyong Park  */
35*54fd6939SJiyong Park bool initialize_pmic_i2c(void);
36*54fd6939SJiyong Park 
37*54fd6939SJiyong Park /*
38*54fd6939SJiyong Park  * initialize_pmic - Main PMIC initialization function, called at platform init
39*54fd6939SJiyong Park  *
40*54fd6939SJiyong Park  * Panics on errors
41*54fd6939SJiyong Park  */
42*54fd6939SJiyong Park void initialize_pmic(void);
43*54fd6939SJiyong Park 
44*54fd6939SJiyong Park /*
45*54fd6939SJiyong Park  * pmic_ddr_power_init - Initialize regulators required for DDR
46*54fd6939SJiyong Park  *
47*54fd6939SJiyong Park  * Returns 0 on success, and negative values on errors
48*54fd6939SJiyong Park  */
49*54fd6939SJiyong Park int pmic_ddr_power_init(enum ddr_type ddr_type);
50*54fd6939SJiyong Park 
51*54fd6939SJiyong Park #endif /* STM32MP_PMIC_H */
52