diff options
author | David Lechner <david@lechnology.com> | 2018-05-25 13:11:48 -0500 |
---|---|---|
committer | Michael Turquette <mturquette@baylibre.com> | 2018-05-30 12:48:39 -0700 |
commit | 17d8bacf19bb5ea5f258f9c0644d5688f9ba03a9 (patch) | |
tree | 0c9942c7b0fffd698c7e627b7c644e9c264002fa /drivers/clk/davinci/pll-da850.c | |
parent | 76c9dd9dbd6459f1faf2b10351eb3d3f90255fa1 (diff) | |
download | linux-stable-17d8bacf19bb5ea5f258f9c0644d5688f9ba03a9.tar.gz linux-stable-17d8bacf19bb5ea5f258f9c0644d5688f9ba03a9.tar.bz2 linux-stable-17d8bacf19bb5ea5f258f9c0644d5688f9ba03a9.zip |
clk: davinci: da850-pll: change PLL0 to CLK_OF_DECLARE
PLL0 on davinci/da850-type device needs to be registered early in boot
because it is needed for clocksource/clockevent. Change the driver
to use CLK_OF_DECLARE for this special case.
Reviewed-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: David Lechner <david@lechnology.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/20180525181150.17873-8-david@lechnology.com
Diffstat (limited to 'drivers/clk/davinci/pll-da850.c')
-rw-r--r-- | drivers/clk/davinci/pll-da850.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/clk/davinci/pll-da850.c b/drivers/clk/davinci/pll-da850.c index 59cc2e3733f9..0f7198191ea2 100644 --- a/drivers/clk/davinci/pll-da850.c +++ b/drivers/clk/davinci/pll-da850.c @@ -13,6 +13,8 @@ #include <linux/init.h> #include <linux/kernel.h> #include <linux/mfd/da8xx-cfgchip.h> +#include <linux/mfd/syscon.h> +#include <linux/of_address.h> #include <linux/of.h> #include <linux/types.h> @@ -136,11 +138,22 @@ static const struct davinci_pll_sysclk_info *da850_pll0_sysclk_info[] = { NULL }; -int of_da850_pll0_init(struct device *dev, void __iomem *base, struct regmap *cfgchip) +void of_da850_pll0_init(struct device_node *node) { - return of_davinci_pll_init(dev, dev->of_node, &da850_pll0_info, - &da850_pll0_obsclk_info, - da850_pll0_sysclk_info, 7, base, cfgchip); + void __iomem *base; + struct regmap *cfgchip; + + base = of_iomap(node, 0); + if (!base) { + pr_err("%s: ioremap failed\n", __func__); + return; + } + + cfgchip = syscon_regmap_lookup_by_compatible("ti,da830-cfgchip"); + + of_davinci_pll_init(NULL, node, &da850_pll0_info, + &da850_pll0_obsclk_info, + da850_pll0_sysclk_info, 7, base, cfgchip); } static const struct davinci_pll_clk_info da850_pll1_info = { |