All of lore.kernel.org
 help / color / mirror / Atom feed
From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: device-tree: at91: irq and gpios: problem while requesting a gpio used as an interrupt source.
Date: Wed, 15 Jan 2014 18:28:37 +0100	[thread overview]
Message-ID: <52D6C545.6080402@atmel.com> (raw)
In-Reply-To: <52D3C166.5050908@overkiz.com>

On 13/01/2014 11:35, boris brezillon :
> On 13/01/2014 11:29, Jean-Jacques Hiblot wrote:
>> Hello Nicolas, Jean-Christophe,
>>
>> As I was trying to enable the touchscreen on the at91sam9261ek with
>> device-tree support, I ran into an issue. The touchscreen driver needs
>> to know the state of the pendown gpio and also needs it as an
>> interrupt source.
>>
>> The problem is that when a gpio is used as an interrupt, it's
>> requested by the pinctrl driver during the xlate stage, marking it
>> unavaliable for the other driver.
>> It looks like the at91 pinctrl driver is the only one to use
>> gpio_request() in the xlate stage. Maybe we should remove this:
> 
> You should only request it as a GPIO and then use gpio_to_irq to get the
> related IRQ.
> Because what is done here, is to solve the case where only the irq
> is request, and in this specific case we need to request the pin as a
> GPIO.

Yes, this is what we do.

It seems simple and obvious to me, but some may say that "you shall not
do that, it is horrible!". Well... I always tend to choose a solution
that works. It is one of my weaknesses, I admit ;-)

Linus W. any advice on this, before we hit again one of those infinite
threads that leads no progress at all?


>> diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
>> index a7549c4..cf91a35 100644
>> --- a/drivers/pinctrl/pinctrl-at91.c
>> +++ b/drivers/pinctrl/pinctrl-at91.c
>> @@ -1463,14 +1463,6 @@ static int at91_gpio_irq_domain_xlate(struct
>> irq_domain *d,
>>          *out_hwirq = intspec[0];
>>          *out_type = intspec[1] & IRQ_TYPE_SENSE_MASK;
>>
>> -       ret = gpio_request(pin, ctrlr->full_name);
>> -       if (ret)
>> -               return ret;
>> -
>> -       ret = gpio_direction_input(pin);
>> -       if (ret)
>> -               return ret;
>> -
>>          return 0;
>>   }
>>
>> Jean-Jacques
> 
> 
> 


-- 
Nicolas Ferre

  parent reply	other threads:[~2014-01-15 17:28 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-13 10:29 device-tree: at91: irq and gpios: problem while requesting a gpio used as an interrupt source Jean-Jacques Hiblot
2014-01-13 10:35 ` boris brezillon
2014-01-13 11:05   ` Jean-Jacques Hiblot
2014-01-15 12:33     ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-15 13:04       ` Jean-Jacques Hiblot
2014-01-15 13:20         ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-15 13:44           ` Jean-Jacques Hiblot
2014-01-15 13:48             ` Arnd Bergmann
2014-01-15 13:56             ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-15 14:41               ` Jean-Jacques Hiblot
2014-01-15 15:25                 ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-15 15:30                   ` Jean-Jacques Hiblot
2014-01-15 18:00                     ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-15 17:28   ` Nicolas Ferre [this message]
2014-01-22 10:11     ` Linus Walleij
2014-01-22 12:23       ` Jean-Jacques Hiblot
2014-01-15 18:06   ` Jean-Christophe PLAGNIOL-VILLARD
2014-01-16  8:54     ` boris brezillon
2014-01-16 11:04       ` Nicolas Ferre
2014-01-16 12:02         ` Jean-Jacques Hiblot
2014-01-22 10:15           ` Linus Walleij
2014-01-23 13:16             ` Jean-Jacques Hiblot
2014-01-31  8:03               ` Linus Walleij
2014-01-31  8:03                 ` Linus Walleij
2014-01-15 12:02 ` Jean-Christophe PLAGNIOL-VILLARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52D6C545.6080402@atmel.com \
    --to=nicolas.ferre@atmel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.