35 lines
972 B
Diff
35 lines
972 B
Diff
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;
|
|
|