123684d0eSYann Gautier /* 2*ae7792e0SNicolas Le Bayon * Copyright (c) 2017-2021, STMicroelectronics - All Rights Reserved 323684d0eSYann Gautier * 423684d0eSYann Gautier * SPDX-License-Identifier: BSD-3-Clause 523684d0eSYann Gautier */ 623684d0eSYann Gautier 723684d0eSYann Gautier #ifndef STM32MP_PMIC_H 823684d0eSYann Gautier #define STM32MP_PMIC_H 923684d0eSYann Gautier 1023684d0eSYann Gautier #include <stdbool.h> 1123684d0eSYann Gautier 1223684d0eSYann Gautier #include <platform_def.h> 1323684d0eSYann Gautier 14d82d4ff0SYann Gautier /* 15d82d4ff0SYann Gautier * dt_pmic_status - Check PMIC status from device tree 16d82d4ff0SYann Gautier * 17d82d4ff0SYann Gautier * Returns the status of the PMIC (secure, non-secure), or a negative value on 18d82d4ff0SYann Gautier * error 19d82d4ff0SYann Gautier */ 20d82d4ff0SYann Gautier int dt_pmic_status(void); 21d82d4ff0SYann Gautier 22d82d4ff0SYann Gautier /* 23d82d4ff0SYann Gautier * dt_pmic_configure_boot_on_regulators - Configure boot-on and always-on 24d82d4ff0SYann Gautier * regulators from device tree configuration 25d82d4ff0SYann Gautier * 26d82d4ff0SYann Gautier * Returns 0 on success, and negative values on errors 27d82d4ff0SYann Gautier */ 28d82d4ff0SYann Gautier int dt_pmic_configure_boot_on_regulators(void); 29d82d4ff0SYann Gautier 30d82d4ff0SYann Gautier /* 31d82d4ff0SYann Gautier * initialize_pmic_i2c - Initialize I2C for the PMIC control 32d82d4ff0SYann Gautier * 33d82d4ff0SYann Gautier * Returns true if PMIC is available, false if not found, panics on errors 34d82d4ff0SYann Gautier */ 35d82d4ff0SYann Gautier bool initialize_pmic_i2c(void); 36d82d4ff0SYann Gautier 37d82d4ff0SYann Gautier /* 38d82d4ff0SYann Gautier * initialize_pmic - Main PMIC initialization function, called at platform init 39d82d4ff0SYann Gautier * 40d82d4ff0SYann Gautier * Panics on errors 41d82d4ff0SYann Gautier */ 4223684d0eSYann Gautier void initialize_pmic(void); 43d82d4ff0SYann Gautier 44*ae7792e0SNicolas Le Bayon #if DEBUG 45*ae7792e0SNicolas Le Bayon void print_pmic_info_and_debug(void); 46*ae7792e0SNicolas Le Bayon #else 47*ae7792e0SNicolas Le Bayon static inline void print_pmic_info_and_debug(void) 48*ae7792e0SNicolas Le Bayon { 49*ae7792e0SNicolas Le Bayon } 50*ae7792e0SNicolas Le Bayon #endif 51*ae7792e0SNicolas Le Bayon 52d82d4ff0SYann Gautier /* 53d82d4ff0SYann Gautier * pmic_ddr_power_init - Initialize regulators required for DDR 54d82d4ff0SYann Gautier * 55d82d4ff0SYann Gautier * Returns 0 on success, and negative values on errors 56d82d4ff0SYann Gautier */ 5723684d0eSYann Gautier int pmic_ddr_power_init(enum ddr_type ddr_type); 5823684d0eSYann Gautier 5923684d0eSYann Gautier #endif /* STM32MP_PMIC_H */ 60