diff options
author | Jonas Gorski <jogo@openwrt.org> | 2015-02-27 17:39:49 +0000 |
---|---|---|
committer | Jonas Gorski <jogo@openwrt.org> | 2015-02-27 17:39:49 +0000 |
commit | eea227c60d593c2fe5692365936703bbebdbd1ad (patch) | |
tree | 75ffdc0a1a19758e3c30b241e7aef13f7ab25ecd /target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch | |
parent | 1efb7398e1ae9e967a9b0b1a73edb034b10ee5fc (diff) | |
download | upstream-eea227c60d593c2fe5692365936703bbebdbd1ad.tar.gz upstream-eea227c60d593c2fe5692365936703bbebdbd1ad.tar.bz2 upstream-eea227c60d593c2fe5692365936703bbebdbd1ad.zip |
brcm63xx: probe gpio controllers through DT
Add a generic mmio gpio controller based driver and probe it
through device tree.
Use aliases for base calculation until we converted all users to
device tree or named gpios.
Convert bcm63xx_enet's ephy-reset gpio to use a named gpio.
While at it, remove the duplicate reset gpio defintion for livebox.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 44565
Diffstat (limited to 'target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch b/target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch new file mode 100644 index 0000000000..5be625a9ae --- /dev/null +++ b/target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch @@ -0,0 +1,34 @@ +From 6759a62f28bb1995afe6562c0adfbbb6e8540933 Mon Sep 17 00:00:00 2001 +From: Jonas Gorski <jogo@openwrt.org> +Date: Sun, 22 Feb 2015 12:57:58 +0100 +Subject: [PATCH 6/6] gpio: gpio-bcm63xx: use alias id for base calculation + +Signed-off-by: Jonas Gorski <jogo@openwrt.org> +--- + drivers/gpio/gpio-bcm63xx.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/gpio/gpio-bcm63xx.c ++++ b/drivers/gpio/gpio-bcm63xx.c +@@ -32,6 +32,8 @@ + #include <linux/of.h> + #include <linux/of_gpio.h> + ++#define BCM63XX_GPIOS_PER_BANK 32 ++ + static int bcm63xx_gpio_probe(struct platform_device *pdev) + { + struct device *dev = &pdev->dev; +@@ -73,8 +75,12 @@ static int bcm63xx_gpio_probe(struct pla + platform_set_drvdata(pdev, bgc); + + if (dev->of_node) { ++ int id = of_alias_get_id(dev->of_node, "gpio"); + u32 ngpios; + ++ if (id >= 0) ++ bgc->gc.base = id * BCM63XX_GPIOS_PER_BANK; ++ + if (!of_property_read_u32(dev->of_node, "ngpios", &ngpios)) + bgc->gc.ngpio = ngpios; + |