/* * TI DaVinci platform support for power management. * * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.com/ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation version 2. * * This program is distributed "as is" WITHOUT ANY WARRANTY of any * kind, whether express or implied; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _MACH_DAVINCI_PM_H #define _MACH_DAVINCI_PM_H /* * Caution: Assembly code in sleep.S makes assumtion on the order * of the members of this structure. */ struct davinci_pm_config { void __iomem *ddr2_ctlr_base; void __iomem *ddrpsc_reg_base; int ddrpsc_num; void __iomem *ddrpll_reg_base; void __iomem *deepsleep_reg; void __iomem *cpupll_reg_base; /* * Note on SLEEPCOUNT: * The SLEEPCOUNT feature is mainly intended for cases in which * the internal oscillator is used. The internal oscillator is * fully disabled in deep sleep mode. When you exist deep sleep * mode, the oscillator will be turned on and will generate very * small oscillations which will not be detected by the deep sleep * counter. Eventually those oscillations will grow to an amplitude * large enough to start incrementing the deep sleep counter. * In this case recommendation from hardware engineers is that the * SLEEPCOUNT be set to 4096. This means that 4096 valid clock cycles * must be detected before the clock is passed to the rest of the * system. * In the case that the internal oscillator is not used and the * clock is generated externally, the SLEEPCOUNT value can be very * small since the clock input is assumed to be stable before SoC * is taken out of deepsleep mode. A value of 128 would be more than * adequate. */ int sleepcount; }; extern unsigned int davinci_cpu_suspend_sz; extern void davinci_cpu_suspend(struct davinci_pm_config *); #endif