• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <spl.h>
9 #include <dm.h>
10 #include <ram.h>
11 #include <asm/io.h>
12 #include <power/pmic.h>
13 #include <power/stpmic1.h>
14 #include <asm/arch/ddr.h>
15 
spl_board_init(void)16 void spl_board_init(void)
17 {
18 	/* Keep vdd on during the reset cycle */
19 #if defined(CONFIG_PMIC_STPMIC1) && defined(CONFIG_SPL_POWER_SUPPORT)
20 	struct udevice *dev;
21 	int ret;
22 
23 	ret = uclass_get_device_by_driver(UCLASS_PMIC,
24 					  DM_GET_DRIVER(pmic_stpmic1), &dev);
25 	if (!ret)
26 		pmic_clrsetbits(dev,
27 				STPMIC1_BUCKS_MRST_CR,
28 				STPMIC1_MRST_BUCK(STPMIC1_BUCK3),
29 				STPMIC1_MRST_BUCK(STPMIC1_BUCK3));
30 
31 	/* Check if debug is enabled to program PMIC according to the bit */
32 	if ((readl(TAMP_BOOT_CONTEXT) & TAMP_BOOT_DEBUG_ON) && !ret) {
33 		printf("Keep debug unit ON\n");
34 
35 		pmic_clrsetbits(dev, STPMIC1_BUCKS_MRST_CR,
36 				STPMIC1_MRST_BUCK_DEBUG,
37 				STPMIC1_MRST_BUCK_DEBUG);
38 
39 		if (STPMIC1_MRST_LDO_DEBUG)
40 			pmic_clrsetbits(dev, STPMIC1_LDOS_MRST_CR,
41 					STPMIC1_MRST_LDO_DEBUG,
42 					STPMIC1_MRST_LDO_DEBUG);
43 	}
44 #endif
45 }
46