powerpc/83xx/mpc8349emitx: Get rid of of_node assignment
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 23 Mar 2022 17:43:42 +0000 (19:43 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 20 Apr 2022 22:42:47 +0000 (08:42 +1000)
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.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Scott Wood <oss@buserror.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220323174342.56187-1-andriy.shevchenko@linux.intel.com
arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c

index a38372f..26b5027 100644 (file)
@@ -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);
 }