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 <nsek...@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.heb...@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(+)

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);
 
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to