* [PATCHv3 1/1] OMAP3: AM3505/3517 do not have IO wakeup capability
@ 2010-06-25 6:53 Stanley.Miao
2010-06-28 20:17 ` Kevin Hilman
0 siblings, 1 reply; 2+ messages in thread
From: Stanley.Miao @ 2010-06-25 6:53 UTC (permalink / raw)
To: linux-omap
AM3505/3517 don't have IO wakeup capability, so we don not need to set
the bit OMAP3430_EN_IO and the bit OMAP3430_EN_IO_CHAIN in the register
PM_WKEN_WKUP when the system enters retention.
Signed-off-by: Stanley.Miao <stanley.miao@windriver.com>
---
arch/arm/mach-omap2/id.c | 2 ++
arch/arm/mach-omap2/pm34xx.c | 7 ++++---
arch/arm/plat-omap/include/plat/cpu.h | 2 ++
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 37b8a1a..67bd971 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -179,6 +179,8 @@ void __init omap3_check_features(void)
OMAP3_CHECK_FEATURE(status, ISP);
if (cpu_is_omap3630())
omap3_features |= OMAP3_HAS_192MHZ_CLK;
+ if (!cpu_is_omap3505() && !cpu_is_omap3517())
+ omap3_features |= OMAP3_HAS_IO_WAKEUP;
/*
* TODO: Get additional info (where applicable)
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index b88737f..fb4994a 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -385,8 +385,9 @@ void omap_sram_idle(void)
/* Enable IO-PAD and IO-CHAIN wakeups */
per_next_state = pwrdm_read_next_pwrst(per_pwrdm);
core_next_state = pwrdm_read_next_pwrst(core_pwrdm);
- if (per_next_state < PWRDM_POWER_ON ||
- core_next_state < PWRDM_POWER_ON) {
+ if (omap3_has_io_wakeup() && \
+ (per_next_state < PWRDM_POWER_ON ||
+ core_next_state < PWRDM_POWER_ON)) {
prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
omap3_enable_io_chain();
}
@@ -479,7 +480,7 @@ void omap_sram_idle(void)
}
/* Disable IO-PAD and IO-CHAIN wakeup */
- if (core_next_state < PWRDM_POWER_ON) {
+ if (omap3_has_io_wakeup() && core_next_state < PWRDM_POWER_ON) {
prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
omap3_disable_io_chain();
}
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index 7514174..aa2f4f0 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -444,6 +444,7 @@ extern u32 omap3_features;
#define OMAP3_HAS_NEON BIT(3)
#define OMAP3_HAS_ISP BIT(4)
#define OMAP3_HAS_192MHZ_CLK BIT(5)
+#define OMAP3_HAS_IO_WAKEUP BIT(6)
#define OMAP3_HAS_FEATURE(feat,flag) \
static inline unsigned int omap3_has_ ##feat(void) \
@@ -457,5 +458,6 @@ OMAP3_HAS_FEATURE(iva, IVA)
OMAP3_HAS_FEATURE(neon, NEON)
OMAP3_HAS_FEATURE(isp, ISP)
OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK)
+OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP)
#endif
--
1.5.4.3
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCHv3 1/1] OMAP3: AM3505/3517 do not have IO wakeup capability
2010-06-25 6:53 [PATCHv3 1/1] OMAP3: AM3505/3517 do not have IO wakeup capability Stanley.Miao
@ 2010-06-28 20:17 ` Kevin Hilman
0 siblings, 0 replies; 2+ messages in thread
From: Kevin Hilman @ 2010-06-28 20:17 UTC (permalink / raw)
To: Stanley.Miao; +Cc: linux-omap
"Stanley.Miao" <stanley.miao@windriver.com> writes:
> AM3505/3517 don't have IO wakeup capability, so we don not need to set
> the bit OMAP3430_EN_IO and the bit OMAP3430_EN_IO_CHAIN in the register
> PM_WKEN_WKUP when the system enters retention.
>
> Signed-off-by: Stanley.Miao <stanley.miao@windriver.com>
This looks much better, thanks.
Can your report what platforms this was tested/validated on? Ideally
a test on AM3505/3517 as well as a "normal" 35xx would be very helpful
in giving confidence to the patch.
Kevin
> ---
> arch/arm/mach-omap2/id.c | 2 ++
> arch/arm/mach-omap2/pm34xx.c | 7 ++++---
> arch/arm/plat-omap/include/plat/cpu.h | 2 ++
> 3 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
> index 37b8a1a..67bd971 100644
> --- a/arch/arm/mach-omap2/id.c
> +++ b/arch/arm/mach-omap2/id.c
> @@ -179,6 +179,8 @@ void __init omap3_check_features(void)
> OMAP3_CHECK_FEATURE(status, ISP);
> if (cpu_is_omap3630())
> omap3_features |= OMAP3_HAS_192MHZ_CLK;
> + if (!cpu_is_omap3505() && !cpu_is_omap3517())
> + omap3_features |= OMAP3_HAS_IO_WAKEUP;
>
> /*
> * TODO: Get additional info (where applicable)
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index b88737f..fb4994a 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -385,8 +385,9 @@ void omap_sram_idle(void)
> /* Enable IO-PAD and IO-CHAIN wakeups */
> per_next_state = pwrdm_read_next_pwrst(per_pwrdm);
> core_next_state = pwrdm_read_next_pwrst(core_pwrdm);
> - if (per_next_state < PWRDM_POWER_ON ||
> - core_next_state < PWRDM_POWER_ON) {
> + if (omap3_has_io_wakeup() && \
> + (per_next_state < PWRDM_POWER_ON ||
> + core_next_state < PWRDM_POWER_ON)) {
> prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
> omap3_enable_io_chain();
> }
> @@ -479,7 +480,7 @@ void omap_sram_idle(void)
> }
>
> /* Disable IO-PAD and IO-CHAIN wakeup */
> - if (core_next_state < PWRDM_POWER_ON) {
> + if (omap3_has_io_wakeup() && core_next_state < PWRDM_POWER_ON) {
> prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
> omap3_disable_io_chain();
> }
> diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
> index 7514174..aa2f4f0 100644
> --- a/arch/arm/plat-omap/include/plat/cpu.h
> +++ b/arch/arm/plat-omap/include/plat/cpu.h
> @@ -444,6 +444,7 @@ extern u32 omap3_features;
> #define OMAP3_HAS_NEON BIT(3)
> #define OMAP3_HAS_ISP BIT(4)
> #define OMAP3_HAS_192MHZ_CLK BIT(5)
> +#define OMAP3_HAS_IO_WAKEUP BIT(6)
>
> #define OMAP3_HAS_FEATURE(feat,flag) \
> static inline unsigned int omap3_has_ ##feat(void) \
> @@ -457,5 +458,6 @@ OMAP3_HAS_FEATURE(iva, IVA)
> OMAP3_HAS_FEATURE(neon, NEON)
> OMAP3_HAS_FEATURE(isp, ISP)
> OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK)
> +OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP)
>
> #endif
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-06-28 20:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-25 6:53 [PATCHv3 1/1] OMAP3: AM3505/3517 do not have IO wakeup capability Stanley.Miao
2010-06-28 20:17 ` Kevin Hilman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.