clk: hisi: use clk_register_mux_table in hisi_clk_register_mux
authorZhangfei Gao <zhangfei.gao@linaro.org>
Mon, 21 Apr 2014 03:35:21 +0000 (11:35 +0800)
committerHaojian Zhuang <haojian.zhuang@linaro.org>
Mon, 12 May 2014 03:30:05 +0000 (11:30 +0800)
Platform hix5hd2 use mux table, so use clk_register_mux_table instead

Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
drivers/clk/hisilicon/clk.c
drivers/clk/hisilicon/clk.h

index 276f672e7b1aff8f45b4a8cb86481fa57f5cf3d3..269938852f4f5ea8d4818ab6107180371e7a631a 100644 (file)
@@ -127,11 +127,14 @@ void __init hisi_clk_register_mux(struct hisi_mux_clock *clks,
        int i;
 
        for (i = 0; i < nums; i++) {
-               clk = clk_register_mux(NULL, clks[i].name, clks[i].parent_names,
-                                      clks[i].num_parents, clks[i].flags,
-                                      base + clks[i].offset, clks[i].shift,
-                                      clks[i].width, clks[i].mux_flags,
-                                      &hisi_clk_lock);
+               u32 mask = BIT(clks[i].width) - 1;
+
+               clk = clk_register_mux_table(NULL, clks[i].name,
+                                       clks[i].parent_names,
+                                       clks[i].num_parents, clks[i].flags,
+                                       base + clks[i].offset, clks[i].shift,
+                                       mask, clks[i].mux_flags,
+                                       clks[i].table, &hisi_clk_lock);
                if (IS_ERR(clk)) {
                        pr_err("%s: failed to register clock %s\n",
                               __func__, clks[i].name);
index 43fa5da88f0209760cf79f53a5745c3da99a3e6e..bc39a6aa475eccdd72d2367e3e64047511d46cfc 100644 (file)
@@ -62,6 +62,7 @@ struct hisi_mux_clock {
        u8                      shift;
        u8                      width;
        u8                      mux_flags;
+       u32                     *table;
        const char              *alias;
 };