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)39static 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