[PATCH v3] powerpc: Specify GPIO number base for controller in DT
Wolfgang Ocker
weo at reccoware.de
Fri Oct 24 01:49:38 EST 2008
The GPIOLIB allows the specification of a base gpio number for a
controller. That is not possible using OF. Instead, free gpio numbers
are assigned.
In order to allow static, predefined gpio numbers, a base property in
the gpio controller node specifies the first gpio number.
v2, v3: added/improved description of base property in doc
Signed-off-by: Wolfgang Ocker <weo at reccoware.de>
---
--- linux-2.6.27.2/drivers/of/gpio.c.of_gpiospecbase 2008-10-18 19:57:22.000000000 +0200
+++ linux-2.6.27.2/drivers/of/gpio.c 2008-10-23 10:55:19.000000000 +0200
@@ -164,6 +164,8 @@
int ret = -ENOMEM;
struct of_gpio_chip *of_gc = &mm_gc->of_gc;
struct gpio_chip *gc = &of_gc->gc;
+ const int *basep;
+ int baselen;
gc->label = kstrdup(np->full_name, GFP_KERNEL);
if (!gc->label)
@@ -173,7 +175,11 @@
if (!mm_gc->regs)
goto err1;
- gc->base = -1;
+ basep = of_get_property(np, "base", &baselen);
+ if (!basep || baselen != sizeof(*basep))
+ gc->base = -1;
+ else
+ gc->base = *basep;
if (!of_gc->xlate)
of_gc->xlate = of_gpio_simple_xlate;
--- linux-2.6.27.2/Documentation/powerpc/booting-without-of.txt.of_gpiospecbase 2008-10-18 19:57:22.000000000 +0200
+++ linux-2.6.27.2/Documentation/powerpc/booting-without-of.txt 2008-10-23 16:45:06.000000000 +0200
@@ -2580,12 +2582,17 @@
Every GPIO controller node must have #gpio-cells property defined,
this information will be used to translate gpio-specifiers.
+Optional properties:
+ base: first GPIO number handled by this controller; if the property
+ does not exist, the first GPIO number is allocated dynamicly
+
Example of two SOC GPIO banks defined as gpio-controller nodes:
qe_pio_a: gpio-controller at 1400 {
#gpio-cells = <2>;
compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank";
reg = <0x1400 0x18>;
+ base = < 0x20 >;
gpio-controller;
};
More information about the Linuxppc-dev
mailing list