]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: siemens: iot2050: Generalize the fdt fixup
authorBaocheng Su <baocheng.su@siemens.com>
Tue, 22 Oct 2024 06:04:22 +0000 (08:04 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 29 Oct 2024 02:54:23 +0000 (20:54 -0600)
The fdt fixup logic actually also applies to other possible variants who
also have device tree overlays. So generalize this part by extracting
it from the m.2 specific function and make it a standalone one.

Since now we only have M.2 variant consuming the overlay, it may not
have immediate effect for other variant, however this makes the future
variant more easier to apply fdt fixups.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
board/siemens/iot2050/board.c

index 16082ae2afe73ff232e3d52aa66d70307907a7da..fad6bc047353921433781f3ca0079cdd44098efa 100644 (file)
@@ -245,23 +245,14 @@ void set_board_info_env(void)
        env_save();
 }
 
-static void m2_overlay_prepare(void)
+static void do_overlay_prepare(const char *overlay_path)
 {
 #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
-       const char *overlay_path;
        void *overlay;
        u64 loadaddr;
        ofnode node;
        int ret;
 
-       if (connector_mode == BKEY_PCIEX2)
-               return;
-
-       if (connector_mode == BKEY_PCIE_EKEY_PCIE)
-               overlay_path = "/fit-images/bkey-ekey-pcie-overlay";
-       else
-               overlay_path = "/fit-images/bkey-usb3-overlay";
-
        node = ofnode_path(overlay_path);
        if (!ofnode_valid(node))
                goto fit_error;
@@ -288,6 +279,21 @@ fit_error:
 #endif
 }
 
+static void m2_overlay_prepare(void)
+{
+       const char *overlay_path;
+
+       if (connector_mode == BKEY_PCIEX2)
+               return;
+
+       if (connector_mode == BKEY_PCIE_EKEY_PCIE)
+               overlay_path = "/fit-images/bkey-ekey-pcie-overlay";
+       else
+               overlay_path = "/fit-images/bkey-usb3-overlay";
+
+       do_overlay_prepare(overlay_path);
+}
+
 static void m2_connector_setup(void)
 {
        ulong m2_manual_config = env_get_ulong("m2_manual_config", 10,
@@ -466,7 +472,7 @@ int board_late_init(void)
 }
 
 #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
-static void m2_fdt_fixup(void *blob)
+static void variants_fdt_fixup(void *blob)
 {
        void *overlay_copy = NULL;
        void *fdt_copy = NULL;
@@ -506,14 +512,14 @@ cleanup:
        return;
 
 fixup_error:
-       pr_err("Could not apply M.2 device tree overlay\n");
+       pr_err("Could not apply device tree overlay\n");
        goto cleanup;
 }
 
 int ft_board_setup(void *blob, struct bd_info *bd)
 {
        if (board_is_m2())
-               m2_fdt_fixup(blob);
+               variants_fdt_fixup(blob);
 
        return 0;
 }