#include <linux/of.h>
 #include <linux/clk.h>
 #include <linux/of_address.h>
+#include <linux/of_device.h>
 #include <linux/pm_runtime.h>
 
 #include "cc_driver.h"
        u32 val, hw_rev_pidr, sig_cidr;
        u64 dma_mask;
        const struct cc_hw_data *hw_rev;
-       const struct of_device_id *dev_id;
        struct clk *clk;
        int irq;
        int rc = 0;
        if (!new_drvdata)
                return -ENOMEM;
 
-       dev_id = of_match_node(arm_ccree_dev_of_match, np);
-       if (!dev_id)
-               return -ENODEV;
-
-       hw_rev = (struct cc_hw_data *)dev_id->data;
+       hw_rev = of_device_get_match_data(dev);
        new_drvdata->hw_rev_name = hw_rev->name;
        new_drvdata->hw_rev = hw_rev->rev;
        new_drvdata->std_bodies = hw_rev->std_bodies;