diff options
Diffstat (limited to 'board/toradex/verdin-imx8mp/spl.c')
-rw-r--r-- | board/toradex/verdin-imx8mp/spl.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/board/toradex/verdin-imx8mp/spl.c b/board/toradex/verdin-imx8mp/spl.c index 374538e133..db2e88a095 100644 --- a/board/toradex/verdin-imx8mp/spl.c +++ b/board/toradex/verdin-imx8mp/spl.c @@ -22,6 +22,8 @@ #include <power/pmic.h> #include <spl.h> +extern struct dram_timing_info dram_timing2; + DECLARE_GLOBAL_DATA_PTR; int spl_board_boot_device(enum boot_device boot_dev_spl) @@ -52,7 +54,13 @@ int spl_board_boot_device(enum boot_device boot_dev_spl) void spl_dram_init(void) { - ddr_init(&dram_timing); + /* + * Try configuring for dual rank memory falling back to single rank + */ + if (ddr_init(&dram_timing)) { + printf("Dual rank failed, attempting single rank configuration.\n"); + ddr_init(&dram_timing2); + } } #define I2C_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PE) @@ -195,7 +203,8 @@ int power_init_board(void) /* set WDOG_B_CFG to cold reset */ pmic_reg_write(p, PCA9450_RESET_CTRL, 0xA1); - /* set CONFIG2 to enable the I2C level translator */ + /* set LDO4 and CONFIG2 to enable the I2C level translator */ + pmic_reg_write(p, PCA9450_LDO4CTRL, 0x59); pmic_reg_write(p, PCA9450_CONFIG2, 0x1); return 0; |