Hello Peng,

On 16.10.24 08:11, Peng Fan wrote:
Hi Heiko,

Subject: imx8qxp: deneb board fails with current HEAD

Hello Peng,

I just rebased my current work on siemens deneb board with current
master:

* d5cab0d6ad - (HEAD -> master, origin/master, origin/WIP/15Oct2024,
origin/HEAD) Revert "Makefile:
Drop SPL_FIT_GENERATOR / SPL_FIT_SOURCE support" changes (vor 3
Stunden) <Tom Rini>


My bad. I had a patch in my local, this should resolve the issue you met.

No problem!

 From 3e5f8ad6cb93b9538852230d01c01b52d5c1c9d1 Mon Sep 17 00:00:00 2001
From: Peng Fan <[email protected]>
Date: Fri, 11 Oct 2024 19:57:49 +0800
Subject: [PATCH] clk: imx8: Add dummy clk

There is a dummy clk entry for i.MX8QM/QXP, so add the dummy clk enable
and get rate. Otherwise "__imx8_clk_enable(Invalid clk ID #0)".

Fixes: 76332fae769 ("mmc: fsl_esdhc_imx: Enable AHB/IPG clk with clk bulk API")
Signed-off-by: Peng Fan <[email protected]>
---
  drivers/clk/imx/clk-imx8qm.c  | 4 ++++
  drivers/clk/imx/clk-imx8qxp.c | 4 ++++
  2 files changed, 8 insertions(+)

diff --git a/drivers/clk/imx/clk-imx8qm.c b/drivers/clk/imx/clk-imx8qm.c
index 62fed7e3e32..466d71786cf 100644
--- a/drivers/clk/imx/clk-imx8qm.c
+++ b/drivers/clk/imx/clk-imx8qm.c
@@ -48,6 +48,8 @@ ulong imx8_clk_get_rate(struct clk *clk)
         debug("%s(#%lu)\n", __func__, clk->id);
switch (clk->id) {
+       case IMX8QM_CLK_DUMMY:
+               return 0;
         case IMX8QM_A53_DIV:
                 resource = SC_R_A53;
                 pm_clk = SC_PM_CLK_CPU;
@@ -264,6 +266,8 @@ int __imx8_clk_enable(struct clk *clk, bool enable)
         debug("%s(#%lu)\n", __func__, clk->id);
switch (clk->id) {
+       case IMX8QM_CLK_DUMMY:
+               return 0;
         case IMX8QM_I2C0_IPG_CLK:
         case IMX8QM_I2C0_CLK:
         case IMX8QM_I2C0_DIV:
diff --git a/drivers/clk/imx/clk-imx8qxp.c b/drivers/clk/imx/clk-imx8qxp.c
index 18bdc08971b..79098623bc8 100644
--- a/drivers/clk/imx/clk-imx8qxp.c
+++ b/drivers/clk/imx/clk-imx8qxp.c
@@ -51,6 +51,8 @@ ulong imx8_clk_get_rate(struct clk *clk)
         debug("%s(#%lu)\n", __func__, clk->id);
switch (clk->id) {
+       case IMX8QXP_CLK_DUMMY:
+               return 0;
         case IMX8QXP_A35_DIV:
                 resource = SC_R_A35;
                 pm_clk = SC_PM_CLK_CPU;
@@ -248,6 +250,8 @@ int __imx8_clk_enable(struct clk *clk, bool enable)
         debug("%s(#%lu)\n", __func__, clk->id);
switch (clk->id) {
+       case IMX8QXP_CLK_DUMMY:
+               return 0;
         case IMX8QXP_I2C0_CLK:
         case IMX8QXP_I2C0_IPG_CLK:
                 resource = SC_R_I2C_0;


Heh, yes, that what I thought after I had sended my EMail... but
wondering why we use a dummy here and not like it is in linux:

                clocks = <&sdhc0_lpcg IMX_LPCG_CLK_4>,
                         <&sdhc0_lpcg IMX_LPCG_CLK_5>,
                         <&sdhc0_lpcg IMX_LPCG_CLK_0>;
                clock-names = "ipg", "ahb", "per";

?

Do you plan to send this patch?

bye,
Heiko
--
DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: [email protected]

Reply via email to