blob: 303c5714837fe1115d741b2156b51375b512c1a1 [file] [log] [blame]
Yann Gautierbb836ee2018-07-16 17:55:07 +02001/*
Yann Gautiere05e8cf2022-01-18 15:49:42 +01002 * Copyright (c) 2017-2022, STMicroelectronics - All Rights Reserved
Yann Gautierbb836ee2018-07-16 17:55:07 +02003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Yann Gautiera45433b2019-01-16 18:31:00 +01007#ifndef STM32MP_PMIC_H
8#define STM32MP_PMIC_H
Yann Gautierbb836ee2018-07-16 17:55:07 +02009
10#include <stdbool.h>
11
Yann Gautier57e282b2019-01-07 11:17:24 +010012#include <platform_def.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000013
Yann Gautierf3928f62019-02-14 11:15:03 +010014/*
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 */
20int dt_pmic_status(void);
21
22/*
Yann Gautierf3928f62019-02-14 11:15:03 +010023 * 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 */
27bool initialize_pmic_i2c(void);
28
29/*
30 * initialize_pmic - Main PMIC initialization function, called at platform init
31 *
32 * Panics on errors
33 */
Yann Gautierbb836ee2018-07-16 17:55:07 +020034void initialize_pmic(void);
Yann Gautierf3928f62019-02-14 11:15:03 +010035
Nicolas Le Bayon0b10b652019-11-18 13:13:36 +010036#if DEBUG
37void print_pmic_info_and_debug(void);
38#else
39static inline void print_pmic_info_and_debug(void)
40{
41}
42#endif
43
Yann Gautierf3928f62019-02-14 11:15:03 +010044/*
45 * pmic_ddr_power_init - Initialize regulators required for DDR
46 *
47 * Returns 0 on success, and negative values on errors
48 */
Yann Gautierbb836ee2018-07-16 17:55:07 +020049int pmic_ddr_power_init(enum ddr_type ddr_type);
50
Yann Gautiere05e8cf2022-01-18 15:49:42 +010051/*
52 * pmic_voltages_init - Update voltages for platform init
53 *
54 * Returns 0 on success, and negative values on errors
55 */
56int pmic_voltages_init(void);
57
Yann Gautiera45433b2019-01-16 18:31:00 +010058#endif /* STM32MP_PMIC_H */