1// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause 2/* 3 * Copyright (C) 2018, STMicroelectronics - All Rights Reserved 4 */ 5 6#include <config.h> 7#include <common.h> 8#include <power/pmic.h> 9#include <power/stpmic1.h> 10#include <asm/arch/sys_proto.h> 11#include "../common/stpmic1.h" 12 13/* board early initialisation in board_f: need to use global variable */ 14static u32 opp_voltage_mv __section(".data"); 15 16void board_vddcore_init(u32 voltage_mv) 17{ 18 if (IS_ENABLED(CONFIG_PMIC_STPMIC1) && CONFIG_IS_ENABLED(POWER)) 19 opp_voltage_mv = voltage_mv; 20} 21 22int board_early_init_f(void) 23{ 24 if (IS_ENABLED(CONFIG_PMIC_STPMIC1) && CONFIG_IS_ENABLED(POWER)) { 25 struct udevice *dev = stpmic1_init(opp_voltage_mv); 26 27 /* Keep vdd on during the reset cycle */ 28 pmic_clrsetbits(dev, 29 STPMIC1_BUCKS_MRST_CR, 30 STPMIC1_MRST_BUCK(STPMIC1_BUCK3), 31 STPMIC1_MRST_BUCK(STPMIC1_BUCK3)); 32 } 33 34 return 0; 35} 36 37