2013-04-16 14:36:14

by Laxman Dewangan

[permalink] [raw]
Subject: [PATCH V2] gpio: palmas: add dt support

Add of_device_id table for Palma GPIO to be enable the
driver from DT file.

The driver can be registered from DT file as:
palmas: [email protected] {
:::::::::::
palmas_gpio: palmas_gpio {
compatible = "ti,palmas-gpio";
gpio-controller;
#gpio-cells = <2>;
};
};

Signed-off-by: Laxman Dewangan <[email protected]>
---
Changes from V1:
Remove the ifdefs of CONFIG_OF around of_device_id structure for
defining compatible values.

drivers/gpio/gpio-palmas.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/drivers/gpio/gpio-palmas.c b/drivers/gpio/gpio-palmas.c
index e3a4e56..5802662 100644
--- a/drivers/gpio/gpio-palmas.c
+++ b/drivers/gpio/gpio-palmas.c
@@ -134,7 +134,7 @@ static int palmas_gpio_probe(struct platform_device *pdev)
palmas_gpio->gpio_chip.get = palmas_gpio_get;
palmas_gpio->gpio_chip.dev = &pdev->dev;
#ifdef CONFIG_OF_GPIO
- palmas_gpio->gpio_chip.of_node = palmas->dev->of_node;
+ palmas_gpio->gpio_chip.of_node = pdev->dev.of_node;
#endif
palmas_pdata = dev_get_platdata(palmas->dev);
if (palmas_pdata && palmas_pdata->gpio_base)
@@ -159,9 +159,16 @@ static int palmas_gpio_remove(struct platform_device *pdev)
return gpiochip_remove(&palmas_gpio->gpio_chip);
}

+static struct of_device_id of_palmas_gpio_match[] = {
+ { .compatible = "ti,palmas-gpio"},
+ { },
+};
+MODULE_DEVICE_TABLE(of, of_palmas_gpio_match);
+
static struct platform_driver palmas_gpio_driver = {
.driver.name = "palmas-gpio",
.driver.owner = THIS_MODULE,
+ .driver.of_match_table = of_palmas_gpio_match,
.probe = palmas_gpio_probe,
.remove = palmas_gpio_remove,
};
--
1.7.1.1


2013-04-16 18:45:06

by Stephen Warren

[permalink] [raw]
Subject: Re: [PATCH V2] gpio: palmas: add dt support

On 04/16/2013 08:31 AM, Laxman Dewangan wrote:
> Add of_device_id table for Palma GPIO to be enable the
> driver from DT file.
>
> The driver can be registered from DT file as:
> palmas: [email protected] {
> :::::::::::
> palmas_gpio: palmas_gpio {
> compatible = "ti,palmas-gpio";
> gpio-controller;
> #gpio-cells = <2>;
> };
> };

So I think this patch looks fine if everyone is agreed that all the
Palmas sub-modules are represented as explicit child nodes in DT, and
the probing of the child nodes is based on the top-level Palmas device
being a bus, and enumerating its children in standard DT style, using
compatible values. (I'm not sure how the child probing/instantiation
will work for non-DT systems though).

I'm not 100% sure if an agreement on the top-level structure of the
Palmas DT bindings was reached though? Can the SlimLogic people confirm
this? I assume Laxman must be OK with it since he's sending this patch?

It might be a good idea to get the final Palmas binding documentation
reviewed and checked in before changing the drivers/.dts files to match
what the final bindings might be.

2013-04-17 07:00:47

by Laxman Dewangan

[permalink] [raw]
Subject: Re: [PATCH V2] gpio: palmas: add dt support

On Wednesday 17 April 2013 12:14 AM, Stephen Warren wrote:
> On 04/16/2013 08:31 AM, Laxman Dewangan wrote:
>> Add of_device_id table for Palma GPIO to be enable the
>> driver from DT file.
>>
>> The driver can be registered from DT file as:
>> palmas: [email protected] {
>> :::::::::::
>> palmas_gpio: palmas_gpio {
>> compatible = "ti,palmas-gpio";
>> gpio-controller;
>> #gpio-cells = <2>;
>> };
>> };
> So I think this patch looks fine if everyone is agreed that all the
> Palmas sub-modules are represented as explicit child nodes in DT, and
> the probing of the child nodes is based on the top-level Palmas device
> being a bus, and enumerating its children in standard DT style, using
> compatible values. (I'm not sure how the child probing/instantiation
> will work for non-DT systems though).
>
> I'm not 100% sure if an agreement on the top-level structure of the
> Palmas DT bindings was reached though? Can the SlimLogic people confirm
> this? I assume Laxman must be OK with it since he's sending this patch?
>

I am fine with this dt approach.
Similar patch on palma-rtc was acked by Grant.

If Slimlogic/TI team can finalise the DT binding then it will be easy
for me to push some more patches to have full support for palma driver
on our Tegra platform.