aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKumar Sanghvi <kumar.sanghvi@stericsson.com>2010-06-04 14:15:13 +0530
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:39 -0600
commit5a6abfa960d4fbc7e0692dca275f80662e33636d (patch)
tree722871649b6fd660e96635c8cb1dbf45f03a4843 /arch
parentcd027ffc1cd2701a933a5e3160dd3e379f03811e (diff)
downloadlinux-2.6.34-ux500-5a6abfa960d4fbc7e0692dca275f80662e33636d.tar.gz
u8500-prcmu: Enable mod_sw_reset_req as a wakeup event
With prcmu-fw 12-0-4-0 onwards, mod_sw_reset_req is part of AckMb0 -wakup mailbox. So, explicitly enable mod_sw_reset_req to be sent as a wakeup event ST-Ericsson ID: ER262956 Signed-off-by: Kumar Sanghvi <kumar.sanghvi@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Change-Id: Ibebdfc8c39d8144d1e323f1cb6ee520220473161 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/2525 Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'arch')
-rwxr-xr-xarch/arm/mach-ux500/prcmu-fw.c17
-rwxr-xr-xarch/arm/mach-ux500/prcmu-fw_v1.h2
2 files changed, 14 insertions, 5 deletions
diff --git a/arch/arm/mach-ux500/prcmu-fw.c b/arch/arm/mach-ux500/prcmu-fw.c
index 728782c8600..8772a145406 100755
--- a/arch/arm/mach-ux500/prcmu-fw.c
+++ b/arch/arm/mach-ux500/prcmu-fw.c
@@ -828,8 +828,12 @@ int prcmu_apply_ap_state_transition(enum ap_pwrst_trans_t transition,
writel(tmp, PRCM_ARMITMSK31TO0 + (val * 4));
}
- prcmu_configure_wakeup_events(((1 << 17) | (1 << 5)),
- 0x0, EXE_WAKEUP);
+ prcmu_configure_wakeup_events((PRCMU_WAKEUPBY_ARMITMGMT |
+ PRCMU_WAKEUPBY_MODEM |
+ PRCMU_WAKEUPBY_MODEM_SW_RESET_REQ),
+ PRCMU_WAKEUPBY_AB8500_NONE,
+ EXE_WAKEUP);
+
spin_lock(&req_mb0_lock);
/* CREATE MAILBOX FOR EXECUTE TO IDLE POWER TRANSITION */
@@ -901,7 +905,9 @@ int prcmu_apply_ap_state_transition(enum ap_pwrst_trans_t transition,
/* here comes the wfi */
__asm__ __volatile__("dsb\n\t" "wfi\n\t" : : : "memory");
- prcmu_configure_wakeup_events((1 << 5), 0x0, EXE_WAKEUP);
+ prcmu_configure_wakeup_events((PRCMU_WAKEUPBY_MODEM |
+ PRCMU_WAKEUPBY_MODEM_SW_RESET_REQ),
+ PRCMU_WAKEUPBY_AB8500_NONE, EXE_WAKEUP);
break;
@@ -1615,8 +1621,9 @@ static int prcmu_fw_init(void)
spin_lock_init(&ca_wake_lock);
/* configure the wakeup events */
- event_8500 = (1 << 5);
- event_4500 = 0x0;
+ event_8500 = (PRCMU_WAKEUPBY_MODEM |
+ PRCMU_WAKEUPBY_MODEM_SW_RESET_REQ);
+ event_4500 = PRCMU_WAKEUPBY_AB8500_NONE;
prcmu_configure_wakeup_events(event_8500, event_4500, EXE_WAKEUP);
dbg_printk("(WkUpCfgOk=0xEA)PRCM_ACK_MB0_AP_PWRST_STATUS = %x\n",
readb(PRCM_ACK_MB0_AP_PWRST_STATUS));
diff --git a/arch/arm/mach-ux500/prcmu-fw_v1.h b/arch/arm/mach-ux500/prcmu-fw_v1.h
index 3bdea06aace..61a26832073 100755
--- a/arch/arm/mach-ux500/prcmu-fw_v1.h
+++ b/arch/arm/mach-ux500/prcmu-fw_v1.h
@@ -174,11 +174,13 @@ enum mailbox_t {
};
/* PRCMU Wakeup defines */
+#define PRCMU_WAKEUPBY_MODEM_SW_RESET_REQ (0x1 << 20)
#define PRCMU_WAKEUPBY_MODEM (0x1 << 5)
#define PRCMU_WAKEUPBY_ARMITMGMT (0x1 << 17)
#define PRCMU_WAKEUPBY_APE4500INT (0x1 << 7)
#define PRCMU_WAKEUPBY_GPIOS (0xff800000)
#define PRCMU_WAKEUPBY_RTCRTT (0x3)
+#define PRCMU_WAKEUPBY_AB8500_NONE (0x0)
/* Union declaration */