On 2014年12月02日 16:42, Arnd Bergmann wrote:
On Tuesday 02 December 2014 14:43:51 Zhou Wang wrote:
how about a patch like this, we read the base from the dts here.
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index e8e98ca..0c40f53 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -107,11 +107,16 @@ struct gpio_chip *gpiod_to_chip(const struct
gpio_desc *desc)
EXPORT_SYMBOL_GPL(gpiod_to_chip);
/* dynamic allocation of GPIOs, e.g. on a hotplugged device */
-static int gpiochip_find_base(int ngpio)
+static int gpiochip_find_base(struct gpio_chip *gpio_chip)
{
struct gpio_chip *chip;
+ int ngpio = gpio_chip->ngpio;
int base = ARCH_NR_GPIOS - ngpio;
+ /* just prototype */
+ if (!of_property_read_u32(gpio_chip->dev->of_node, "base", &base))
+ return base;
+
I don't think that would be appropriate. The concept of a gpio number
base is implementation specific to current Linux versions and we want
to get rid of that in the future, so it should not be part of an
OS-independent spec.
Arnd
Got it. I will make a patch in which it finds base number of a GPIO
controller in a increasing order. Maybe it can get rid of ARCH_NR_GPIOS
in the future.
Thanks,
Zhou Wang
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html