diff options
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; + |