On 10/28/21 9:28 PM, Peng Fan (OSS) wrote:
From: Peng Fan <peng....@nxp.com>

Current code has a force clk_set_defaults in multiple stages,
U-Boot reuse the same device tree and Linux Kernel device tree,
but we not register all the clks as Linux Kernel, so clk_set_defaults
will fail and cause the clk provider registeration fail.

So introduce a new property to ignore the default settings which could
be used by any node that wanna ignore default settings.

Reviewed-by: Simon Glass <s...@chromium.org>
Signed-off-by: Peng Fan <peng....@nxp.com>
---

V2:
  Add R-b tag
  Tom, Simon
    After a thought, I think still put it as a u-boot thing. assigned-clock-x is
    actually Linux specific, however I could not add the new property to Linux,
    because we are supporting SystemReady-IR, we need the assigned-clock-x 
property
    in linux working and ignore it in U-Boot.

  doc/device-tree-bindings/device.txt | 3 +++
  drivers/clk/clk-uclass.c            | 3 +++
  2 files changed, 6 insertions(+)

diff --git a/doc/device-tree-bindings/device.txt 
b/doc/device-tree-bindings/device.txt
index 73ce2a3b5b..fe34ced268 100644
--- a/doc/device-tree-bindings/device.txt
+++ b/doc/device-tree-bindings/device.txt
@@ -28,6 +28,9 @@ the acpi,compatible property.
      Linux will only load the driver if the device can be detected (e.g. on I2C
      bus). Note that this is an out-of-tree Linux feature.
+Common device bindings that could be shared listed below:
+ - u-boot,ignore-clk-defaults : ignore the assigned-clock-parents
+   and assigned-clock-rates for a device that has the property.
Example
  -------
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 493018b33e..6bf3179e7b 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -376,6 +376,9 @@ int clk_set_defaults(struct udevice *dev, enum 
clk_defaults_stage stage)
        if (!dev_has_ofnode(dev))
                return 0;
+ if (ofnode_get_property(dev_ofnode(dev), "u-boot,ignore-clk-defaults", NULL))
+               return 0;
+
        /*
         * To avoid setting defaults twice, don't set them before relocation.
         * However, still set them for SPL. And still set them if explicitly


Reviewed-by: Sean Anderson <sean...@gmail.com>

Reply via email to