Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[linux-2.6-microblaze.git] / drivers / clk / imx / clk-cpu.c
index 00d026e..cb182be 100644 (file)
@@ -69,13 +69,14 @@ static const struct clk_ops clk_cpu_ops = {
        .set_rate       = clk_cpu_set_rate,
 };
 
-struct clk *imx_clk_cpu(const char *name, const char *parent_name,
+struct clk_hw *imx_clk_hw_cpu(const char *name, const char *parent_name,
                struct clk *div, struct clk *mux, struct clk *pll,
                struct clk *step)
 {
        struct clk_cpu *cpu;
-       struct clk *clk;
+       struct clk_hw *hw;
        struct clk_init_data init;
+       int ret;
 
        cpu = kzalloc(sizeof(*cpu), GFP_KERNEL);
        if (!cpu)
@@ -93,10 +94,13 @@ struct clk *imx_clk_cpu(const char *name, const char *parent_name,
        init.num_parents = 1;
 
        cpu->hw.init = &init;
+       hw = &cpu->hw;
 
-       clk = clk_register(NULL, &cpu->hw);
-       if (IS_ERR(clk))
+       ret = clk_hw_register(NULL, hw);
+       if (ret) {
                kfree(cpu);
+               return ERR_PTR(ret);
+       }
 
-       return clk;
+       return hw;
 }