#include <linux/of.h>
 #include <linux/of_address.h>
+#include <linux/of_device.h>
 #include <linux/mfd/syscon.h>
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 
 static int exynos_pmu_probe(struct platform_device *pdev)
 {
-       const struct of_device_id *match;
        struct device *dev = &pdev->dev;
        struct resource *res;
 
                return -ENOMEM;
        }
        pmu_context->dev = dev;
-
-       match = of_match_node(exynos_pmu_of_device_ids, dev->of_node);
-
-       pmu_context->pmu_data = match->data;
+       pmu_context->pmu_data = of_device_get_match_data(dev);
 
        if (pmu_context->pmu_data->pmu_init)
                pmu_context->pmu_data->pmu_init();