[U-Boot] [PATCH V3 24/27] imx8m: soc: probe clock device in arch_cpu_init_dm
Patrick Wildt
patrick at blueri.se
Thu Oct 10 22:35:01 UTC 2019
On Tue, Aug 27, 2019 at 06:25:58AM +0000, Peng Fan wrote:
> Because we need to get cpu freq in print_cpuinfo at very early stage,
> so we need to make sure the ccm be probed.
>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> ---
> arch/arm/mach-imx/imx8m/soc.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
> index 3a54db4898..f904049120 100644
> --- a/arch/arm/mach-imx/imx8m/soc.c
> +++ b/arch/arm/mach-imx/imx8m/soc.c
> @@ -14,6 +14,7 @@
> #include <asm/mach-imx/boot_mode.h>
> #include <asm/mach-imx/syscounter.h>
> #include <asm/armv8/mmu.h>
> +#include <dm/uclass.h>
> #include <errno.h>
> #include <fdt_support.h>
> #include <fsl_wdog.h>
> @@ -228,6 +229,22 @@ static void imx_set_wdog_powerdown(bool enable)
> writew(enable, &wdog3->wmcr);
> }
>
> +int arch_cpu_init_dm(void)
> +{
> + struct udevice *dev;
> + int ret;
> +
> + ret = uclass_get_device_by_name(UCLASS_CLK,
> + "clock-controller at 30380000",
> + &dev);
> + if (ret < 0) {
> + printf("Failed to find clock node. Check device tree\n");
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> int arch_cpu_init(void)
> {
> struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
> --
> 2.16.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
This commit broke my i.MX8MQ board. This is because the i.MX8MQ does
not yet have a DM-based clock driver like i.MX8MM, so requiring the
existence of such uclass device breaks i.MX8MQ. I would propse the
following commit, which make the whole function only available for
i.MX8MQ.
---
>From 644bf63ed0b33c499631be757de077f2059144e7 Mon Sep 17 00:00:00 2001
From: Patrick Wildt <patrick at blueri.se>
Date: Fri, 11 Oct 2019 00:28:38 +0200
Subject: [PATCH] imx: require CCM driver only on i.MX8MM
Since there is no clock driver like that for i.MX8MQ, we cannot
require it on that platform, so make sure it is only built for
i.MX8MM.
Signed-off-by: Patrick Wildt <patrick at blueri.se>
---
arch/arm/mach-imx/imx8m/soc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index aeca82cdbf..11ca8c86b3 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -229,6 +229,7 @@ static void imx_set_wdog_powerdown(bool enable)
writew(enable, &wdog3->wmcr);
}
+#ifdef CONFIG_ARCH_IMX8MM
int arch_cpu_init_dm(void)
{
struct udevice *dev;
@@ -244,6 +245,7 @@ int arch_cpu_init_dm(void)
return 0;
}
+#endif
int arch_cpu_init(void)
{
--
2.23.0
More information about the U-Boot
mailing list