Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5763318f authored by Laxman Dewangan's avatar Laxman Dewangan Committed by Linus Walleij
Browse files

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: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Acked-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 5e0dd400
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
Palmas GPIO controller bindings

Required properties:
- compatible:
  - "ti,palams-gpio" for palma series of the GPIO controller
  - "ti,tps80036-gpio" for Palma series device TPS80036.
  - "ti,tps65913-gpio" for palma series device TPS65913.
  - "ti,tps65914-gpio" for palma series device TPS65914.
- #gpio-cells : Should be two.
  - first cell is the gpio pin number
  - second cell is used to specify the gpio polarity:
      0 = active high
      1 = active low
- gpio-controller : Marks the device node as a GPIO controller.

Note: This gpio node will be sub node of palmas node.

Example:
	palmas: tps65913@58 {
		:::::::::::
		palmas_gpio: palmas_gpio {
			compatible = "ti,palmas-gpio";
			gpio-controller;
			#gpio-cells = <2>;
		};
		:::::::::::
	};
+11 −1
Original line number Diff line number Diff line
@@ -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,19 @@ 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"},
	{ .compatible = "ti,tps65913-gpio"},
	{ .compatible = "ti,tps65914-gpio"},
	{ .compatible = "ti,tps80036-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,
};