summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a0ddffb)
raw | patch | inline | side by side (parent: a0ddffb)
author | ankur <a-kishore@ti.com> | |
Tue, 4 Mar 2014 09:32:41 +0000 (15:02 +0530) | ||
committer | Russ Dill <Russ.Dill@ti.com> | |
Mon, 10 Mar 2014 06:52:27 +0000 (23:52 -0700) |
Provision of swakeup from Tamper source is a new addition for
AM43XX lineup SOCs.
So, below things are implemented :-
1. Tamper entry is made into list of swakeup sources.
2. Settings inside Configure/Clear wake-up source APIs.
3. Modified handlers(specific to AM43xx) to add Tamper swakeup.
Signed-off-by: ankur <a-kishore@ti.com>
AM43XX lineup SOCs.
So, below things are implemented :-
1. Tamper entry is made into list of swakeup sources.
2. Settings inside Configure/Clear wake-up source APIs.
3. Modified handlers(specific to AM43xx) to add Tamper swakeup.
Signed-off-by: ankur <a-kishore@ti.com>
index 31f3728d6061163cf653d7cb435e4a00ce33bf17..73a367fe387bf5c070d51dc78d2b039c25b90295 100644 (file)
#include <cm3.h>
#include <device_cm3.h>
+#include <prcm_core.h>
#include <msg.h>
#include <pm_handlers.h>
#include <sync.h>
nvic_disable_irq(i);
nvic_clear_irq(i);
}
+ if (soc_id == AM43XX_SOC_ID) {
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
+ nvic_clear_irq(CM3_IRQ_TPM_WAKE);
+ }
msg_cmd_dispatcher();
}
generic_wake_handler(CM3_IRQ_ADC_TSC_WAKE);
}
-#if 0
/* TPM_WAKE */
void extint52_handler(void)
{
- nvic_disable_irq(AM437X_IRQ_TMP_WAKE);
- generic_wake_handler(AM437X_IRQ_ADC_TSC_WAKE);
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
+ generic_wake_handler(CM3_IRQ_TPM_WAKE);
}
-#endif
-/* TPM_WAKE */
+/* CTRL_WAKE */
void extint53_handler(void)
{
nvic_disable_irq(53);
index 65af4222c8f3e8d755ce8c00cdf43afbd77e3496..789651b241aac503aeaab9009b552af62f951c22 100644 (file)
--- a/src/include/device_cm3.h
+++ b/src/include/device_cm3.h
#define CM3_IRQ_WDT0_WAKE 49
#define CM3_IRQ_WDT1_WAKE 50
#define CM3_IRQ_ADC_TSC_WAKE 51
+#define CM3_IRQ_TPM_WAKE 52
#define CM3_NUM_EXT_INTERRUPTS 52
index a947564f97016b78014e9d77dd1608060a7420a4..1e9c539a66773685a9088b115228fc75301520b4 100644 (file)
nvic_clear_irq(i);
}
+ /* Flush out Tamper swakeup, a new addition for AM43XX SOCs */
+ if (soc_id == AM43XX_SOC_ID) {
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
+ nvic_clear_irq(CM3_IRQ_TPM_WAKE);
+ }
+
trace_init();
pm_reset();
index 173439a4dc8cee7a4fe0e5ce5dbb39c25453eb75..63628757aab9bfc5d63c50c55bc3bae521c53c7f 100644 (file)
if(BB_MPU_WAKE)
nvic_enable_irq(CM3_IRQ_MPU_WAKE);
+
+ if (soc_id == AM43XX_SOC_ID)
+ nvic_enable_irq(CM3_IRQ_TPM_WAKE);
}
void clear_wake_sources(void)
nvic_disable_irq(CM3_IRQ_ADC_TSC_WAKE);
nvic_disable_irq(CM3_IRQ_USB0WOUT);
nvic_disable_irq(CM3_IRQ_USB1WOUT);
+ if (soc_id == AM43XX_SOC_ID)
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
/* TODO: Clear all the pending interrupts */
}
diff --git a/src/sys_exec/sync.c b/src/sys_exec/sync.c
index 28061dfe01ec2dc6c560b810c7dc993e6921b10c..5135a9d2f4b8f90ec3d93627c7153e1e6a085566 100644 (file)
--- a/src/sys_exec/sync.c
+++ b/src/sys_exec/sync.c
nvic_clear_irq(i);
}
+ /* Tamper swakeup interrupt is new addition for AM43XX SOCx */
+ if (soc_id == AM43XX_SOC_ID) {
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
+ nvic_clear_irq(CM3_IRQ_TPM_WAKE);
+ }
+
trace_init();
pm_reset();
index 29ba71af432ec1a9e87ca6e3a8d3bd82144b2eb7..1efdb9cb82882d80f47e3550d408c02078d1538b 100644 (file)
--- a/src/sys_exec/sys_init.c
+++ b/src/sys_exec/sys_init.c
for (i=0; i < CM3_NUM_EXT_INTERRUPTS; i++)
nvic_disable_irq(i);
+ /* Disable Tamper swakeup, a new addition for AM43XX SOCs */
+ if (soc_id == AM43XX_SOC_ID)
+ nvic_disable_irq(CM3_IRQ_TPM_WAKE);
+
/* Clean the IPC registers */
m3_param_reset();