ARM: OMAP: few more PM fixes for v3.5-rc
Subsystems (3)
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
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
@@ -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
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 ifarch/arm/mach-omap2/board-omap3beagle.carch/arm/mach-omap2/board-3430sdp.c
should also be patched.
Quoted 19 lines
Signed-off-by Kevin Hilman <[email protected]>--- arch/arm/mach-omap2/board-overo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm/mach-omap2/board-overo.c +1
-1@@ -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,
PATCH 2/2 ARM: OMAP4: TWL6030: ensure sys_nirq1 is mux'd and wakeup enabled
In reply to Kevin HilmanThe 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
@@ -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
Tony Lindgren
maintainercover ARM: OMAP: few more PM fixes for v3.5-rc
In reply to Kevin HilmanQuoted 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