[PATCH V2] clk: introduce u-boot,ignore-clk-defaults

Peng Fan (OSS) peng.fan at oss.nxp.com
Sat Nov 20 13:10:54 CET 2021


> Subject: [PATCH V2] clk: introduce u-boot,ignore-clk-defaults
> 
> From: Peng Fan <peng.fan at 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 <sjg at chromium.org>
> Signed-off-by: Peng Fan <peng.fan at 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.

Any more thoughts?

Thanks,
Peng.

> 
>  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



More information about the U-Boot mailing list