diff options
author | Kumar Sanghvi <kumar.sanghvi@stericsson.com> | 2010-06-04 14:15:13 +0530 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:39 -0600 |
commit | 5a6abfa960d4fbc7e0692dca275f80662e33636d (patch) | |
tree | 722871649b6fd660e96635c8cb1dbf45f03a4843 /arch/arm | |
parent | cd027ffc1cd2701a933a5e3160dd3e379f03811e (diff) |
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/arm')
-rwxr-xr-x | arch/arm/mach-ux500/prcmu-fw.c | 17 | ||||
-rwxr-xr-x | arch/arm/mach-ux500/prcmu-fw_v1.h | 2 |
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 */ |