diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index d2b940c7215d..60baffa27cb3 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -388,6 +388,7 @@ void omap_sram_idle(void) | |||
388 | /* PER */ | 388 | /* PER */ |
389 | if (per_next_state < PWRDM_POWER_ON) { | 389 | if (per_next_state < PWRDM_POWER_ON) { |
390 | omap_uart_prepare_idle(2); | 390 | omap_uart_prepare_idle(2); |
391 | omap_uart_prepare_idle(3); | ||
391 | omap2_gpio_prepare_for_idle(per_next_state); | 392 | omap2_gpio_prepare_for_idle(per_next_state); |
392 | if (per_next_state == PWRDM_POWER_OFF) | 393 | if (per_next_state == PWRDM_POWER_OFF) |
393 | omap3_per_save_context(); | 394 | omap3_per_save_context(); |
@@ -459,6 +460,7 @@ void omap_sram_idle(void) | |||
459 | if (per_prev_state == PWRDM_POWER_OFF) | 460 | if (per_prev_state == PWRDM_POWER_OFF) |
460 | omap3_per_restore_context(); | 461 | omap3_per_restore_context(); |
461 | omap_uart_resume_idle(2); | 462 | omap_uart_resume_idle(2); |
463 | omap_uart_resume_idle(3); | ||
462 | } | 464 | } |
463 | 465 | ||
464 | /* Disable IO-PAD and IO-CHAIN wakeup */ | 466 | /* Disable IO-PAD and IO-CHAIN wakeup */ |
@@ -676,6 +678,14 @@ static void __init omap3_d2d_idle(void) | |||
676 | 678 | ||
677 | static void __init prcm_setup_regs(void) | 679 | static void __init prcm_setup_regs(void) |
678 | { | 680 | { |
681 | u32 omap3630_auto_uart4_mask = cpu_is_omap3630() ? | ||
682 | OMAP3630_AUTO_UART4_MASK : 0; | ||
683 | u32 omap3630_en_uart4_mask = cpu_is_omap3630() ? | ||
684 | OMAP3630_EN_UART4_MASK : 0; | ||
685 | u32 omap3630_grpsel_uart4_mask = cpu_is_omap3630() ? | ||
686 | OMAP3630_GRPSEL_UART4_MASK : 0; | ||
687 | |||
688 | |||
679 | /* XXX Reset all wkdeps. This should be done when initializing | 689 | /* XXX Reset all wkdeps. This should be done when initializing |
680 | * powerdomains */ | 690 | * powerdomains */ |
681 | prm_write_mod_reg(0, OMAP3430_IVA2_MOD, PM_WKDEP); | 691 | prm_write_mod_reg(0, OMAP3430_IVA2_MOD, PM_WKDEP); |
@@ -762,6 +772,7 @@ static void __init prcm_setup_regs(void) | |||
762 | CM_AUTOIDLE); | 772 | CM_AUTOIDLE); |
763 | 773 | ||
764 | cm_write_mod_reg( | 774 | cm_write_mod_reg( |
775 | omap3630_auto_uart4_mask | | ||
765 | OMAP3430_AUTO_GPIO6_MASK | | 776 | OMAP3430_AUTO_GPIO6_MASK | |
766 | OMAP3430_AUTO_GPIO5_MASK | | 777 | OMAP3430_AUTO_GPIO5_MASK | |
767 | OMAP3430_AUTO_GPIO4_MASK | | 778 | OMAP3430_AUTO_GPIO4_MASK | |
@@ -838,14 +849,16 @@ static void __init prcm_setup_regs(void) | |||
838 | OMAP3430_DSS_MOD, PM_WKEN); | 849 | OMAP3430_DSS_MOD, PM_WKEN); |
839 | 850 | ||
840 | /* Enable wakeups in PER */ | 851 | /* Enable wakeups in PER */ |
841 | prm_write_mod_reg(OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK | | 852 | prm_write_mod_reg(omap3630_en_uart4_mask | |
853 | OMAP3430_EN_GPIO2_MASK | OMAP3430_EN_GPIO3_MASK | | ||
842 | OMAP3430_EN_GPIO4_MASK | OMAP3430_EN_GPIO5_MASK | | 854 | OMAP3430_EN_GPIO4_MASK | OMAP3430_EN_GPIO5_MASK | |
843 | OMAP3430_EN_GPIO6_MASK | OMAP3430_EN_UART3_MASK | | 855 | OMAP3430_EN_GPIO6_MASK | OMAP3430_EN_UART3_MASK | |
844 | OMAP3430_EN_MCBSP2_MASK | OMAP3430_EN_MCBSP3_MASK | | 856 | OMAP3430_EN_MCBSP2_MASK | OMAP3430_EN_MCBSP3_MASK | |
845 | OMAP3430_EN_MCBSP4_MASK, | 857 | OMAP3430_EN_MCBSP4_MASK, |
846 | OMAP3430_PER_MOD, PM_WKEN); | 858 | OMAP3430_PER_MOD, PM_WKEN); |
847 | /* and allow them to wake up MPU */ | 859 | /* and allow them to wake up MPU */ |
848 | prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2_MASK | | 860 | prm_write_mod_reg(omap3630_grpsel_uart4_mask | |
861 | OMAP3430_GRPSEL_GPIO2_MASK | | ||
849 | OMAP3430_GRPSEL_GPIO3_MASK | | 862 | OMAP3430_GRPSEL_GPIO3_MASK | |
850 | OMAP3430_GRPSEL_GPIO4_MASK | | 863 | OMAP3430_GRPSEL_GPIO4_MASK | |
851 | OMAP3430_GRPSEL_GPIO5_MASK | | 864 | OMAP3430_GRPSEL_GPIO5_MASK | |