Hello,
I read and re-read about Omap PM mechanism (mainly related to OMAP35X), and also about Linux PM mechanism in general.
Now, when I get to practice, i.e. implementing SW which support PM mechanism and works, I get to trouble, because there is not enough documentation on the methods when used in Linux.
OMAP TRM chapter for PM is one thing, but implement PM on linux is another thing.
The following wiki http://processors.wiki.ti.com/index.php/UserGuidePowerMgmt_PSP_04.02.00.07
give some pointers to some mechanism used in Linux: smartReflex, cpuidle, cpufreq, which are automatic, and suspend/resume, which is user explicit, but there is still missing info,which I did not find yet answers:
1. How do we test the correctness and effectiveness each of the above method (for example in smartReflex, how do we know that it works and the PMIC communicates correctly in i2c with OMAP).
2. Poweroff domains and devices on board in runtime - this is practical thing need to be done in PM, and our requirements demands that whenever the system gets into idle loop, than it will turn off devices in SOC and on board.
As to problem 2 above, Is it best to try to figure out where the kernel gets into idle loop and then just turning off certain domains (instead of trying to figure out how to register or use any of linux supposed runtime PM mechanism ?)
I wonder if anyone worked with OMAP PM with Linux, so that he can shed some light on these issues. The TRM does not resolve it, unless it is best to use the method of register setting whenever we get into idle loop as I mentioned above.
Thanks a lot,
Ran