Re: uses of irq_to_gpio() in drivers/staging/iio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/02/11 17:43, Ben Dooks wrote:
> Whilst looking in drivers/staging/iio/accel/lis3l02dq_core.c, I
> came across the following lines of code
> 
>    708          if (spi->irq && gpio_is_valid(irq_to_gpio(spi->irq)) > 0) {
>    709                  ret = request_threaded_irq(st->us->irq,
>    710                                             &lis3l02dq_th,
>    711 &lis3l02dq_event_handler,
>    712                                             IRQF_TRIGGER_RISING,
>    713                                             "lis3l02dq",
>    714                                             indio_dev);
> 
> Which gives rise to the following questions:
> 
> 1) IRQ0 and GPIO0 are often valid numbers for GPIOs.
Good point - should fix that one.  Any suggestions for a neat way
to do it?
> 
> 2) Not all interrupts are necessarily GPIO interrupts. What happens
>    if the device is attached to a hardware interrupt line which is
>    not a GPIO?
> 
Easy. It doesn't work.  Stupid hardware doesn't necessarily drop
the interrupt line on a read. Hence it sticks high. If one only has
edge triggered interrupt lines that's a pain. Is there an easy way
around this?  When I wrote the relevant code a long time ago I couldn't
get anything else to work.

There may well be a better way but I haven't revisited this recently.
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux