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