mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 05:41:55 +00:00
powerpc/52xx: Get rid of of_node assignment
Let GPIO library 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> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220507100147.5802-3-andriy.shevchenko@linux.intel.com
This commit is contained in:
parent
de06fba62a
commit
00bcb550dc
@ -60,6 +60,7 @@
|
|||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
#include <linux/of_gpio.h>
|
#include <linux/of_gpio.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/property.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/watchdog.h>
|
#include <linux/watchdog.h>
|
||||||
@ -316,17 +317,15 @@ mpc52xx_gpt_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt)
|
||||||
mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
|
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Only setup GPIO if the device tree claims the GPT is
|
/* Only setup GPIO if the device claims the GPT is a GPIO controller */
|
||||||
* a GPIO controller */
|
if (!device_property_present(gpt->dev, "gpio-controller"))
|
||||||
if (!of_find_property(node, "gpio-controller", NULL))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
gpt->gc.label = kasprintf(GFP_KERNEL, "%pOF", node);
|
gpt->gc.label = kasprintf(GFP_KERNEL, "%pfw", dev_fwnode(gpt->dev));
|
||||||
if (!gpt->gc.label) {
|
if (!gpt->gc.label) {
|
||||||
dev_err(gpt->dev, "out of memory\n");
|
dev_err(gpt->dev, "out of memory\n");
|
||||||
return;
|
return;
|
||||||
@ -338,7 +337,7 @@ mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
|
|||||||
gpt->gc.get = mpc52xx_gpt_gpio_get;
|
gpt->gc.get = mpc52xx_gpt_gpio_get;
|
||||||
gpt->gc.set = mpc52xx_gpt_gpio_set;
|
gpt->gc.set = mpc52xx_gpt_gpio_set;
|
||||||
gpt->gc.base = -1;
|
gpt->gc.base = -1;
|
||||||
gpt->gc.of_node = node;
|
gpt->gc.parent = gpt->dev;
|
||||||
|
|
||||||
/* Setup external pin in GPIO mode */
|
/* Setup external pin in GPIO mode */
|
||||||
clrsetbits_be32(&gpt->regs->mode, MPC52xx_GPT_MODE_MS_MASK,
|
clrsetbits_be32(&gpt->regs->mode, MPC52xx_GPT_MODE_MS_MASK,
|
||||||
@ -351,8 +350,7 @@ mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
|
|||||||
dev_dbg(gpt->dev, "%s() complete.\n", __func__);
|
dev_dbg(gpt->dev, "%s() complete.\n", __func__);
|
||||||
}
|
}
|
||||||
#else /* defined(CONFIG_GPIOLIB) */
|
#else /* defined(CONFIG_GPIOLIB) */
|
||||||
static void
|
static void mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt) { }
|
||||||
mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *p, struct device_node *np) { }
|
|
||||||
#endif /* defined(CONFIG_GPIOLIB) */
|
#endif /* defined(CONFIG_GPIOLIB) */
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
@ -729,7 +727,7 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
|
|||||||
|
|
||||||
dev_set_drvdata(&ofdev->dev, gpt);
|
dev_set_drvdata(&ofdev->dev, gpt);
|
||||||
|
|
||||||
mpc52xx_gpt_gpio_setup(gpt, ofdev->dev.of_node);
|
mpc52xx_gpt_gpio_setup(gpt);
|
||||||
mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
|
mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
|
||||||
|
|
||||||
mutex_lock(&mpc52xx_gpt_list_mutex);
|
mutex_lock(&mpc52xx_gpt_list_mutex);
|
||||||
|
Loading…
Reference in New Issue
Block a user