Thread (9 messages) 9 messages, 4 authors, 2014-09-20

Re: [PATCH 1/2] x86, gpio: Increase ARCH_NR_GPIOs to 512

From: Linus Walleij <hidden>
Date: 2014-09-09 07:25:07
Also in: lkml

On Mon, Sep 8, 2014 at 1:47 PM, Mika Westerberg
[off-list ref] wrote:
Some newer Intel SoCs like Braswell already have more than 256 GPIOs
available so the default limit is exceeded. In order to support these add
back the custom GPIO header with limit of 512 GPIOs for x86.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Argh! This is the kind of stuff I want to get rid of ....

Preferably gpio should be a subsystem without a lot of hooks all over
the place with arch-specific modifications for this and that, including
the max number of GPIOs.

I would actually prefer if you bump the value in
include/asm-generic/gpio.h to 512 over this.

But better still, now that we have descriptors etc would be to define
some new per-arch selectable config option like
CONFIG_ONLY_DYNAMIC_GPIO that changes the GPIO
core to use something like a radix tree to store and retrieve
descriptors.

I.e. in drivers/gpio/gpiolib.c get rid of this:
static struct gpio_desc gpio_desc[ARCH_NR_GPIOS];

Replace it with a radix tree of descriptors.

This however makes it *impossible* to use things like desc_to_gpio()
and/or gpio_to_desc() so the code has to be augmented all over the
place to avoid any uses of GPIO numbers on that architecture,
but I am sure it *can* be done on pure ACPI or device tree
systems, and that's what we should aim for.

Comments?

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help