Messages in this thread Patch in this message | | | From | Alexandru Ardelean <> | Subject | [PATCH] clk: clk-gpio: Add dt option to propagate rate change to parent | Date | Wed, 6 Nov 2019 13:35:51 +0200 |
| |
From: Michael Hennerich <michael.hennerich@analog.com>
For certain setups/boards it's useful to propagate the rate change of the clock up one level to the parent clock.
This change implements this by defining a `clk-set-rate-parent` device-tree property which sets the `CLK_SET_RATE_PARENT` flag to the clock (when set).
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> --- drivers/clk/clk-gpio.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/clk-gpio.c b/drivers/clk/clk-gpio.c index 9d930edd6516..6dfbc4b952fe 100644 --- a/drivers/clk/clk-gpio.c +++ b/drivers/clk/clk-gpio.c @@ -241,6 +241,7 @@ static int gpio_clk_driver_probe(struct platform_device *pdev) struct device_node *node = pdev->dev.of_node; const char **parent_names, *gpio_name; unsigned int num_parents; + unsigned long clk_flags; struct gpio_desc *gpiod; struct clk *clk; bool is_mux; @@ -274,13 +275,16 @@ static int gpio_clk_driver_probe(struct platform_device *pdev) return ret; } + clk_flags = of_property_read_bool(node, "clk-set-rate-parent") ? + CLK_SET_RATE_PARENT : 0; + if (is_mux) clk = clk_register_gpio_mux(&pdev->dev, node->name, - parent_names, num_parents, gpiod, 0); + parent_names, num_parents, gpiod, clk_flags); else clk = clk_register_gpio_gate(&pdev->dev, node->name, parent_names ? parent_names[0] : NULL, gpiod, - 0); + clk_flags); if (IS_ERR(clk)) return PTR_ERR(clk); -- 2.20.1
| |