diff options
author | Laxman Dewangan <ldewangan@nvidia.com> | 2013-07-23 03:36:04 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-07-29 12:14:33 -0400 |
commit | 5763318f562fc0b30f729dce531b2982e29db463 (patch) | |
tree | 46b70613856f2ae34eb8a9e80ff09f3237e5e7e2 | |
parent | 5e0dd400461410e3e3f97f53f1521337e2e0ce6e (diff) |
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: tps65913@58 {
:::::::::::
palmas_gpio: palmas_gpio {
compatible = "ti,palmas-gpio";
gpio-controller;
#gpio-cells = <2>;
};
};
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | Documentation/devicetree/bindings/gpio/gpio-palmas.txt | 27 | ||||
-rw-r--r-- | drivers/gpio/gpio-palmas.c | 12 |
2 files changed, 38 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt new file mode 100644 index 000000000000..08b5b52a3ae0 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | Palmas GPIO controller bindings | ||
2 | |||
3 | Required properties: | ||
4 | - compatible: | ||
5 | - "ti,palams-gpio" for palma series of the GPIO controller | ||
6 | - "ti,tps80036-gpio" for Palma series device TPS80036. | ||
7 | - "ti,tps65913-gpio" for palma series device TPS65913. | ||
8 | - "ti,tps65914-gpio" for palma series device TPS65914. | ||
9 | - #gpio-cells : Should be two. | ||
10 | - first cell is the gpio pin number | ||
11 | - second cell is used to specify the gpio polarity: | ||
12 | 0 = active high | ||
13 | 1 = active low | ||
14 | - gpio-controller : Marks the device node as a GPIO controller. | ||
15 | |||
16 | Note: This gpio node will be sub node of palmas node. | ||
17 | |||
18 | Example: | ||
19 | palmas: tps65913@58 { | ||
20 | ::::::::::: | ||
21 | palmas_gpio: palmas_gpio { | ||
22 | compatible = "ti,palmas-gpio"; | ||
23 | gpio-controller; | ||
24 | #gpio-cells = <2>; | ||
25 | }; | ||
26 | ::::::::::: | ||
27 | }; | ||
diff --git a/drivers/gpio/gpio-palmas.c b/drivers/gpio/gpio-palmas.c index e3a4e56f5a42..09360c4b6386 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) | |||
134 | palmas_gpio->gpio_chip.get = palmas_gpio_get; | 134 | palmas_gpio->gpio_chip.get = palmas_gpio_get; |
135 | palmas_gpio->gpio_chip.dev = &pdev->dev; | 135 | palmas_gpio->gpio_chip.dev = &pdev->dev; |
136 | #ifdef CONFIG_OF_GPIO | 136 | #ifdef CONFIG_OF_GPIO |
137 | palmas_gpio->gpio_chip.of_node = palmas->dev->of_node; | 137 | palmas_gpio->gpio_chip.of_node = pdev->dev.of_node; |
138 | #endif | 138 | #endif |
139 | palmas_pdata = dev_get_platdata(palmas->dev); | 139 | palmas_pdata = dev_get_platdata(palmas->dev); |
140 | if (palmas_pdata && palmas_pdata->gpio_base) | 140 | if (palmas_pdata && palmas_pdata->gpio_base) |
@@ -159,9 +159,19 @@ static int palmas_gpio_remove(struct platform_device *pdev) | |||
159 | return gpiochip_remove(&palmas_gpio->gpio_chip); | 159 | return gpiochip_remove(&palmas_gpio->gpio_chip); |
160 | } | 160 | } |
161 | 161 | ||
162 | static struct of_device_id of_palmas_gpio_match[] = { | ||
163 | { .compatible = "ti,palmas-gpio"}, | ||
164 | { .compatible = "ti,tps65913-gpio"}, | ||
165 | { .compatible = "ti,tps65914-gpio"}, | ||
166 | { .compatible = "ti,tps80036-gpio"}, | ||
167 | { }, | ||
168 | }; | ||
169 | MODULE_DEVICE_TABLE(of, of_palmas_gpio_match); | ||
170 | |||
162 | static struct platform_driver palmas_gpio_driver = { | 171 | static struct platform_driver palmas_gpio_driver = { |
163 | .driver.name = "palmas-gpio", | 172 | .driver.name = "palmas-gpio", |
164 | .driver.owner = THIS_MODULE, | 173 | .driver.owner = THIS_MODULE, |
174 | .driver.of_match_table = of_palmas_gpio_match, | ||
165 | .probe = palmas_gpio_probe, | 175 | .probe = palmas_gpio_probe, |
166 | .remove = palmas_gpio_remove, | 176 | .remove = palmas_gpio_remove, |
167 | }; | 177 | }; |