imx8m: evk: spl: probe clk in spl early stage
authorPeng Fan <peng.fan@nxp.com>
Wed, 16 Oct 2019 10:24:39 +0000 (10:24 +0000)
committerStefano Babic <sbabic@denx.de>
Sun, 3 Nov 2019 16:04:16 +0000 (17:04 +0100)
We are going to add i2c pmic support before dram could be used.
So we need enable clk driver earlier, so use spl_early_init
and move clock controller probe eariler to board_init_f.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
board/freescale/imx8mm_evk/spl.c

index 043b5f4..2a5fb27 100644 (file)
@@ -41,16 +41,7 @@ void spl_dram_init(void)
 
 void spl_board_init(void)
 {
-       struct udevice *dev;
-       int ret;
-
        puts("Normal Boot\n");
-
-       ret = uclass_get_device_by_name(UCLASS_CLK,
-                                       "clock-controller@30380000",
-                                       &dev);
-       if (ret < 0)
-               printf("Failed to find clock node. Check device tree\n");
 }
 
 #ifdef CONFIG_SPL_LOAD_FIT
@@ -90,6 +81,7 @@ int board_early_init_f(void)
 
 void board_init_f(ulong dummy)
 {
+       struct udevice *dev;
        int ret;
 
        arch_cpu_init();
@@ -105,9 +97,17 @@ void board_init_f(ulong dummy)
        /* Clear the BSS. */
        memset(__bss_start, 0, __bss_end - __bss_start);
 
-       ret = spl_init();
+       ret = spl_early_init();
        if (ret) {
-               debug("spl_init() failed: %d\n", ret);
+               debug("spl_early_init() failed: %d\n", ret);
+               hang();
+       }
+
+       ret = uclass_get_device_by_name(UCLASS_CLK,
+                                       "clock-controller@30380000",
+                                       &dev);
+       if (ret < 0) {
+               printf("Failed to find clock node. Check device tree\n");
                hang();
        }