static int clk_mt2712_mm_probe(struct platform_device *pdev)
 {
+       struct device *dev = &pdev->dev;
+       struct device_node *node = dev->parent->of_node;
        struct clk_onecell_data *clk_data;
        int r;
-       struct device_node *node = pdev->dev.of_node;
 
        clk_data = mtk_alloc_clk_data(CLK_MM_NR_CLK);
 
        return r;
 }
 
-static const struct of_device_id of_match_clk_mt2712_mm[] = {
-       { .compatible = "mediatek,mt2712-mmsys", },
-       {}
-};
-
 static struct platform_driver clk_mt2712_mm_drv = {
        .probe = clk_mt2712_mm_probe,
        .driver = {
                .name = "clk-mt2712-mm",
-               .of_match_table = of_match_clk_mt2712_mm,
        },
 };
 
 
        const char *clk_driver;
 };
 
+static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
+       .clk_driver = "clk-mt2712-mm",
+};
+
 static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
        .clk_driver = "clk-mt8173-mm",
 };
 }
 
 static const struct of_device_id of_match_mtk_mmsys[] = {
+       {
+               .compatible = "mediatek,mt2712-mmsys",
+               .data = &mt2712_mmsys_driver_data,
+       },
        {
                .compatible = "mediatek,mt8173-mmsys",
                .data = &mt8173_mmsys_driver_data,