[PATCH 1/2] gpio: dwapb: Use human understandable gpio numbering.
Richard Cochran
richardcochran at gmail.com
Wed Jul 1 12:34:02 PDT 2015
The system-on-chips using this IP core have well defined gpio numbers.
Instead of using random numbers, this patch lets the device tree specify
the correct gpio numbering.
Signed-off-by: Richard Cochran <rcochran at linutronix.de>
---
Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt | 2 ++
drivers/gpio/gpio-dwapb.c | 8 +++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt b/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
index dd5d2c0..5c9effd 100644
--- a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
+++ b/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
@@ -28,6 +28,7 @@ controller.
- interrupt-parent : The parent interrupt controller.
- interrupts : The interrupt to the parent controller raised when GPIOs
generate the interrupts.
+- snps,base : The base gpio number.
- snps,nr-gpios : The number of pins in the port, a single cell.
Example:
@@ -42,6 +43,7 @@ gpio: gpio at 20000 {
compatible = "snps,dw-apb-gpio-port";
gpio-controller;
#gpio-cells = <2>;
+ snps,base = <8>;
snps,nr-gpios = <8>;
reg = <0>;
interrupt-controller;
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index 58faf04..b7e7977 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -491,6 +491,13 @@ dwapb_gpio_get_pdata_of(struct device *dev)
return ERR_PTR(-EINVAL);
}
+ if (of_property_read_u32(port_np, "snps,base",
+ &pp->gpio_base)) {
+ dev_info(dev, "no base gpio specified for %s\n",
+ port_np->full_name);
+ pp->gpio_base = -1;
+ }
+
if (of_property_read_u32(port_np, "snps,nr-gpios",
&pp->ngpio)) {
dev_info(dev, "failed to get number of gpios for %s\n",
@@ -512,7 +519,6 @@ dwapb_gpio_get_pdata_of(struct device *dev)
}
pp->irq_shared = false;
- pp->gpio_base = -1;
pp->name = port_np->full_name;
}
--
2.1.4
More information about the linux-arm-kernel
mailing list