aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm63xx/patches-3.18/379-gpio-gpio-bcm63xx-use-alias-id-for-base-calculation.patch
diff options
context:
space:
mode:
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.patch34
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;
+