*/
 
 #include <linux/input.h>
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
-#include <linux/of_gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/sched.h>
 #include <linux/input/matrix_keypad.h>
 {
        struct clps711x_keypad_data *priv;
        struct device *dev = &pdev->dev;
-       struct device_node *np = dev->of_node;
        struct input_dev *input;
        u32 poll_interval;
        int i, err;
        if (!priv)
                return -ENOMEM;
 
-       priv->syscon = syscon_regmap_lookup_by_phandle(np, "syscon");
+       priv->syscon = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon");
        if (IS_ERR(priv->syscon))
                return PTR_ERR(priv->syscon);
 
-       priv->row_count = of_gpio_named_count(np, "row-gpios");
+       priv->row_count = gpiod_count(dev, "row");
        if (priv->row_count < 1)
                return -EINVAL;
 
                        return PTR_ERR(data->desc);
        }
 
-       err = of_property_read_u32(np, "poll-interval", &poll_interval);
+       err = device_property_read_u32(dev, "poll-interval", &poll_interval);
        if (err)
                return err;
 
                return err;
 
        input_set_capability(input, EV_MSC, MSC_SCAN);
-       if (of_property_read_bool(np, "autorepeat"))
+       if (device_property_read_bool(dev, "autorepeat"))
                __set_bit(EV_REP, input->evbit);
 
        /* Set all columns to low */