All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Hunter <jon-hunter@ti.com>
To: Javier Martinez Canillas <martinez.javier@gmail.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
	Stephen Warren <swarren@nvidia.com>,
	Kevin Hilman <khilman@deeprootsystems.com>,
	"devicetree-discuss@lists.ozlabs.org"
	<devicetree-discuss@lists.ozlabs.org>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Grant Likely <grant.likely@secretlab.ca>
Subject: Re: [PATCH 3/5] gpio/omap: Add DT support to GPIO driver
Date: Wed, 27 Feb 2013 17:16:09 -0600	[thread overview]
Message-ID: <512E93B9.8020806@ti.com> (raw)
In-Reply-To: <CAAwP0s3rbExrSf-W325uCPfMO=Zk9LefRP0VD4JC1tg_sxS_gQ@mail.gmail.com>


On 02/26/2013 09:57 PM, Javier Martinez Canillas wrote:

[snip]

> Something like that would definitely solve the GPIO request issue but
> we still have the issue that the current OMAP GPIO controller binding
> does not support #interrupt-cells = <2>.
> 
> So, we can't pass the trigger type and level flags for an IRQ-GPIO
> when using an GPIO controller as the interrupt-parent for a device
> node.
> 
> Do you have any comments on that issue?

Can you elaborate a bit more on why you say this is not supported?

I have been playing with this today on an omap board and if I set the
#interrupt-cells = <2>, then I do see that irq_domain_xlate_onetwocell()
is called and the irq number and flags read as expected. Following which
I then see it will call the omap_irq_type() to set type. So AFAICT it works.

Please note I do see that when the SMC driver calls request_irq() in
smc_drv_probe() it is also settings the trigger type to
IRQ_TYPE_EDGE_RISING (default). So if you are setting to low-level
sensitive in DT, then this is being overwritten. We could fix this by
setting SMC_IRQ_FLAGS to -1 for OMAP.

In general we do need to fix the gpio binding for omap to default to
#interrupt-cell = <2>, as this should work. However, before we can do
that we need to fix the issue of ensuring the gpio module is enabled if
being used as an interrupt source without having to call gpio_request()
first.

We should probably add the following patch as well to avoid any hangs if
the bank is not enabled, when omap_irq_type is called.

commit 5e298de564e09f5ca4148a9bc0ed5d16b4742f14
Author: Jon Hunter <jon-hunter@ti.com>
Date:   Wed Feb 27 17:14:11 2013 -0600

    gpio/omap: warn if gpio bank is not enabled on setting irq type

diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index f1fbedb2..cbdc796 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -421,6 +421,9 @@ static int gpio_irq_type(struct irq_data *d,
unsigned type)
        int retval;
        unsigned long flags;

+       if (WARN_ON(!bank->mod_usage))
+               return -EINVAL;
+
 #ifdef CONFIG_ARCH_OMAP1
        if (d->irq > IH_MPUIO_BASE)
                gpio = OMAP_MPUIO(d->irq - IH_MPUIO_BASE);


Cheers
Jon



WARNING: multiple messages have this Message-ID (diff)
From: jon-hunter@ti.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/5] gpio/omap: Add DT support to GPIO driver
Date: Wed, 27 Feb 2013 17:16:09 -0600	[thread overview]
Message-ID: <512E93B9.8020806@ti.com> (raw)
In-Reply-To: <CAAwP0s3rbExrSf-W325uCPfMO=Zk9LefRP0VD4JC1tg_sxS_gQ@mail.gmail.com>


On 02/26/2013 09:57 PM, Javier Martinez Canillas wrote:

[snip]

> Something like that would definitely solve the GPIO request issue but
> we still have the issue that the current OMAP GPIO controller binding
> does not support #interrupt-cells = <2>.
> 
> So, we can't pass the trigger type and level flags for an IRQ-GPIO
> when using an GPIO controller as the interrupt-parent for a device
> node.
> 
> Do you have any comments on that issue?

Can you elaborate a bit more on why you say this is not supported?

I have been playing with this today on an omap board and if I set the
#interrupt-cells = <2>, then I do see that irq_domain_xlate_onetwocell()
is called and the irq number and flags read as expected. Following which
I then see it will call the omap_irq_type() to set type. So AFAICT it works.

Please note I do see that when the SMC driver calls request_irq() in
smc_drv_probe() it is also settings the trigger type to
IRQ_TYPE_EDGE_RISING (default). So if you are setting to low-level
sensitive in DT, then this is being overwritten. We could fix this by
setting SMC_IRQ_FLAGS to -1 for OMAP.

In general we do need to fix the gpio binding for omap to default to
#interrupt-cell = <2>, as this should work. However, before we can do
that we need to fix the issue of ensuring the gpio module is enabled if
being used as an interrupt source without having to call gpio_request()
first.

We should probably add the following patch as well to avoid any hangs if
the bank is not enabled, when omap_irq_type is called.

commit 5e298de564e09f5ca4148a9bc0ed5d16b4742f14
Author: Jon Hunter <jon-hunter@ti.com>
Date:   Wed Feb 27 17:14:11 2013 -0600

    gpio/omap: warn if gpio bank is not enabled on setting irq type

diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index f1fbedb2..cbdc796 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -421,6 +421,9 @@ static int gpio_irq_type(struct irq_data *d,
unsigned type)
        int retval;
        unsigned long flags;

+       if (WARN_ON(!bank->mod_usage))
+               return -EINVAL;
+
 #ifdef CONFIG_ARCH_OMAP1
        if (d->irq > IH_MPUIO_BASE)
                gpio = OMAP_MPUIO(d->irq - IH_MPUIO_BASE);


Cheers
Jon

  parent reply	other threads:[~2013-02-27 23:16 UTC|newest]

Thread overview: 190+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-15 16:04 [PATCH 0/5] gpio/omap: Cleanup and adaptation to Device Tree Benoit Cousson
2012-02-15 16:04 ` Benoit Cousson
2012-02-15 16:04 ` [PATCH 1/5] gpio/omap: Remove bank->id information and misc cleanup Benoit Cousson
2012-02-15 16:04   ` Benoit Cousson
2012-02-16  5:53   ` DebBarma, Tarun Kanti
2012-02-16  5:53     ` DebBarma, Tarun Kanti
2012-02-16  9:33     ` Cousson, Benoit
2012-02-16  9:33       ` Cousson, Benoit
2012-02-15 16:04 ` [PATCH 2/5] gpio/omap: Use devm_ API and add request_mem_region Benoit Cousson
2012-02-15 16:04   ` Benoit Cousson
2012-02-16  5:41   ` DebBarma, Tarun Kanti
2012-02-16  5:41     ` DebBarma, Tarun Kanti
2012-02-16  6:35     ` Grant Likely
2012-02-16  6:35       ` Grant Likely
2012-02-16  7:11       ` DebBarma, Tarun Kanti
2012-02-16  7:11         ` DebBarma, Tarun Kanti
2012-02-16  6:37     ` Shubhrajyoti
2012-02-16  6:37       ` Shubhrajyoti
2012-02-16  8:56       ` Cousson, Benoit
2012-02-16  8:56         ` Cousson, Benoit
2012-02-15 16:04 ` [PATCH 3/5] gpio/omap: Add DT support to GPIO driver Benoit Cousson
2012-02-15 16:04   ` Benoit Cousson
2012-02-22 14:23   ` Rob Herring
2012-02-22 14:23     ` Rob Herring
2012-02-22 14:31     ` Cousson, Benoit
2012-02-22 14:31       ` Cousson, Benoit
2012-02-22 17:23       ` Rob Herring
2012-02-22 17:23         ` Rob Herring
2012-02-22 18:29         ` Stephen Warren
2012-02-22 18:29           ` Stephen Warren
2012-02-24 15:30           ` Cousson, Benoit
2012-02-24 15:30             ` Cousson, Benoit
2013-02-26 10:01             ` Javier Martinez Canillas
2013-02-26 10:01               ` Javier Martinez Canillas
2013-02-26 16:33               ` Stephen Warren
2013-02-26 16:33                 ` Stephen Warren
2013-02-26 22:40               ` Jon Hunter
2013-02-26 22:40                 ` Jon Hunter
2013-02-26 22:44                 ` Stephen Warren
2013-02-26 22:44                   ` Stephen Warren
2013-02-26 23:01                   ` Jon Hunter
2013-02-26 23:01                     ` Jon Hunter
2013-02-26 23:06                     ` Stephen Warren
2013-02-26 23:06                       ` Stephen Warren
2013-02-26 23:45                       ` Jon Hunter
2013-02-26 23:45                         ` Jon Hunter
2013-02-27  0:13                         ` Stephen Warren
2013-02-27  0:13                           ` Stephen Warren
2013-02-27  1:07                           ` Jon Hunter
2013-02-27  1:07                             ` Jon Hunter
2013-02-27  3:57                             ` Javier Martinez Canillas
2013-02-27  3:57                               ` Javier Martinez Canillas
2013-02-27 17:50                               ` Stephen Warren
2013-02-27 17:50                                 ` Stephen Warren
2013-02-27 20:05                                 ` Javier Martinez Canillas
2013-02-27 20:05                                   ` Javier Martinez Canillas
2013-02-27 23:16                               ` Jon Hunter [this message]
2013-02-27 23:16                                 ` Jon Hunter
2013-02-28 12:17                                 ` Javier Martinez Canillas
2013-02-28 12:17                                   ` Javier Martinez Canillas
2013-02-28 20:49                                   ` Jon Hunter
2013-02-28 20:49                                     ` Jon Hunter
     [not found]                     ` <512D3EC2.6050408-l0cyMroinI0@public.gmane.org>
2013-03-02 20:05                       ` Grant Likely
2013-03-02 20:05                         ` Grant Likely
2013-03-07 23:14                         ` Jon Hunter
2013-03-07 23:14                           ` Jon Hunter
2013-03-15 11:21                           ` Javier Martinez Canillas
2013-03-15 11:21                             ` Javier Martinez Canillas
2013-03-22  8:10                             ` Linus Walleij
2013-03-22  8:10                               ` Linus Walleij
2013-03-22 15:33                               ` Stephen Warren
2013-03-22 15:33                                 ` Stephen Warren
2013-03-22 22:52                                 ` Jon Hunter
2013-03-22 22:52                                   ` Jon Hunter
2013-03-27 13:52                                   ` Linus Walleij
2013-03-27 13:52                                     ` Linus Walleij
2013-03-27 16:09                                     ` Stephen Warren
2013-03-27 16:09                                       ` Stephen Warren
2013-03-27 20:55                                       ` Linus Walleij
2013-03-27 20:55                                         ` Linus Walleij
2013-03-29 17:01                                         ` Stephen Warren
2013-03-29 17:01                                           ` Stephen Warren
2013-04-10 18:12                                           ` Linus Walleij
2013-04-10 18:12                                             ` Linus Walleij
2013-04-10 20:29                                             ` Stephen Warren
2013-04-10 20:29                                               ` Stephen Warren
2013-04-10 21:28                                               ` Linus Walleij
2013-04-10 21:28                                                 ` Linus Walleij
2013-04-11 20:30                                                 ` Stephen Warren
2013-04-11 20:30                                                   ` Stephen Warren
2013-04-11 22:16                                                   ` Linus Walleij
2013-04-11 22:16                                                     ` Linus Walleij
2013-04-11 22:47                                                     ` Stephen Warren
2013-04-11 22:47                                                       ` Stephen Warren
2013-04-14  1:35                                                       ` Javier Martinez Canillas
2013-04-14  1:35                                                         ` Javier Martinez Canillas
2013-04-14 20:53                                                         ` Linus Walleij
2013-04-14 20:53                                                           ` Linus Walleij
2013-04-15 11:25                                                           ` Javier Martinez Canillas
2013-04-15 11:25                                                             ` Javier Martinez Canillas
2013-04-15 16:58                                                           ` Stephen Warren
2013-04-15 16:58                                                             ` Stephen Warren
     [not found]                                                             ` <516C73C6.5050409@ti.co m>
2013-04-15 21:40                                                             ` Jon Hunter
2013-04-15 21:40                                                               ` Jon Hunter
2013-04-15 21:44                                                               ` Jon Hunter
2013-04-15 21:44                                                                 ` Jon Hunter
2013-04-15 22:16                                                               ` Stephen Warren
2013-04-15 22:16                                                                 ` Stephen Warren
2013-04-15 23:04                                                                 ` Jon Hunter
2013-04-15 23:04                                                                   ` Jon Hunter
2013-04-16 18:40                                                                   ` Stephen Warren
2013-04-16 18:40                                                                     ` Stephen Warren
2013-04-16 19:27                                                                     ` Jon Hunter
2013-04-16 19:27                                                                       ` Jon Hunter
2013-04-16 21:57                                                                       ` Jon Hunter
2013-04-16 21:57                                                                         ` Jon Hunter
2013-04-16 22:11                                                                       ` Stephen Warren
2013-04-16 22:11                                                                         ` Stephen Warren
2013-04-16 23:14                                                                         ` Jon Hunter
2013-04-16 23:14                                                                           ` Jon Hunter
2013-04-17  0:41                                                                           ` Javier Martinez Canillas
2013-04-17  0:41                                                                             ` Javier Martinez Canillas
2013-04-17  2:00                                                                             ` Jon Hunter
2013-04-17  2:00                                                                               ` Jon Hunter
2013-04-17  7:55                                                                               ` Javier Martinez Canillas
2013-04-17  7:55                                                                                 ` Javier Martinez Canillas
     [not found]                                                                                 ` <CAAwP0s2M2pnSydyDvh_rejFO=w8bCo4WE5PkxrYuk0HQDixc-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-17 13:25                                                                                   ` Jon Hunter
2013-04-17 13:25                                                                                     ` Jon Hunter
2013-04-17 13:42                                                                                     ` Javier Martinez Canillas
2013-04-17 13:42                                                                                       ` Javier Martinez Canillas
     [not found]                                                                                       ` <CAAwP0s2DsJAWuXWvPAkzCT0T0AG_OvMEw2sADW6LqSi1Ofd_Zw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-04-17 13:52                                                                                         ` Jon Hunter
2013-04-17 13:52                                                                                           ` Jon Hunter
2013-04-17 14:21                                                                                           ` Javier Martinez Canillas
2013-04-17 14:21                                                                                             ` Javier Martinez Canillas
2013-04-17 16:18                                                                                           ` Javier Martinez Canillas
2013-04-17 16:18                                                                                             ` Javier Martinez Canillas
2013-04-26  7:31                                                                             ` Linus Walleij
2013-04-26  7:31                                                                               ` Linus Walleij
2013-04-26 21:31                                                                               ` Jon Hunter
2013-04-26 21:31                                                                                 ` Jon Hunter
2013-06-11 21:25                                                                                 ` Grant Likely
2013-06-11 21:25                                                                                   ` Grant Likely
2013-06-12  9:43                                                                                   ` Linus Walleij
2013-06-12  9:43                                                                                     ` Linus Walleij
2013-04-17 15:41                                                                           ` Stephen Warren
2013-04-17 15:41                                                                             ` Stephen Warren
2013-04-26  7:27                                                                             ` Linus Walleij
2013-04-26  7:27                                                                               ` Linus Walleij
2013-04-26 21:25                                                                               ` Jon Hunter
2013-04-26 21:25                                                                                 ` Jon Hunter
     [not found]                                                                                 ` <517AF0C1.60009-l0cyMroinI0@public.gmane.org>
2013-05-03 14:35                                                                                   ` Linus Walleij
2013-05-03 14:35                                                                                     ` Linus Walleij
2013-04-26  7:11                                                               ` Linus Walleij
2013-04-26  7:11                                                                 ` Linus Walleij
2013-04-26  6:59                                                             ` Linus Walleij
2013-04-26  6:59                                                               ` Linus Walleij
2013-04-15 16:53                                                         ` Stephen Warren
2013-04-15 16:53                                                           ` Stephen Warren
2013-04-15 20:00                                                           ` Jon Hunter
2013-04-15 20:00                                                             ` Jon Hunter
2013-04-11 22:49                                                     ` Javier Martinez Canillas
2013-04-11 22:49                                                       ` Javier Martinez Canillas
2013-04-11 22:51                                                     ` Stephen Warren
2013-04-11 22:51                                                       ` Stephen Warren
2013-04-10 21:44                                               ` Arnd Bergmann
2013-04-10 21:44                                                 ` Arnd Bergmann
2013-02-27  3:33                 ` Javier Martinez Canillas
2013-02-27  3:33                   ` Javier Martinez Canillas
2013-02-27 17:47                   ` Stephen Warren
2013-02-27 17:47                     ` Stephen Warren
2013-02-27 20:00                     ` Javier Martinez Canillas
2013-02-27 20:00                       ` Javier Martinez Canillas
2013-02-26 23:08               ` Jon Hunter
2013-02-26 23:08                 ` Jon Hunter
2013-02-27  3:47                 ` Javier Martinez Canillas
2013-02-27  3:47                   ` Javier Martinez Canillas
2013-02-27 20:13                   ` Jon Hunter
2013-02-27 20:13                     ` Jon Hunter
2013-02-27 23:41   ` Linus Walleij
2013-02-27 23:41     ` Linus Walleij
2013-02-28 13:04     ` Benoit Cousson
2013-02-28 13:04       ` Benoit Cousson
2013-03-01  0:09       ` Linus Walleij
2013-03-01  0:09         ` Linus Walleij
2013-03-01  0:42         ` Jon Hunter
2013-03-01  0:42           ` Jon Hunter
2012-02-15 16:04 ` [PATCH 4/5] arm/dts: OMAP4: Add gpio nodes Benoit Cousson
2012-02-15 16:04   ` Benoit Cousson
2012-02-15 16:04 ` [PATCH 5/5] arm/dts: OMAP3: " Benoit Cousson
2012-02-15 16:04   ` Benoit Cousson

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=512E93B9.8020806@ti.com \
    --to=jon-hunter@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=khilman@deeprootsystems.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=martinez.javier@gmail.com \
    --cc=swarren@nvidia.com \
    --cc=swarren@wwwdotorg.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.