diff options
author | Nikita Yushchenko <nikita.yoush@cogentembedded.com> | 2018-05-10 18:20:19 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-05-14 09:52:52 +0200 |
commit | 96aff45747a1cec76ff26778e94884ae2ce572b9 (patch) | |
tree | de7a30d96f13f8de5a517d5d01287837cbd57802 /drivers/clk | |
parent | ee919bef13349d725a551d6d6ca5495815ff5aca (diff) | |
download | barebox-96aff45747a1cec76ff26778e94884ae2ce572b9.tar.gz barebox-96aff45747a1cec76ff26778e94884ae2ce572b9.tar.xz |
clk: support pinmux configuration in clock provider nodes
Some device trees use pinctrl-* settings inside device tree nodes for
clock providers.
Barebox does not threat clock providers (such as fixed-clock or
gpio-gate-clock) as conventional devices, thus setting default
pinctrl configuration in driver binding code does not happen for
clock providers.
This patch adds setting default pinctrl configuration to of_clk_init(),
just before calling clock provider's probe routine.
Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/clk.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 5bb147eee0..24759b45bb 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -22,6 +22,7 @@ #include <linux/clk.h> #include <linux/err.h> #include <linux/clk/clk-conf.h> +#include <pinctrl.h> static LIST_HEAD(clks); @@ -596,10 +597,12 @@ int of_clk_init(struct device_node *root, const struct of_device_id *matches) list_for_each_entry_safe(clk_provider, next, &clk_provider_list, node) { - if (force || parent_ready(clk_provider->np)) { + struct device_node *np = clk_provider->np; + if (force || parent_ready(np)) { - clk_provider->clk_init_cb(clk_provider->np); - of_clk_set_defaults(clk_provider->np, true); + of_pinctrl_select_state_default(np); + clk_provider->clk_init_cb(np); + of_clk_set_defaults(np, true); list_del(&clk_provider->node); free(clk_provider); |