aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoseph Lo <josephl@nvidia.com>2013-08-12 05:40:01 -0400
committerStephen Warren <swarren@nvidia.com>2013-08-12 14:22:39 -0400
commit444f9a8030ecda8dedd374fc3efed03d9f20e9cb (patch)
tree396cc998a2265b70ef00d80c2b88f4f62132fe56
parent5b795d051c61862cebf4f1d55edab6e9b3383b44 (diff)
ARM: tegra: config the polarity of the request of sys clock
When suspending to LP1 mode, the SYSCLK will be clock gated. And different board may have different polarity of the request of SYSCLK, this patch configure the polarity from the DT for the board. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/pmc.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/pmc.c b/arch/arm/mach-tegra/pmc.c
index 8345fcdcc9d5..03e640512e3e 100644
--- a/arch/arm/mach-tegra/pmc.c
+++ b/arch/arm/mach-tegra/pmc.c
@@ -27,6 +27,8 @@
27#include "pmc.h" 27#include "pmc.h"
28#include "sleep.h" 28#include "sleep.h"
29 29
30#define TEGRA_POWER_SYSCLK_POLARITY (1 << 10) /* sys clk polarity */
31#define TEGRA_POWER_SYSCLK_OE (1 << 11) /* system clock enable */
30#define TEGRA_POWER_EFFECT_LP0 (1 << 14) /* LP0 when CPU pwr gated */ 32#define TEGRA_POWER_EFFECT_LP0 (1 << 14) /* LP0 when CPU pwr gated */
31#define TEGRA_POWER_CPU_PWRREQ_POLARITY (1 << 15) /* CPU pwr req polarity */ 33#define TEGRA_POWER_CPU_PWRREQ_POLARITY (1 << 15) /* CPU pwr req polarity */
32#define TEGRA_POWER_CPU_PWRREQ_OE (1 << 16) /* CPU pwr req enable */ 34#define TEGRA_POWER_CPU_PWRREQ_OE (1 << 16) /* CPU pwr req enable */
@@ -238,6 +240,20 @@ void tegra_pmc_suspend_init(void)
238 reg = tegra_pmc_readl(PMC_CTRL); 240 reg = tegra_pmc_readl(PMC_CTRL);
239 reg |= TEGRA_POWER_CPU_PWRREQ_OE; 241 reg |= TEGRA_POWER_CPU_PWRREQ_OE;
240 tegra_pmc_writel(reg, PMC_CTRL); 242 tegra_pmc_writel(reg, PMC_CTRL);
243
244 reg = tegra_pmc_readl(PMC_CTRL);
245
246 if (!pmc_pm_data.sysclkreq_high)
247 reg |= TEGRA_POWER_SYSCLK_POLARITY;
248 else
249 reg &= ~TEGRA_POWER_SYSCLK_POLARITY;
250
251 /* configure the output polarity while the request is tristated */
252 tegra_pmc_writel(reg, PMC_CTRL);
253
254 /* now enable the request */
255 reg |= TEGRA_POWER_SYSCLK_OE;
256 tegra_pmc_writel(reg, PMC_CTRL);
241} 257}
242#endif 258#endif
243 259