Add cpuidle support for i.MX6SL, currently only support
two cpuidle levels(ARM wfi and WAIT mode), and add software
workaround for WAIT mode errata as below:
ERR005311 CCM: After exit from WAIT mode, unwanted interrupt(s) taken
during WAIT mode entry process could cause cache memory
corruption.
Software workaround:
To prevent this issue from occurring, software should ensure that
the ARM to IPG clock ratio is less than 12:5 (that is < 2.4x), before
entering WAIT mode.
Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
30 lines
696 B
C
30 lines
696 B
C
/*
|
|
* Copyright 2012 Freescale Semiconductor, Inc.
|
|
* Copyright 2012 Linaro Ltd.
|
|
*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
|
|
#ifdef CONFIG_CPU_IDLE
|
|
extern int imx5_cpuidle_init(void);
|
|
extern int imx6q_cpuidle_init(void);
|
|
extern int imx6sl_cpuidle_init(void);
|
|
#else
|
|
static inline int imx5_cpuidle_init(void)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline int imx6q_cpuidle_init(void)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline int imx6sl_cpuidle_init(void)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif
|