Commit fa5b0782 authored by Sekhar Nori's avatar Sekhar Nori Committed by Linus Torvalds

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.

This patch lets the wakeup capability be set from platform data and does
not override the setting from the driver.  For DA850/OMAP-L138, this is
done from arch/arm/mach-davinci/devices-da8xx.c:da8xx_register_rtc()

Note that this patch does not change the behavior on any existing OMAP1
board since the platform device registration sets the wakeup capability to
0 by default.
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Wan ZongShun <mcuos.com@gmail.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 59cca865
...@@ -34,7 +34,8 @@ ...@@ -34,7 +34,8 @@
* Board-specific wiring options include using split power mode with * Board-specific wiring options include using split power mode with
* RTC_OFF_NOFF used as the reset signal (so the RTC won't be reset), * RTC_OFF_NOFF used as the reset signal (so the RTC won't be reset),
* and wiring RTC_WAKE_INT (so the RTC alarm can wake the system from * and wiring RTC_WAKE_INT (so the RTC alarm can wake the system from
* low power modes). See the BOARD-SPECIFIC CUSTOMIZATION comment. * low power modes) for OMAP1 boards (OMAP-L138 has this built into
* the SoC). See the BOARD-SPECIFIC CUSTOMIZATION comment.
*/ */
#define OMAP_RTC_BASE 0xfffb4800 #define OMAP_RTC_BASE 0xfffb4800
...@@ -401,16 +402,17 @@ static int __init omap_rtc_probe(struct platform_device *pdev) ...@@ -401,16 +402,17 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
/* BOARD-SPECIFIC CUSTOMIZATION CAN GO HERE: /* BOARD-SPECIFIC CUSTOMIZATION CAN GO HERE:
* *
* - Boards wired so that RTC_WAKE_INT does something, and muxed * - Device wake-up capability setting should come through chip
* right (W13_1610_RTC_WAKE_INT is the default after chip reset), * init logic. OMAP1 boards should initialize the "wakeup capable"
* should initialize the device wakeup flag appropriately. * flag in the platform device if the board is wired right for
* being woken up by RTC alarm. For OMAP-L138, this capability
* is built into the SoC by the "Deep Sleep" capability.
* *
* - Boards wired so RTC_ON_nOFF is used as the reset signal, * - Boards wired so RTC_ON_nOFF is used as the reset signal,
* rather than nPWRON_RESET, should forcibly enable split * rather than nPWRON_RESET, should forcibly enable split
* power mode. (Some chip errata report that RTC_CTRL_SPLIT * power mode. (Some chip errata report that RTC_CTRL_SPLIT
* is write-only, and always reads as zero...) * is write-only, and always reads as zero...)
*/ */
device_init_wakeup(&pdev->dev, 0);
if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT) if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT)
pr_info("%s: split power mode\n", pdev->name); pr_info("%s: split power mode\n", pdev->name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment