Patchwork [1/2] rtc: omap: add option to indicate wakeup support through DT

login
register
mail settings
Submitter Hebbar, Gururaja
Date May 31, 2013, 6:33 a.m.
Message ID <1369982005-8572-2-git-send-email-gururaja.hebbar@ti.com>
Download mbox | patch
Permalink /patch/247852/
State New
Headers show

Comments

Hebbar, Gururaja - May 31, 2013, 6:33 a.m.
Even though RTC-IP is wakeup capable, Not all Boards support it.

For example
The rtc alarm wakeup is available in rtc-ip since omap1 days but alarm
was not wired properly in previous ompa1 boards.

	commit fa5b07820fe3a0fc06ac368516e71f10a59b9539
	Author: Sekhar Nori <nsekhar@ti.com>
	Date:   Wed Oct 27 15:33:05 2010 -0700

	rtc: omap: let device wakeup capability be configured from chip
	init logic

	The rtc-omap driver currently hardcodes the RTC wakeup
	capability to be "not capable".  While this seems to be true for
	existing OMAP1 boards which are not wired for this, the
	DA850/OMAP-L138 SoC, the RTC can always be wake up source from
	its "deep sleep" mode.

Current rtc-omap driver expects the rtc module wake-up capabilities to
be set up by board specific code. However, in case of DT, this is not
possible.

So, add a DT property "ti,wakeup_capable" to indicate that the module is
wake-up capable.

Signed-off-by: Hebbar Gururaja <gururaja.hebbar@ti.com>
---
:100644 100644 b47aa41... 108a629... M	Documentation/devicetree/bindings/rtc/rtc-omap.txt
:100644 100644 b0ba3fc... 000a02f... M	drivers/rtc/rtc-omap.c
 Documentation/devicetree/bindings/rtc/rtc-omap.txt |    4 ++++
 drivers/rtc/rtc-omap.c                             |    5 +++++
 2 files changed, 9 insertions(+)
prabhakar.csengg@gmail.com - May 31, 2013, 6:44 a.m.
Hi Gururaja,

Thanks for the patch.

On Fri, May 31, 2013 at 12:03 PM, Hebbar Gururaja
<gururaja.hebbar@ti.com> wrote:
> Even though RTC-IP is wakeup capable, Not all Boards support it.
>
> For example
> The rtc alarm wakeup is available in rtc-ip since omap1 days but alarm
> was not wired properly in previous ompa1 boards.
>
[snip]
>
> +Optional properties:
> +- ti,wakeup_capable: Inform the rtc driver that this module is wake-up
For devicetree properties '-' is preferred over '_'.

Regards,
--Prabhakar Lad
Hebbar, Gururaja - May 31, 2013, 6:46 a.m.
On Fri, May 31, 2013 at 12:14:44, Prabhakar Lad wrote:
> Hi Gururaja,
> 
> Thanks for the patch.
> 
> On Fri, May 31, 2013 at 12:03 PM, Hebbar Gururaja
> <gururaja.hebbar@ti.com> wrote:
> > Even though RTC-IP is wakeup capable, Not all Boards support it.
> >
> > For example
> > The rtc alarm wakeup is available in rtc-ip since omap1 days but alarm
> > was not wired properly in previous ompa1 boards.
> >
> [snip]
> >
> > +Optional properties:
> > +- ti,wakeup_capable: Inform the rtc driver that this module is wake-up
> For devicetree properties '-' is preferred over '_'.

Thanks for the review. I will make the correction. But will wait for some 
more time (so others can review) and then send V2

> 
> Regards,
> --Prabhakar Lad
> 


Regards, 
Gururaja
Kevin Hilman - May 31, 2013, 5:48 p.m.
Hebbar Gururaja <gururaja.hebbar@ti.com> writes:

> Even though RTC-IP is wakeup capable, Not all Boards support it.
>
> For example
> The rtc alarm wakeup is available in rtc-ip since omap1 days but alarm
> was not wired properly in previous ompa1 boards.
>
> 	commit fa5b07820fe3a0fc06ac368516e71f10a59b9539
> 	Author: Sekhar Nori <nsekhar@ti.com>
> 	Date:   Wed Oct 27 15:33:05 2010 -0700
>
> 	rtc: omap: let device wakeup capability be configured from chip
> 	init logic
>
> 	The rtc-omap driver currently hardcodes the RTC wakeup
> 	capability to be "not capable".  While this seems to be true for
> 	existing OMAP1 boards which are not wired for this, the
> 	DA850/OMAP-L138 SoC, the RTC can always be wake up source from
> 	its "deep sleep" mode.
>
> Current rtc-omap driver expects the rtc module wake-up capabilities to
> be set up by board specific code. However, in case of DT, this is not
> possible.
>
> So, add a DT property "ti,wakeup_capable" to indicate that the module is
> wake-up capable.

