diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-06-29 12:04:23 +0200 |
---|---|---|
committer | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2021-07-16 09:28:46 +0200 |
commit | 7c55249307a930251473c6635b67529fec36c7e3 (patch) | |
tree | 7386d24debe3e83caea5fbf435749ea472328f63 /arch | |
parent | 3105836c9e5d7c2823dc5817b60d6940bb1b817f (diff) | |
download | u-boot-7c55249307a930251473c6635b67529fec36c7e3.zip u-boot-7c55249307a930251473c6635b67529fec36c7e3.tar.gz u-boot-7c55249307a930251473c6635b67529fec36c7e3.tar.bz2 |
stm32mp: syscon: manage clock when present in device tree
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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-stm32mp/syscon.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-stm32mp/syscon.c b/arch/arm/mach-stm32mp/syscon.c index 3e61ce4..a0e8e1d 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, }; |