*/
 
 #include <linux/kernel.h>
+#include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/device.h>
 #include <linux/mutex.h>
 #include <linux/i2c.h>
 #include <linux/gpio/driver.h>
-#include <linux/of.h>
-#include <linux/of_gpio.h>
 #include <linux/slab.h>
 #include <linux/kthread.h>
+#include <linux/property.h>
 #include <linux/reboot.h>
 #include <asm/prom.h>
 #include <asm/machdep.h>
 
 static int mcu_gpiochip_add(struct mcu *mcu)
 {
-       struct device_node *np;
+       struct device *dev = &mcu->client->dev;
        struct gpio_chip *gc = &mcu->gc;
 
-       np = of_find_compatible_node(NULL, NULL, "fsl,mcu-mpc8349emitx");
-       if (!np)
-               return -ENODEV;
-
        gc->owner = THIS_MODULE;
-       gc->label = kasprintf(GFP_KERNEL, "%pOF", np);
+       gc->label = kasprintf(GFP_KERNEL, "%pfw", dev_fwnode(dev));
        gc->can_sleep = 1;
        gc->ngpio = MCU_NUM_GPIO;
        gc->base = -1;
        gc->set = mcu_gpio_set;
        gc->direction_output = mcu_gpio_dir_out;
-       gc->of_node = np;
+       gc->parent = dev;
 
        return gpiochip_add_data(gc, mcu);
 }