]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
stm32mp: syscon: manage clock when present in device tree
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 29 Jun 2021 10:04:23 +0000 (12:04 +0200)
committerPatrick Delaunay <patrick.delaunay@foss.st.com>
Fri, 16 Jul 2021 07:28:46 +0000 (09:28 +0200)
Enable the clocks during syscon probe when they are present in device tree.

This patch avoids a freeze when the SYSCFG clock is not enabled by
TF-A / OP-TEE.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/mach-stm32mp/syscon.c

index 3e61ce40978c37c27f266373db492772c324bf87..a0e8e1dfdc504709dc6a24847ca554eed004a003 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <clk.h>
 #include <dm.h>
 #include <syscon.h>
 #include <asm/arch/stm32.h>
@@ -14,9 +15,22 @@ static const struct udevice_id stm32mp_syscon_ids[] = {
        { }
 };
 
+static int stm32mp_syscon_probe(struct udevice *dev)
+{
+       struct clk_bulk clk_bulk;
+       int ret;
+
+       ret = clk_get_bulk(dev, &clk_bulk);
+       if (!ret)
+               clk_enable_bulk(&clk_bulk);
+
+       return 0;
+}
+
 U_BOOT_DRIVER(syscon_stm32mp) = {
        .name = "stmp32mp_syscon",
        .id = UCLASS_SYSCON,
        .of_match = stm32mp_syscon_ids,
        .bind = dm_scan_fdt_dev,
+       .probe = stm32mp_syscon_probe,
 };