Let GPIO library to assign of_node from the parent device.
This allows to move GPIO library and drivers to use fwnode
APIs instead of being stuck with OF-only interfaces.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
---
 arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c 
b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
index a38372f9ac12..26b502773b3f 100644
--- a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
+++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
@@ -8,15 +8,15 @@
  */
 
 #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>
@@ -116,21 +116,17 @@ static int mcu_gpio_dir_out(struct gpio_chip *gc, 
unsigned int gpio, int val)
 
 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);
 }
-- 
2.35.1

Reply via email to