[v5,2/3] gpio: wm831x: Add basic device tree support

Message ID 1489745120-2918-2-git-send-email-ckeepax@opensource.wolfsonmicro.com
State New
Headers show

Commit Message

Charles Keepax March 17, 2017, 10:05 a.m.
Now the wm831x-core has basic DT support we can update this driver to
allow use of the GPIOs within a device tree system.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---

No changes since v4, still should go through Lee's tree.

Thanks,
Charles

 drivers/gpio/gpio-wm831x.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Lee Jones March 23, 2017, 11:47 a.m. | #1
On Fri, 17 Mar 2017, Charles Keepax wrote:

> Now the wm831x-core has basic DT support we can update this driver to
> allow use of the GPIOs within a device tree system.
> 
> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> 
> No changes since v4, still should go through Lee's tree.
> 
> Thanks,
> Charles
> 
>  drivers/gpio/gpio-wm831x.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

Applied, thanks.

> diff --git a/drivers/gpio/gpio-wm831x.c b/drivers/gpio/gpio-wm831x.c
> index 00e3839..938bbe3 100644
> --- a/drivers/gpio/gpio-wm831x.c
> +++ b/drivers/gpio/gpio-wm831x.c
> @@ -263,7 +263,7 @@ static const struct gpio_chip template_chip = {
>  static int wm831x_gpio_probe(struct platform_device *pdev)
>  {
>  	struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
> -	struct wm831x_pdata *pdata = dev_get_platdata(wm831x->dev);
> +	struct wm831x_pdata *pdata = &wm831x->pdata;
>  	struct wm831x_gpio *wm831x_gpio;
>  	int ret;
>  
> @@ -280,6 +280,9 @@ static int wm831x_gpio_probe(struct platform_device *pdev)
>  		wm831x_gpio->gpio_chip.base = pdata->gpio_base;
>  	else
>  		wm831x_gpio->gpio_chip.base = -1;
> +#ifdef CONFIG_OF_GPIO
> +	wm831x_gpio->gpio_chip.of_node = wm831x->dev->of_node;
> +#endif
>  
>  	ret = devm_gpiochip_add_data(&pdev->dev, &wm831x_gpio->gpio_chip,
>  				     wm831x_gpio);
Andy Shevchenko April 4, 2017, 5 p.m. | #2
On Thu, Mar 23, 2017 at 1:47 PM, Lee Jones <lee.jones@linaro.org> wrote:
> On Fri, 17 Mar 2017, Charles Keepax wrote:
>
>> Now the wm831x-core has basic DT support we can update this driver to
>> allow use of the GPIOs within a device tree system.
>>
>> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
>> Acked-by: Linus Walleij <linus.walleij@linaro.org>
>> ---
>>
>> No changes since v4, still should go through Lee's tree.
>>
>> Thanks,
>> Charles
>>
>>  drivers/gpio/gpio-wm831x.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> Applied, thanks.

>> +#ifdef CONFIG_OF_GPIO
>> +     wm831x_gpio->gpio_chip.of_node = wm831x->dev->of_node;
>> +#endif

Just a bit of off topic.

If we can use struct fwnode_handle we might get rid of all those
CONFIG_OF_GPIO in the drivers.

Patch

diff --git a/drivers/gpio/gpio-wm831x.c b/drivers/gpio/gpio-wm831x.c
index 00e3839..938bbe3 100644
--- a/drivers/gpio/gpio-wm831x.c
+++ b/drivers/gpio/gpio-wm831x.c
@@ -263,7 +263,7 @@  static const struct gpio_chip template_chip = {
 static int wm831x_gpio_probe(struct platform_device *pdev)
 {
 	struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
-	struct wm831x_pdata *pdata = dev_get_platdata(wm831x->dev);
+	struct wm831x_pdata *pdata = &wm831x->pdata;
 	struct wm831x_gpio *wm831x_gpio;
 	int ret;
 
@@ -280,6 +280,9 @@  static int wm831x_gpio_probe(struct platform_device *pdev)
 		wm831x_gpio->gpio_chip.base = pdata->gpio_base;
 	else
 		wm831x_gpio->gpio_chip.base = -1;
+#ifdef CONFIG_OF_GPIO
+	wm831x_gpio->gpio_chip.of_node = wm831x->dev->of_node;
+#endif
 
 	ret = devm_gpiochip_add_data(&pdev->dev, &wm831x_gpio->gpio_chip,
 				     wm831x_gpio);