Skip to contentSkip to conversation

ARM: OMAP: few more PM fixes for v3.5-rc

PATCH New Kevin Hilman 3 participants 5 messages Jun 28, 2012 – Jul 2, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover ARM: OMAP: few more PM fixes for v3.5-rc

Tony, here are hopefully the last couple PM-related fixes for v3.5-rc.

Both of these fix suspend/resume/wakeup problems on OMAP3 or OMAP4.

Thanks,

Kevin

Kevin Hilman (2):
ARM: OMAP2: Overo: init I2C before MMC to fix MMC suspend/resume
failure
ARM: OMAP4: TWL6030: ensure sys_nirq1 is mux'd and wakeup enabled

 arch/arm/mach-omap2/board-overo.c |    2 +-
 arch/arm/mach-omap2/twl-common.c  |    2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)
Signature · 1 line
1.7.9.2
#1 lore raw

PATCH 1/2 ARM: OMAP2: Overo: init I2C before MMC to fix MMC suspend/resume failure

In order for suspend/resume dependencies to work correctly, I2C has to be initialized (more specifically, registered with the driver core) before MMC. Without this, the MMC driver fails to adjust the VMMC regulator (using i2c writes) during the suspend path.

Problem found testing suspend/resume on 3730/OveroSTORM platform.

---
 arch/arm/mach-omap2/board-overo.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-omap2/board-overo.c +1 -1
index 8fa2fc3..779734d 100644
@@ -494,8 +494,8 @@ static void __init overo_init(void)
 
 	regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
 	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
-	omap_hsmmc_init(mmc);
 	overo_i2c_init();
+	omap_hsmmc_init(mmc);
 	omap_display_init(&overo_dss_data);
 	omap_serial_init();
 	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
Signature · 1 line
1.7.9.2
#2 lore raw

PATCH 1/2 ARM: OMAP2: Overo: init I2C before MMC to fix MMC suspend/resume failure

Hi Kevin,

Quoted 3 lines · Kevin Hilman

In order for suspend/resume dependencies to work correctly, I2C has to be initialized (more specifically, registered with the driver core) before MMC.

Agree.

Quoted 4 lines

Without this, the MMC driver fails to adjust the VMMC
regulator (using i2c writes) during the suspend path.

Problem found testing suspend/resume on 3730/OveroSTORM platform.

Not related to your patch.
Was just thinking if
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-3430sdp.c

should also be patched.

Quoted 19 lines
---
 arch/arm/mach-omap2/board-overo.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-omap2/board-overo.c +1 -1
index 8fa2fc3..779734d 100644
@@ -494,8 +494,8 @@ static void __init overo_init(void)
 
 	regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
 	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
-	omap_hsmmc_init(mmc);
 	overo_i2c_init();
+	omap_hsmmc_init(mmc);
 	omap_display_init(&overo_dss_data);
 	omap_serial_init();
 	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
#3 lore raw

PATCH 2/2 ARM: OMAP4: TWL6030: ensure sys_nirq1 is mux'd and wakeup enabled

In reply to Kevin Hilman

The SYS_NIRQ1 pin is the interupt line for the PMIC part of the TWL6030 and interrupts from the PMIC are needed as wakeup sources.

Ensure this pin is mux'd as input and has wakeup enabled so PMIC interupts (e.g. RTC) can be used as wakeup sources.

Tested on OMAP4430/Panda.

---
 arch/arm/mach-omap2/twl-common.c |    2 ++
 1 file changed, 2 insertions(+)
arch/arm/mach-omap2/twl-common.c +2 -0
index 119d5a9..43a9790 100644
@@ -32,6 +32,7 @@
 #include "twl-common.h"
 #include "pm.h"
 #include "voltage.h"
+#include "mux.h"
 
 static struct i2c_board_info __initdata pmic_i2c_board_info = {
 	.addr		= 0x48,
@@ -77,6 +78,7 @@ void __init omap4_pmic_init(const char *pmic_type,
 		    struct twl6040_platform_data *twl6040_data, int twl6040_irq)
 {
 	/* PMIC part*/
+	omap_mux_init_signal("sys_nirq1", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
 	strncpy(omap4_i2c1_board_info[0].type, pmic_type,
 		sizeof(omap4_i2c1_board_info[0].type));
 	omap4_i2c1_board_info[0].irq = OMAP44XX_IRQ_SYS_1N;
Signature · 1 line
1.7.9.2
maintainer
#4 lore raw

cover ARM: OMAP: few more PM fixes for v3.5-rc

In reply to Kevin Hilman
Quoted 3 lines · Kevin Hilman

Tony, here are hopefully the last couple PM-related fixes for v3.5-rc.

Both of these fix suspend/resume/wakeup problems on OMAP3 or OMAP4.

Thanks applying into fixes.

Tony