Re: Requesting different interrupt triggers for the same device type

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

 



On 12/04/2014 10:27 AM, Alexander Stein wrote:
> Hello Grygorii,
> 
> On Wednesday 03 December 2014 13:06:18, Grygorii Strashko wrote:
>> On 12/02/2014 06:45 PM, Alexander Stein wrote:
>>> Hi,
>>>
>>> I have a board which has two PCA9555 attached. Due to hardware wirings each has a different interrupt trigger. One is active low and one is active high and each has a different interrupt parent.
>>> How can I specify this in the device tree? Do I need to set IRQ_TYPE_LEVEL_LOW and IRQ_TYPE_LEVEL_HIGH approriately? How can this work, when the driver requests the interrupt like this?
>>>> ret = devm_request_threaded_irq(&client->dev,
>>>> 			client->irq,
>>>> 			NULL,
>>>> 			pca953x_irq_handler,
>>>> 			IRQF_TRIGGER_LOW | IRQF_ONESHOT |
>>>> 			IRQF_SHARED,
>>>> 			dev_name(&client->dev), chip);
>>>
>>> The interrupt flags seem rather fixed. Any comments/hints?
>>
>> See, http://www.spinics.net/lists/linux-gpio/msg02731.html
>> It may help.
> 
> Well, removing that trigger here (and in another driver where INT line is shared) it "works". It seems that each (DT-) driver should remove those explicit flags, no?

Hm. I think yes, in general. But problem is compatibility with non-DT builds and it
should be solved somehow in per-driver specific way.

probably simplest way would be smth. like this:

unsigned long irqflags = 0;

if (!dev->of_node)
	irqflags = IRQF_TRIGGER_LOW;

devm_request_threaded_irq(..,  irqflags | IRQF_ONESHOT | IRQF_SHARED, ..);

regards,
-grygorii




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




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux