Thread (9 messages) 9 messages, 5 authors, 2012-10-11

Re: [PATCH v4 RESEND 1/3] Input: egalax_ts: get gpio from devicetree

From: Russell King - ARM Linux <hidden>
Date: 2012-10-11 10:19:43
Also in: linux-arm-kernel, linux-devicetree

On Thu, Oct 11, 2012 at 04:55:40PM +0800, Shawn Guo wrote:
Add LAKML ...

On Wed, Oct 10, 2012 at 09:30:36AM -0700, Dmitry Torokhov wrote:
quoted
Hi Hui,

On Wed, Oct 10, 2012 at 05:12:01PM +0800, Hui Wang wrote:
quoted
The irq_to_gpio() is old, most platforms use GENERIC_GPIO framework
and don't support this API anymore.

The i.MX6q sabrelite platform equips an egalax touchscreen controller,
and this platform already transfered to GENERIC_GPIO framework, to
support this driver, we use a more generic way to get gpio.
Unfortunately this does break the driver for platforms that do still
support irq_to_gpio and have not transitioned to device tree (yet?).
It looks like the API suffered from premature deletion...

I really do not want to add a new platform data structure with only gpio
in it, is there a better way to detect if irq_to_gpio() (even if only a
stub) is available?
If CONFIG_ARCH_HAVE_CUSTOM_GPIO_H is not enabled for an architecture,
the irq_to_gpio() in include/linux/gpio.h will tell unavailability by
returning -EINVAL.  But ARM architecture still selects ARCH_HAVE_CUSTOM_GPIO_H
because there are still some platforms having mach/gpio.h.

We may also need a stub irq_to_gpio simply returning -EINVAL into
arch/arm/include/asm/gpio.h when platform does not provide irq_to_gpio,
so that driver can detect if irq_to_gpio() is available.  And that
stub can be removed later when we deselect ARCH_HAVE_CUSTOM_GPIO_H
for ARM architecture.
Or fix the drivers using irq_to_gpio() not to use it.  I thought we had
resolved to do that already, with Grant's agreement that irq_to_gpio()
needed to die.

(Mainly because neither gpiolib nor the IRQ layer provides any assistance
for irq_to_gpio(), so it's not possible to make it work for all GPIOs in
the system, especially when GPIOs are allocated dynamically.)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help