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 <[email protected]>
---

 arch/arm/mach-stm32mp/syscon.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/mach-stm32mp/syscon.c b/arch/arm/mach-stm32mp/syscon.c
index 3e61ce4097..a0e8e1dfdc 100644
--- a/arch/arm/mach-stm32mp/syscon.c
+++ b/arch/arm/mach-stm32mp/syscon.c
@@ -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,
 };
-- 
2.25.1

Reply via email to