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. Signed-off-by: Peng Fan <peng....@nxp.com> --- 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 -- 2.30.0