Other Parts Discussed in Thread: AM4372
Tool/software: Linux
Is it actually possible to use an overflow interrupt on a DMTimer to wake the processor from Standby?
I'm attempting to write a kernel module to wake my AM4378 from Standby. I am using Linux kernel version 4.1.18. I would use DMTimer0, which seems to be on all the time and support wakeup, but I cannot figure out how to access it using the existing drivers. Therefore, I have decided to use DMTimer3, since it is available.
The timer correctly interrupts when I do not put the processor into Standby, but once the processor enters Standby, the interrupt simply seems to be ignored. I set the `PRCM_CM_PER_TIMER3_CLKCTRL MODULEMODE` value to `2h` to ensure the clock is always enabled. If I manually wake the board before the timer elapses, it interrupts at the appropriate time, so I'm pretty sure the interrupt actually occurs while the processor is in standby, but doesn't wake anything.
The documentation is a bit thin on this subject, and there is some conflicting information. In both the AM335x (1) and AM437x (2) TRMs, it says the DMTimers (excluding DMTimer0) have no wakeup capabilities, but in the AM335x Power Management Standby User's Guide (3), it gives sample code for waking the AM335x with DMTimer7.
So what is the truth?
(1) : AM335x TRM, page 4437, table 20-3 "Idle/Wakeup Signals | Smart Idle (No wakeup capabilities)" [http://www.ti.com/lit/ug/spruh73p/spruh73p.pdf]
(2) : AM437x TRM, page 2752, table 19-3 "Idle/Wakeup Signals | Smart Idle (No wakeup capabilities)" [http://www.ti.com/lit/ug/spruhl7g/spruhl7g.pdf]
(3) : AM335x Power Management Standby User's Guide [http://processors.wiki.ti.com/index.php/AM335x_Power_Management_Standby_User%27s_Guide#DM_Timer_wakeup]