if (r)
                goto unregister_top_composites;
 
-       r = mtk_clk_register_gates(node, top_clks, ARRAY_SIZE(top_clks), top_clk_data);
+       r = mtk_clk_register_gates_with_dev(node, top_clks, ARRAY_SIZE(top_clks),
+                                           top_clk_data, &pdev->dev);
        if (r)
                goto unregister_adj_divs_composites;
 
        if (!clk_data)
                return -ENOMEM;
 
-       r = mtk_clk_register_gates(node, infra_clks, ARRAY_SIZE(infra_clks), clk_data);
+       r = mtk_clk_register_gates_with_dev(node, infra_clks, ARRAY_SIZE(infra_clks),
+                                           clk_data, &pdev->dev);
        if (r)
                goto free_clk_data;
 
        if (!clk_data)
                return -ENOMEM;
 
-       r = mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks), clk_data);
+       r = mtk_clk_register_gates_with_dev(node, peri_clks, ARRAY_SIZE(peri_clks),
+                                           clk_data, &pdev->dev);
        if (r)
                goto free_clk_data;
 
                return -ENOMEM;
 
        mtk_clk_register_plls(node, plls, ARRAY_SIZE(plls), clk_data);
-       r = mtk_clk_register_gates(node, apmixed_clks, ARRAY_SIZE(apmixed_clks), clk_data);
+       r = mtk_clk_register_gates_with_dev(node, apmixed_clks,
+                                           ARRAY_SIZE(apmixed_clks), clk_data,
+                                           &pdev->dev);
        if (r)
                goto free_clk_data;