static void __init rk3328_clk_init(struct device_node *np)
 {
        struct rockchip_clk_provider *ctx;
+       unsigned long clk_nr_clks;
        void __iomem *reg_base;
 
        reg_base = of_iomap(np, 0);
                return;
        }
 
-       ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS);
+       clk_nr_clks = rockchip_clk_find_max_clk_id(rk3328_clk_branches,
+                                                  ARRAY_SIZE(rk3328_clk_branches)) + 1;
+       ctx = rockchip_clk_init(np, reg_base, clk_nr_clks);
        if (IS_ERR(ctx)) {
                pr_err("%s: rockchip clk init failed\n", __func__);
                iounmap(reg_base);