#include <linux/irq.h>
 #include <linux/i2c.h>
 #include <linux/mutex.h>
-#include <linux/of.h>
+#include <linux/mod_devicetable.h>
 #include <linux/regmap.h>
 #include <linux/iio/iio.h>
 #include <linux/iio/buffer.h>
 static int max30102_led_init(struct max30102_data *data)
 {
        struct device *dev = &data->client->dev;
-       struct device_node *np = dev->of_node;
        unsigned int val;
        int reg, ret;
 
-       ret = of_property_read_u32(np, "maxim,red-led-current-microamp", &val);
+       ret = device_property_read_u32(dev, "maxim,red-led-current-microamp", &val);
        if (ret) {
                dev_info(dev, "no red-led-current-microamp set\n");
 
                return ret;
 
        if (data->chip_id == max30105) {
-               ret = of_property_read_u32(np,
+               ret = device_property_read_u32(dev,
                        "maxim,green-led-current-microamp", &val);
                if (ret) {
                        dev_info(dev, "no green-led-current-microamp set\n");
                        return ret;
        }
 
-       ret = of_property_read_u32(np, "maxim,ir-led-current-microamp", &val);
+       ret = device_property_read_u32(dev, "maxim,ir-led-current-microamp", &val);
        if (ret) {
                dev_info(dev, "no ir-led-current-microamp set\n");
 
 static struct i2c_driver max30102_driver = {
        .driver = {
                .name   = MAX30102_DRV_NAME,
-               .of_match_table = of_match_ptr(max30102_dt_ids),
+               .of_match_table = max30102_dt_ids,
        },
        .probe          = max30102_probe,
        .remove         = max30102_remove,