]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mvebu: turris_omnia: Disable Atmel SHA node if not present
authorMarek Behún <kabel@kernel.org>
Thu, 4 Apr 2024 07:50:56 +0000 (09:50 +0200)
committerStefan Roese <sr@denx.de>
Thu, 4 Apr 2024 08:45:27 +0000 (10:45 +0200)
If the FEAT_CRYPTO feature bit is present in MCU features, the board
crypto is implemented by MCU and the Atmel SHA chip is not present.
Disable Atmel SHA device-tree node in that case.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
board/CZ.NIC/turris_omnia/turris_omnia.c

index b2f0088e5e8bad19e3651cebedf1b3fc1e43842a..3b7a71bdad2565b815e43cf3d05f6d606925d5b4 100644 (file)
@@ -1007,6 +1007,25 @@ static int fixup_mcu_gpio_in_eth_wan_node(void *blob)
        return 0;
 }
 
+static void fixup_atsha_node(void *blob)
+{
+       int node;
+
+       if (!omnia_mcu_has_feature(FEAT_CRYPTO))
+               return;
+
+       node = fdt_node_offset_by_compatible(blob, -1, "atmel,atsha204a");
+       if (node < 0) {
+               printf("Cannot find ATSHA204A node!\n");
+               return;
+       }
+
+       if (fdt_status_disabled(blob, node) < 0)
+               printf("Cannot disable ATSHA204A node!\n");
+       else
+               debug("Disabled ATSHA204A node\n");
+}
+
 #endif
 
 #if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
@@ -1020,6 +1039,8 @@ int board_fix_fdt(void *blob)
        fixup_msata_port_nodes(blob);
        fixup_wwan_port_nodes(blob);
 
+       fixup_atsha_node(blob);
+
        return 0;
 }
 #endif
@@ -1211,6 +1232,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
        fixup_msata_port_nodes(blob);
        fixup_wwan_port_nodes(blob);
 
+       fixup_atsha_node(blob);
+
        return 0;
 }
 #endif