1*817f42f0SPascal Paillet /* 2*817f42f0SPascal Paillet * Copyright (c) 2024, STMicroelectronics - All Rights Reserved 3*817f42f0SPascal Paillet * 4*817f42f0SPascal Paillet * SPDX-License-Identifier: BSD-3-Clause 5*817f42f0SPascal Paillet */ 6*817f42f0SPascal Paillet 7*817f42f0SPascal Paillet #ifndef STM32MP_PMIC2_H 8*817f42f0SPascal Paillet #define STM32MP_PMIC2_H 9*817f42f0SPascal Paillet 10*817f42f0SPascal Paillet #include <stdbool.h> 11*817f42f0SPascal Paillet #include <drivers/st/regulator.h> 12*817f42f0SPascal Paillet 13*817f42f0SPascal Paillet #include <platform_def.h> 14*817f42f0SPascal Paillet 15*817f42f0SPascal Paillet /* 16*817f42f0SPascal Paillet * dt_pmic_status - Check PMIC status from device tree 17*817f42f0SPascal Paillet * 18*817f42f0SPascal Paillet * Returns the status of the PMIC (secure, non-secure), or a negative value on 19*817f42f0SPascal Paillet * error 20*817f42f0SPascal Paillet */ 21*817f42f0SPascal Paillet int dt_pmic_status(void); 22*817f42f0SPascal Paillet 23*817f42f0SPascal Paillet /* 24*817f42f0SPascal Paillet * initialize_pmic_i2c - Initialize I2C for the PMIC control 25*817f42f0SPascal Paillet * 26*817f42f0SPascal Paillet * Returns true if PMIC is available, false if not found, panics on errors 27*817f42f0SPascal Paillet */ 28*817f42f0SPascal Paillet bool initialize_pmic_i2c(void); 29*817f42f0SPascal Paillet 30*817f42f0SPascal Paillet /* 31*817f42f0SPascal Paillet * initialize_pmic - Main PMIC initialization function, called at platform init 32*817f42f0SPascal Paillet * 33*817f42f0SPascal Paillet * Panics on errors 34*817f42f0SPascal Paillet */ 35*817f42f0SPascal Paillet void initialize_pmic(void); 36*817f42f0SPascal Paillet 37*817f42f0SPascal Paillet /* 38*817f42f0SPascal Paillet * stpmic2_set_prop - Set PMIC2 proprietary property 39*817f42f0SPascal Paillet * 40*817f42f0SPascal Paillet * Returns non zero on errors 41*817f42f0SPascal Paillet */ 42*817f42f0SPascal Paillet int stpmic2_set_prop(const struct regul_description *desc, uint16_t prop, uint32_t value); 43*817f42f0SPascal Paillet 44*817f42f0SPascal Paillet /* 45*817f42f0SPascal Paillet * pmic_switch_off - switch off the platform with PMIC 46*817f42f0SPascal Paillet * 47*817f42f0SPascal Paillet * Panics on errors 48*817f42f0SPascal Paillet */ 49*817f42f0SPascal Paillet void pmic_switch_off(void); 50*817f42f0SPascal Paillet 51*817f42f0SPascal Paillet #endif /* STM32MP_PMIC2_H */ 52