static void __init rk3036_clk_init(struct device_node *np)
 {
        struct rockchip_clk_provider *ctx;
+       unsigned long clk_nr_clks;
        void __iomem *reg_base;
        struct clk *clk;
 
        writel_relaxed(HIWORD_UPDATE(0x2, 0x3, 10),
                       reg_base + RK2928_CLKSEL_CON(13));
 
-       ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS);
+       clk_nr_clks = rockchip_clk_find_max_clk_id(rk3036_clk_branches,
+                                                  ARRAY_SIZE(rk3036_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);