diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/id.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 7 | ||||
-rw-r--r-- | 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 c7bf0e1c4d9c..ccaa1ed8e0f1 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -179,6 +179,8 @@ static void __init omap3_check_features(void) | |||
179 | OMAP3_CHECK_FEATURE(status, ISP); | 179 | OMAP3_CHECK_FEATURE(status, ISP); |
180 | if (cpu_is_omap3630()) | 180 | if (cpu_is_omap3630()) |
181 | omap3_features |= OMAP3_HAS_192MHZ_CLK; | 181 | omap3_features |= OMAP3_HAS_192MHZ_CLK; |
182 | if (!cpu_is_omap3505() && !cpu_is_omap3517()) | ||
183 | omap3_features |= OMAP3_HAS_IO_WAKEUP; | ||
182 | 184 | ||
183 | /* | 185 | /* |
184 | * TODO: Get additional info (where applicable) | 186 | * TODO: Get additional info (where applicable) |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index b88737fd6cfe..fb4994ad622e 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -385,8 +385,9 @@ void omap_sram_idle(void) | |||
385 | /* Enable IO-PAD and IO-CHAIN wakeups */ | 385 | /* Enable IO-PAD and IO-CHAIN wakeups */ |
386 | per_next_state = pwrdm_read_next_pwrst(per_pwrdm); | 386 | per_next_state = pwrdm_read_next_pwrst(per_pwrdm); |
387 | core_next_state = pwrdm_read_next_pwrst(core_pwrdm); | 387 | core_next_state = pwrdm_read_next_pwrst(core_pwrdm); |
388 | if (per_next_state < PWRDM_POWER_ON || | 388 | if (omap3_has_io_wakeup() && \ |
389 | core_next_state < PWRDM_POWER_ON) { | 389 | (per_next_state < PWRDM_POWER_ON || |
390 | core_next_state < PWRDM_POWER_ON)) { | ||
390 | prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); | 391 | prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); |
391 | omap3_enable_io_chain(); | 392 | omap3_enable_io_chain(); |
392 | } | 393 | } |
@@ -479,7 +480,7 @@ void omap_sram_idle(void) | |||
479 | } | 480 | } |
480 | 481 | ||
481 | /* Disable IO-PAD and IO-CHAIN wakeup */ | 482 | /* Disable IO-PAD and IO-CHAIN wakeup */ |
482 | if (core_next_state < PWRDM_POWER_ON) { | 483 | if (omap3_has_io_wakeup() && core_next_state < PWRDM_POWER_ON) { |
483 | prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); | 484 | prm_clear_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN); |
484 | omap3_disable_io_chain(); | 485 | omap3_disable_io_chain(); |
485 | } | 486 | } |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 75141742300c..aa2f4f079f57 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; | |||
444 | #define OMAP3_HAS_NEON BIT(3) | 444 | #define OMAP3_HAS_NEON BIT(3) |
445 | #define OMAP3_HAS_ISP BIT(4) | 445 | #define OMAP3_HAS_ISP BIT(4) |
446 | #define OMAP3_HAS_192MHZ_CLK BIT(5) | 446 | #define OMAP3_HAS_192MHZ_CLK BIT(5) |
447 | #define OMAP3_HAS_IO_WAKEUP BIT(6) | ||
447 | 448 | ||
448 | #define OMAP3_HAS_FEATURE(feat,flag) \ | 449 | #define OMAP3_HAS_FEATURE(feat,flag) \ |
449 | static inline unsigned int omap3_has_ ##feat(void) \ | 450 | static inline unsigned int omap3_has_ ##feat(void) \ |
@@ -457,5 +458,6 @@ OMAP3_HAS_FEATURE(iva, IVA) | |||
457 | OMAP3_HAS_FEATURE(neon, NEON) | 458 | OMAP3_HAS_FEATURE(neon, NEON) |
458 | OMAP3_HAS_FEATURE(isp, ISP) | 459 | OMAP3_HAS_FEATURE(isp, ISP) |
459 | OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK) | 460 | OMAP3_HAS_FEATURE(192mhz_clk, 192MHZ_CLK) |
461 | OMAP3_HAS_FEATURE(io_wakeup, IO_WAKEUP) | ||
460 | 462 | ||
461 | #endif | 463 | #endif |