Re: [PATCH v4] Input: gpio_keys: Add level trigger support for GPIO keys

From: Arnd Bergmann
Date: Thu Mar 01 2018 - 09:29:50 EST


On Thu, Mar 1, 2018 at 2:59 PM, Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
> On Thu, Mar 1, 2018 at 2:37 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> On Thu, Mar 1, 2018 at 1:09 PM, Andy Shevchenko
>> <andy.shevchenko@xxxxxxxxx> wrote:
>>> On Thu, Mar 1, 2018 at 9:36 AM, Baolin Wang <baolin.wang@xxxxxxxxxx> wrote:
>>>> On some platforms (such as Spreadtrum platform), the GPIO keys can only
>>>> be triggered by level type. So this patch introduces one trigger_type to
>>>> indicate if the button's interrupt type is level trigger or edge trigger.
>>>
>>>> button->irq =
>>>> irq_of_parse_and_map(to_of_node(child), 0);
>>>
>>> AFAIU, 0 means NO_IRQ, thus,
>>>
>>>> + if (button->irq)
>>>> + button->trigger_type =
>>>> + irq_get_trigger_type(button->irq);
>>>
>>> irq_get_trigger_type(NO_IRQ) should return 0.
>>>
>>> Therefore, if (button->irq) is redundant.
>>> Did I miss anything?
>>
>> "irq_of_parse_and_map(to_of_node(child), 0);" is the first interrupt. A
>> more common way to express the same thing in modern drivers is
>> 'platform_get_irq(pdev, 0)'.
>
> Yes, though I'm talking about _returned_ value.

Got it, yes you are right.

Arnd