struct resource *res;
        struct nvmem_device *nvmem;
        struct rockchip_efuse_chip *efuse;
-       const struct of_device_id *match;
+       const void *data;
        struct device *dev = &pdev->dev;
 
-       match = of_match_device(dev->driver->of_match_table, dev);
-       if (!match || !match->data) {
+       data = of_device_get_match_data(dev);
+       if (!data) {
                dev_err(dev, "failed to get match data\n");
                return -EINVAL;
        }
        if (of_property_read_u32(dev->of_node, "rockchip,efuse-size",
                                 &econfig.size))
                econfig.size = resource_size(res);
-       econfig.reg_read = match->data;
+       econfig.reg_read = data;
        econfig.priv = efuse;
        econfig.dev = efuse->dev;
        nvmem = devm_nvmem_register(dev, &econfig);