Why is this a TI-specific property?  

Also, I think we can do this without a new DT property.Did you see this
patch from Tony which is already queued for v3.11:

    http://marc.info/?l=linux-omap&m=136917244530612&w=2

I think this is the right way to go.  Platforms that don't want/need
wakeup support can disable it from userspace via:

    echo disabled > /sys/devices/.../power/wakeup

Kevin
Hebbar, Gururaja - June 4, 2013, 9:48 a.m.
On Fri, May 31, 2013 at 23:18:03, Kevin Hilman wrote:
> Hebbar Gururaja <gururaja.hebbar@ti.com> writes:
> 
> > Even though RTC-IP is wakeup capable, Not all Boards support it.
> >
> > For example
> > The rtc alarm wakeup is available in rtc-ip since omap1 days but alarm
> > was not wired properly in previous ompa1 boards.
> >
> > 	commit fa5b07820fe3a0fc06ac368516e71f10a59b9539
> > 	Author: Sekhar Nori <nsekhar@ti.com>
> > 	Date:   Wed Oct 27 15:33:05 2010 -0700
> >
> > 	rtc: omap: let device wakeup capability be configured from chip
> > 	init logic
> >
> > 	The rtc-omap driver currently hardcodes the RTC wakeup
> > 	capability to be "not capable".  While this seems to be true for
> > 	existing OMAP1 boards which are not wired for this, the
> > 	DA850/OMAP-L138 SoC, the RTC can always be wake up source from
> > 	its "deep sleep" mode.
> >
> > Current rtc-omap driver expects the rtc module wake-up capabilities to
> > be set up by board specific code. However, in case of DT, this is not
> > possible.
> >
> > So, add a DT property "ti,wakeup_capable" to indicate that the module is
> > wake-up capable.
> 
> Why is this a TI-specific property?  

May be I am wrong but isn't this driver used only be TI SoC (Davinci, OMAP ...)

> 
> Also, I think we can do this without a new DT property.Did you see this
> patch from Tony which is already queued for v3.11:
> 
>     http://marc.info/?l=linux-omap&m=136917244530612&w=2

AFAIK, all boards that use twl rtc IP by default support rtc wakeup.

However, as mentioned in the commit message not all boards that uses
OMAP rtc IP supports rtc wake up (due to somoe wiring issue).
Hence I am adding a new DT property for this.

> 
> I think this is the right way to go.  Platforms that don't want/need
> wakeup support can disable it from userspace via:
> 
>     echo disabled > /sys/devices/.../power/wakeup

Hmmm. Debatable. Let me get some more info about this and come back

> 
> Kevin
> 
> 


Regards, 
Gururaja

Patch

diff --git a/Documentation/devicetree/bindings/rtc/rtc-omap.txt b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
index b47aa41..108a629 100644
--- a/Documentation/devicetree/bindings/rtc/rtc-omap.txt
+++ b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
@@ -6,6 +6,10 @@  Required properties:
 - interrupts: rtc timer, alarm interrupts in order
 - interrupt-parent: phandle for the interrupt controller
 
+Optional properties:
+- ti,wakeup_capable: Inform the rtc driver that this module is wake-up
+  capable so that rtcwake and suspend tests can work.
+
 Example:
 
 rtc@1c23000 {
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index b0ba3fc..000a02f 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -423,6 +423,11 @@  static int __init omap_rtc_probe(struct platform_device *pdev)
 	 *    is write-only, and always reads as zero...)
 	 */
 
+	/* Fixup wakeup-enable feature based on the device tree */
+	if (of_id && of_find_property(pdev->dev.of_node,
+				      "ti,wakeup_capable", NULL))
+		device_init_wakeup(&pdev->dev, 1);
+
 	if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
 		pr_info("%s: split power mode\n", pdev->name);