Re: [PATCH 11/9] move twl4030-gpio to drivers/gpio

Felipe Balbi
2008-09-28T03:14:25Z

On Sat, Sep 27, 2008 at 04:45:20PM -0700, David Brownell wrote:
> On Saturday 27 September 2008, Felipe Balbi wrote:
> > We need something like the patch below (I can't find a substitute
> > to twl4030_set_gpio_edge_ctrl and twl4030_set_gpio_debounce):
>
> Something like that, yes. I have other patches queued up though.
>
> And meanwhile, your build seems goofed ... fix that first.

Yeah, it only happens when both mmc and twl4030-gpio are built as
modules. Still sounds weird since we have EXPORT_SYMBOL() for those
twl-specific crap.

Basically I'm using 3040sdp defconfig changing twl4030-gpio and mmc to
modules.

> For the moment I'm waiting until HSMMC works again in the OMAP
> tree before I submit patches for any of those issues ... and
> some of them imply updates from upstream. Like these two:
>
> http://marc.info/?l=linux-kernel&m=122239480403730&w=2
> http://marc.info/?l=linux-kernel&m=122239472903349&w=2
>
> For the "edge control" thing, I have a patch pushing that into
> the standard IRQF_TRIGGER_{RISING,FALLING} and set_irq_type()
> calls ... there was never a need for a twl-specific call here.
>
> For debouncing, see this LKML RFC:
>
> http://marc.info/?l=linux-kernel&m=122228602206108&w=2

the debouncing mechanism looks really good :-)

> > @@ -48,7 +49,7 @@
> >
> >  static int hsmmc_card_detect(int irq)
> >  {
> > -       return twl4030_get_gpio_datain(irq - TWL4030_GPIO_IRQ_BASE);
> > +       return gpio_get_value(irq - TWL4030_GPIO_IRQ_BASE);
>
> That's a non-portable version of irq_to_gpio() ... and one
> which should use gpio_get_value_cansleep(). My patches use
> a simpler scheme, which among other things lets other GPIOs
> be used for card detect.
>
> (I understand that not all OMAP3 customers want to use twl4030
> for their power management ... and in any case, having this kind
> of needless dependency between drivers is a Bad Thing.)

That's true. Didn't got that at first look. We should use something
like:

return gpio_get_value_cansleep(irq_to_gpio(irq));

right ??

it's good that you've been playing with twl4030-gpio. You've written
gpiolib anyways, so you might better than I do where stuff should go.

--
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html