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