1 // SPDX-License-Identifier: GPL-2.0+
11 #include <asm/arch/sys_proto.h>
12 #include <asm/arch/clock.h>
13 #include <asm/arch/imx8ulp-pins.h>
14 #include <dm/uclass.h>
15 #include <dm/device.h>
16 #include <dm/uclass-internal.h>
17 #include <dm/device-internal.h>
19 #include <asm/arch/ddr.h>
20 #include <asm/arch/rdc.h>
21 #include <asm/arch/upower.h>
23 DECLARE_GLOBAL_DATA_PTR;
25 void spl_dram_init(void)
28 ddr_init(&dram_timing);
31 u32 spl_boot_device(void)
33 return BOOT_DEVICE_BOOTROM;
36 int power_init_board(void)
40 /* PMIC set bucks1-4 to PWM mode */
41 upower_pmic_i2c_read(0x10, &pmic_reg);
42 upower_pmic_i2c_read(0x14, &pmic_reg);
43 upower_pmic_i2c_read(0x21, &pmic_reg);
44 upower_pmic_i2c_read(0x2e, &pmic_reg);
46 upower_pmic_i2c_write(0x10, 0x3d);
47 upower_pmic_i2c_write(0x14, 0x7d);
48 upower_pmic_i2c_write(0x21, 0x7d);
49 upower_pmic_i2c_write(0x2e, 0x3d);
51 upower_pmic_i2c_read(0x10, &pmic_reg);
52 upower_pmic_i2c_read(0x14, &pmic_reg);
53 upower_pmic_i2c_read(0x21, &pmic_reg);
54 upower_pmic_i2c_read(0x2e, &pmic_reg);
56 /* Set buck3 to 1.1v OD */
57 upower_pmic_i2c_write(0x22, 0x28);
61 void spl_board_init(void)
65 uclass_find_first_device(UCLASS_MISC, &dev);
67 for (; dev; uclass_find_next_device(&dev)) {
68 if (device_probe(dev))
74 preloader_console_init();
76 puts("Normal Boot\n");
78 /* After AP set iomuxc0, the i2c can't work, Need M33 to set it now */
84 /* DDR initialization */
87 /* This must place after upower init, so access to MDA and MRC are valid */
91 /* Init XRDC MRC for VIDEO, DSP domains */
95 void board_init_f(ulong dummy)
98 memset(__bss_start, 0, __bss_end - __bss_start);
104 board_init_r(NULL, 0);