aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/bcm/clk-iproc-armpll.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clk/bcm/clk-iproc-armpll.c')
-rw-r--r--drivers/clk/bcm/clk-iproc-armpll.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/clk/bcm/clk-iproc-armpll.c b/drivers/clk/bcm/clk-iproc-armpll.c
index a196ee28a17a..d7d628214b85 100644
--- a/drivers/clk/bcm/clk-iproc-armpll.c
+++ b/drivers/clk/bcm/clk-iproc-armpll.c
@@ -20,6 +20,8 @@
20#include <linux/clkdev.h> 20#include <linux/clkdev.h>
21#include <linux/of_address.h> 21#include <linux/of_address.h>
22 22
23#include "clk-iproc.h"
24
23#define IPROC_CLK_MAX_FREQ_POLICY 0x3 25#define IPROC_CLK_MAX_FREQ_POLICY 0x3
24#define IPROC_CLK_POLICY_FREQ_OFFSET 0x008 26#define IPROC_CLK_POLICY_FREQ_OFFSET 0x008
25#define IPROC_CLK_POLICY_FREQ_POLICY_FREQ_SHIFT 8 27#define IPROC_CLK_POLICY_FREQ_POLICY_FREQ_SHIFT 8
@@ -242,7 +244,6 @@ static const struct clk_ops iproc_arm_pll_ops = {
242void __init iproc_armpll_setup(struct device_node *node) 244void __init iproc_armpll_setup(struct device_node *node)
243{ 245{
244 int ret; 246 int ret;
245 struct clk *clk;
246 struct iproc_arm_pll *pll; 247 struct iproc_arm_pll *pll;
247 struct clk_init_data init; 248 struct clk_init_data init;
248 const char *parent_name; 249 const char *parent_name;
@@ -263,18 +264,18 @@ void __init iproc_armpll_setup(struct device_node *node)
263 init.num_parents = (parent_name ? 1 : 0); 264 init.num_parents = (parent_name ? 1 : 0);
264 pll->hw.init = &init; 265 pll->hw.init = &init;
265 266
266 clk = clk_register(NULL, &pll->hw); 267 ret = clk_hw_register(NULL, &pll->hw);
267 if (WARN_ON(IS_ERR(clk))) 268 if (WARN_ON(ret))
268 goto err_iounmap; 269 goto err_iounmap;
269 270
270 ret = of_clk_add_provider(node, of_clk_src_simple_get, clk); 271 ret = of_clk_add_hw_provider(node, of_clk_hw_simple_get, &pll->hw);
271 if (WARN_ON(ret)) 272 if (WARN_ON(ret))
272 goto err_clk_unregister; 273 goto err_clk_unregister;
273 274
274 return; 275 return;
275 276
276err_clk_unregister: 277err_clk_unregister:
277 clk_unregister(clk); 278 clk_hw_unregister(&pll->hw);
278err_iounmap: 279err_iounmap:
279 iounmap(pll->base); 280 iounmap(pll->base);
280err_free_pll: 281err_free_pll: