From: Lee Jones <lee.jones@linaro.org>
To: Nishanth Menon <nm@ti.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>,
Mark Brown <broonie@linaro.org>, Tony Lindgren <tony@atomide.com>,
Keerthy <j-keerthy@ti.com>,
devicetree@vger.kernel.org, linux-omap@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mfd: palmas: Add support for optional wakeup
Date: Mon, 1 Sep 2014 10:32:06 +0100 [thread overview]
Message-ID: <20140901093206.GJ7374@lee--X1> (raw)
In-Reply-To: <54007515.5080506@ti.com>
On Fri, 29 Aug 2014, Nishanth Menon wrote:
> On 08/29/2014 05:56 AM, Lee Jones wrote:
> > On Tue, 19 Aug 2014, Nishanth Menon wrote:
> >
> >> With the recent pinctrl-single changes, omaps can treat wake-up events
> >> from deeper idle states as interrupts.
> >>
> >> Let's add support for the optional second interrupt for wake-up
> >> events. And then SoC can wakeup and handle the event using it's
> >> regular handler.
> >>
> >> Finally, to pass the wake-up interrupt in the dts file,
> >> interrupts-extended property needs to be passed.
> >>
> >> This is similar in approach to commit 2a0b965cfb6e ("serial: omap: Add
> >> support for optional wake-up")
> >>
> >> Signed-off-by: Nishanth Menon <nm@ti.com>
> >> ---
> >> Documentation/devicetree/bindings/mfd/palmas.txt | 20 ++++++++
> >
> > DT Ack please.
Please read Documentation/devicetree/bindings/submittingpatches.txt
> >> drivers/mfd/palmas.c | 59 ++++++++++++++++++++++
> >> include/linux/mfd/palmas.h | 2 +
> >> 3 files changed, 81 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt
> >> index eda8989..2627842 100644
> >> --- a/Documentation/devicetree/bindings/mfd/palmas.txt
> >> +++ b/Documentation/devicetree/bindings/mfd/palmas.txt
> >> @@ -51,3 +51,23 @@ palmas {
> >> ....
> >> };
> >> }
> >> +
> >> +Example: with interrupts extended
> >> + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> >> + Use pinmux 0x418 as wakeup interrupt and gpio1_0 as interrupt source
> >> +
> >> +palmas {
> >
> > Should this be 'palmas@40 {'?
>
> I might have preferred that as well.. I kept the existing style in the
> documentation. Would you like me to change existing doc style too?
Yes please. Although you can do this subseqently.
[...]
> >> +static irqreturn_t palmas_wake_irq(int irq, void *_palmas)
> >> +{
> >> + /*
> >> + * Return Not handled so that interrupt is disabled.
> >> + * Level event ensures that the event is eventually handled
> >> + * by the appropriate chip handler already registered
> >> + */
> >
> > This looks okay to me, but could do with a second opinion from someone
> > who is a little more familier with this kind of h/w.
> >
> > How does this differ from threading IRQs?
>
> I could try with an example:
> consider a GPIO block 7 gpio 4 connected to a pinctrl pin 234 as the
> interrupt source for palmas.
>
> When the system is active, the GPIO block 7, gpio 4 happily functions
> as the interrupt source. However, the SoC might not capable of
> achieving SoC wide deepsleep when GPIO block 7 is active, So we have
> to power off GPIO block 7. However on achieving low power, the system
> needs to be capable of waking backup, for this, SoC uses the hardware
> at the pin itself(TI calls it control module, others have other names,
> lets for the discussion, call it pinctrl), on going to sleep the
> action of enabling the pinctrl irq - enables the wakeup capability of
> the pin, and disabling it disabled the wakeup capability. when the
> wakeup event does take place, in some cases, it might be a edge event,
> where by the time we have recofigured GPIO block, the interrupt event
> is long gone - to support this, pinctrl invokes the driver interrupt
> handler to ensure this functions. in our case(palmas), we are level
> event and can depend on GPIO block to handle it when it is configured.
>
> Basically two interrupt sources when SoC is in deep sleep(1 to exit
> from deepsleep, and other from the module handling the actual event) -
> Example: powerbutton press OR palmas RTC wakeup OR Palmas GPIO
> generated wakeup.
>
> However, this is not the same as threading IRQ as the wakeup event is
> involved only during suspend path.
>
> commit 2a0b965cfb6e ("serial: omap: Add support for optional wake-up")
>
> is a good reference from serial port handling perspective.
Thanks for the explanation. This makes sense now.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] mfd: palmas: Add support for optional wakeup
Date: Mon, 1 Sep 2014 10:32:06 +0100 [thread overview]
Message-ID: <20140901093206.GJ7374@lee--X1> (raw)
In-Reply-To: <54007515.5080506@ti.com>
On Fri, 29 Aug 2014, Nishanth Menon wrote:
> On 08/29/2014 05:56 AM, Lee Jones wrote:
> > On Tue, 19 Aug 2014, Nishanth Menon wrote:
> >
> >> With the recent pinctrl-single changes, omaps can treat wake-up events
> >> from deeper idle states as interrupts.
> >>
> >> Let's add support for the optional second interrupt for wake-up
> >> events. And then SoC can wakeup and handle the event using it's
> >> regular handler.
> >>
> >> Finally, to pass the wake-up interrupt in the dts file,
> >> interrupts-extended property needs to be passed.
> >>
> >> This is similar in approach to commit 2a0b965cfb6e ("serial: omap: Add
> >> support for optional wake-up")
> >>
> >> Signed-off-by: Nishanth Menon <nm@ti.com>
> >> ---
> >> Documentation/devicetree/bindings/mfd/palmas.txt | 20 ++++++++
> >
> > DT Ack please.
Please read Documentation/devicetree/bindings/submittingpatches.txt
> >> drivers/mfd/palmas.c | 59 ++++++++++++++++++++++
> >> include/linux/mfd/palmas.h | 2 +
> >> 3 files changed, 81 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt
> >> index eda8989..2627842 100644
> >> --- a/Documentation/devicetree/bindings/mfd/palmas.txt
> >> +++ b/Documentation/devicetree/bindings/mfd/palmas.txt
> >> @@ -51,3 +51,23 @@ palmas {
> >> ....
> >> };
> >> }
> >> +
> >> +Example: with interrupts extended
> >> + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> >> + Use pinmux 0x418 as wakeup interrupt and gpio1_0 as interrupt source
> >> +
> >> +palmas {
> >
> > Should this be 'palmas at 40 {'?
>
> I might have preferred that as well.. I kept the existing style in the
> documentation. Would you like me to change existing doc style too?
Yes please. Although you can do this subseqently.
[...]
> >> +static irqreturn_t palmas_wake_irq(int irq, void *_palmas)
> >> +{
> >> + /*
> >> + * Return Not handled so that interrupt is disabled.
> >> + * Level event ensures that the event is eventually handled
> >> + * by the appropriate chip handler already registered
> >> + */
> >
> > This looks okay to me, but could do with a second opinion from someone
> > who is a little more familier with this kind of h/w.
> >
> > How does this differ from threading IRQs?
>
> I could try with an example:
> consider a GPIO block 7 gpio 4 connected to a pinctrl pin 234 as the
> interrupt source for palmas.
>
> When the system is active, the GPIO block 7, gpio 4 happily functions
> as the interrupt source. However, the SoC might not capable of
> achieving SoC wide deepsleep when GPIO block 7 is active, So we have
> to power off GPIO block 7. However on achieving low power, the system
> needs to be capable of waking backup, for this, SoC uses the hardware
> at the pin itself(TI calls it control module, others have other names,
> lets for the discussion, call it pinctrl), on going to sleep the
> action of enabling the pinctrl irq - enables the wakeup capability of
> the pin, and disabling it disabled the wakeup capability. when the
> wakeup event does take place, in some cases, it might be a edge event,
> where by the time we have recofigured GPIO block, the interrupt event
> is long gone - to support this, pinctrl invokes the driver interrupt
> handler to ensure this functions. in our case(palmas), we are level
> event and can depend on GPIO block to handle it when it is configured.
>
> Basically two interrupt sources when SoC is in deep sleep(1 to exit
> from deepsleep, and other from the module handling the actual event) -
> Example: powerbutton press OR palmas RTC wakeup OR Palmas GPIO
> generated wakeup.
>
> However, this is not the same as threading IRQ as the wakeup event is
> involved only during suspend path.
>
> commit 2a0b965cfb6e ("serial: omap: Add support for optional wake-up")
>
> is a good reference from serial port handling perspective.
Thanks for the explanation. This makes sense now.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2014-09-01 9:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-19 14:06 [PATCH] mfd: palmas: Add support for optional wakeup Nishanth Menon
2014-08-19 14:06 ` Nishanth Menon
2014-08-19 14:06 ` Nishanth Menon
[not found] ` <1408457197-30487-1-git-send-email-nm-l0cyMroinI0@public.gmane.org>
2014-08-29 10:56 ` Lee Jones
2014-08-29 10:56 ` Lee Jones
2014-08-29 10:56 ` Lee Jones
2014-08-29 12:41 ` Nishanth Menon
2014-08-29 12:41 ` Nishanth Menon
2014-08-29 12:41 ` Nishanth Menon
2014-09-01 9:32 ` Lee Jones [this message]
2014-09-01 9:32 ` Lee Jones
2014-09-01 18:30 ` Nishanth Menon
2014-09-01 18:30 ` Nishanth Menon
2014-09-02 7:28 ` Lee Jones
2014-09-02 7:28 ` Lee Jones
2014-09-02 7:28 ` Lee Jones
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=20140901093206.GJ7374@lee--X1 \
--to=lee.jones@linaro.org \
--cc=broonie@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=j-keerthy@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=nm@ti.com \
--cc=sameo@linux.intel.com \
--cc=tony@atomide.com \
/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.