diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-01-28 08:21:38 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-01-28 08:21:38 -0500 |
| commit | 0ff66f0c7a5f1f4f5a0d91341b6f71fd2a49f0fa (patch) | |
| tree | 7c4d74a76bf4f49e87d769c236fdd2db77fb241d /drivers/rtc | |
| parent | c00d4ffdbace1bdc9fdd888e4ba6d207ffa3b679 (diff) | |
| parent | 4e4fc05a2b6e7bd2e0facd96e0c18dceb34d9349 (diff) | |
Merge branch 'pxa-plat' into devel
* pxa-plat: (53 commits)
[ARM] 4762/1: Basic support for Toradex Colibri module
[ARM] pxa: fix mci_init functions returning -1
[ARM] 4737/1: Refactor corgi_lcd to improve readability + bugfix
[ARM] 4747/1: pcm027: support for pcm990 baseboard for phyCORE-PXA270
[ARM] 4746/1: pcm027: network support for phyCORE-PXA270
[ARM] 4745/1: pcm027: default configuration
[ARM] 4744/1: pcm027: add support for phyCORE-PXA270 CPU module
[NET] smc91x: Make smc91x use IRQ resource trigger flags
[ARM] pxa: add default config for littleton
[ARM] pxa: add basic support for Littleton (PXA3xx Form Factor Platform)
[ARM] 4664/1: Add basic support for HTC Magician PDA phones
[ARM] 4649/1: Base support for pxa-based Toshiba e-series PDAs.
[ARM] pxa: skip registers saving/restoring if entering standby mode
[ARM] pxa: fix PXA27x resume
[ARM] pxa: Avoid fiddling with CKEN register on suspend
[ARM] pxa: Add PXA3 standby code hooked into the IRQ wake scheme
[ARM] pxa: Add zylonite MFP wakeup configurations
[ARM] pxa: program MFPs for low power mode when suspending
[ARM] pxa: make MFP configuration processor independent
[ARM] pxa: remove un-used pxa3xx_mfp_set_xxx() functions
...
Conflicts:
arch/arm/mach-pxa/ssp.c
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/rtc')
| -rw-r--r-- | drivers/rtc/rtc-sa1100.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c index 6f1e9a9804bc..2eb38520f0c8 100644 --- a/drivers/rtc/rtc-sa1100.c +++ b/drivers/rtc/rtc-sa1100.c | |||
| @@ -337,6 +337,8 @@ static int sa1100_rtc_probe(struct platform_device *pdev) | |||
| 337 | if (IS_ERR(rtc)) | 337 | if (IS_ERR(rtc)) |
| 338 | return PTR_ERR(rtc); | 338 | return PTR_ERR(rtc); |
| 339 | 339 | ||
| 340 | device_init_wakeup(&pdev->dev, 1); | ||
| 341 | |||
| 340 | platform_set_drvdata(pdev, rtc); | 342 | platform_set_drvdata(pdev, rtc); |
| 341 | 343 | ||
| 342 | return 0; | 344 | return 0; |
| @@ -352,9 +354,38 @@ static int sa1100_rtc_remove(struct platform_device *pdev) | |||
| 352 | return 0; | 354 | return 0; |
| 353 | } | 355 | } |
| 354 | 356 | ||
| 357 | #ifdef CONFIG_PM | ||
| 358 | static int sa1100_rtc_suspend(struct platform_device *pdev, pm_message_t state) | ||
| 359 | { | ||
| 360 | if (pdev->dev.power.power_state.event != state.event) { | ||
| 361 | if (state.event == PM_EVENT_SUSPEND && | ||
| 362 | device_may_wakeup(&pdev->dev)) | ||
| 363 | enable_irq_wake(IRQ_RTCAlrm); | ||
| 364 | |||
| 365 | pdev->dev.power.power_state = state; | ||
| 366 | } | ||
| 367 | return 0; | ||
| 368 | } | ||
| 369 | |||
| 370 | static int sa1100_rtc_resume(struct platform_device *pdev) | ||
| 371 | { | ||
| 372 | if (pdev->dev.power.power_state.event != PM_EVENT_ON) { | ||
| 373 | if (device_may_wakeup(&pdev->dev)) | ||
| 374 | disable_irq_wake(IRQ_RTCAlrm); | ||
| 375 | pdev->dev.power.power_state = PMSG_ON; | ||
| 376 | } | ||
| 377 | return 0; | ||
| 378 | } | ||
| 379 | #else | ||
| 380 | #define sa1100_rtc_suspend NULL | ||
| 381 | #define sa1100_rtc_resume NULL | ||
| 382 | #endif | ||
| 383 | |||
| 355 | static struct platform_driver sa1100_rtc_driver = { | 384 | static struct platform_driver sa1100_rtc_driver = { |
| 356 | .probe = sa1100_rtc_probe, | 385 | .probe = sa1100_rtc_probe, |
| 357 | .remove = sa1100_rtc_remove, | 386 | .remove = sa1100_rtc_remove, |
| 387 | .suspend = sa1100_rtc_suspend, | ||
| 388 | .resume = sa1100_rtc_resume, | ||
| 358 | .driver = { | 389 | .driver = { |
| 359 | .name = "sa1100-rtc", | 390 | .name = "sa1100-rtc", |
| 360 | }, | 391 | }, |
