* [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem @ 2012-11-15 16:06 Matthias Brugger 2012-11-15 16:42 ` Robert Nelson 0 siblings, 1 reply; 5+ messages in thread From: Matthias Brugger @ 2012-11-15 16:06 UTC (permalink / raw) To: Russell King, Tony Lindgren, linux-omap Cc: martinez.javier, eballetbo, Matthias Brugger When rebooting an OMAP3530 at 125 MHz, the reboot hangs. This patch adds a generic power save script, which resets the TWL4030 when a warm reset occures. This way the OMAP3530 does not hang on reboot. Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> --- arch/arm/mach-omap2/board-igep0020.c | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 48d5e41..9ba1c4b 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c @@ -487,11 +487,47 @@ static struct twl4030_keypad_data igep2_keypad_pdata = { .rep = 1, }; +static struct twl4030_ins wrst_seq[] __initdata = { + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, + {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, + {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, + {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, + {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, +}; + +static struct twl4030_script wrst_script __initdata = { + .script = wrst_seq, + .size = ARRAY_SIZE(wrst_seq), + .flags = TWL4030_WRST_SCRIPT, +}; + +static struct twl4030_script *twl4030_scripts[] __initdata = { + &wrst_script, +}; + +static struct twl4030_resconfig twl4030_rconfig[] = { + { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, + .type2 = -1 }, + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, + .type2 = -1 }, + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, + .type2 = -1 }, + { 0, 0}, +}; + +static struct twl4030_power_data igep_twl4030_power_data = { + .scripts = twl4030_scripts, + .num = ARRAY_SIZE(twl4030_scripts), + .resource_config = twl4030_rconfig, +}; + static struct twl4030_platform_data igep_twldata = { /* platform_data for children goes here */ .gpio = &igep_twl4030_gpio_pdata, .vmmc1 = &igep_vmmc1, .vio = &igep_vio, + .power = &igep_twl4030_power_data, }; static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem 2012-11-15 16:06 [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem Matthias Brugger @ 2012-11-15 16:42 ` Robert Nelson 2012-12-14 17:19 ` Tony Lindgren 0 siblings, 1 reply; 5+ messages in thread From: Robert Nelson @ 2012-11-15 16:42 UTC (permalink / raw) To: Matthias Brugger Cc: Russell King, Tony Lindgren, linux-omap, martinez.javier, eballetbo, Matthias Brugger On Thu, Nov 15, 2012 at 10:06 AM, Matthias Brugger <matthias.bgg@googlemail.com> wrote: > When rebooting an OMAP3530 at 125 MHz, the reboot hangs. > This patch adds a generic power save script, which resets the TWL4030 when a > warm reset occures. This way the OMAP3530 does not hang on reboot. > > Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> > --- > arch/arm/mach-omap2/board-igep0020.c | 36 ++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c > index 48d5e41..9ba1c4b 100644 > --- a/arch/arm/mach-omap2/board-igep0020.c > +++ b/arch/arm/mach-omap2/board-igep0020.c > @@ -487,11 +487,47 @@ static struct twl4030_keypad_data igep2_keypad_pdata = { > .rep = 1, > }; > > +static struct twl4030_ins wrst_seq[] __initdata = { > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, > + {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, > + {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, > + {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, > + {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, > +}; > + > +static struct twl4030_script wrst_script __initdata = { > + .script = wrst_seq, > + .size = ARRAY_SIZE(wrst_seq), > + .flags = TWL4030_WRST_SCRIPT, > +}; > + > +static struct twl4030_script *twl4030_scripts[] __initdata = { > + &wrst_script, > +}; > + > +static struct twl4030_resconfig twl4030_rconfig[] = { > + { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, > + .type2 = -1 }, > + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, > + .type2 = -1 }, > + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, > + .type2 = -1 }, > + { 0, 0}, > +}; > + > +static struct twl4030_power_data igep_twl4030_power_data = { > + .scripts = twl4030_scripts, > + .num = ARRAY_SIZE(twl4030_scripts), > + .resource_config = twl4030_rconfig, > +}; > + > static struct twl4030_platform_data igep_twldata = { > /* platform_data for children goes here */ > .gpio = &igep_twl4030_gpio_pdata, > .vmmc1 = &igep_vmmc1, > .vio = &igep_vio, > + .power = &igep_twl4030_power_data, > }; > > static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { > -- > 1.7.9.5 > > -- Sweet, this also fixes the software reboot lockup I've been bisecting on the Beagle C4 (omap3530), when the ONDEMAND governor is enabled.. (applied the same changes to the beagle's board file: board-omap3beagle.c) Can we make this script generic for all omap35xx/twl4030 boards that need it? So far, no regressions in a quick boot/reboot test of DM3730 Beagle xM C that shares the board file... Regards, -- Robert Nelson http://www.rcn-ee.com/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem 2012-11-15 16:42 ` Robert Nelson @ 2012-12-14 17:19 ` Tony Lindgren 2012-12-18 21:32 ` Matthias Brugger 0 siblings, 1 reply; 5+ messages in thread From: Tony Lindgren @ 2012-12-14 17:19 UTC (permalink / raw) To: Robert Nelson Cc: Matthias Brugger, Russell King, linux-omap, martinez.javier, eballetbo, Matthias Brugger * Robert Nelson <robertcnelson@gmail.com> [121115 08:44]: > On Thu, Nov 15, 2012 at 10:06 AM, Matthias Brugger > <matthias.bgg@googlemail.com> wrote: > > When rebooting an OMAP3530 at 125 MHz, the reboot hangs. > > This patch adds a generic power save script, which resets the TWL4030 when a > > warm reset occures. This way the OMAP3530 does not hang on reboot. > > > > Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> > > --- > > arch/arm/mach-omap2/board-igep0020.c | 36 ++++++++++++++++++++++++++++++++++ > > 1 file changed, 36 insertions(+) > > > > diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c > > index 48d5e41..9ba1c4b 100644 > > --- a/arch/arm/mach-omap2/board-igep0020.c > > +++ b/arch/arm/mach-omap2/board-igep0020.c > > @@ -487,11 +487,47 @@ static struct twl4030_keypad_data igep2_keypad_pdata = { > > .rep = 1, > > }; > > > > +static struct twl4030_ins wrst_seq[] __initdata = { > > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, > > + {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, > > + {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, > > + {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, > > + {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, > > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, > > +}; > > + > > +static struct twl4030_script wrst_script __initdata = { > > + .script = wrst_seq, > > + .size = ARRAY_SIZE(wrst_seq), > > + .flags = TWL4030_WRST_SCRIPT, > > +}; > > + > > +static struct twl4030_script *twl4030_scripts[] __initdata = { > > + &wrst_script, > > +}; > > + > > +static struct twl4030_resconfig twl4030_rconfig[] = { > > + { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, > > + .type2 = -1 }, > > + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, > > + .type2 = -1 }, > > + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, > > + .type2 = -1 }, > > + { 0, 0}, > > +}; > > + > > +static struct twl4030_power_data igep_twl4030_power_data = { > > + .scripts = twl4030_scripts, > > + .num = ARRAY_SIZE(twl4030_scripts), > > + .resource_config = twl4030_rconfig, > > +}; > > + > > static struct twl4030_platform_data igep_twldata = { > > /* platform_data for children goes here */ > > .gpio = &igep_twl4030_gpio_pdata, > > .vmmc1 = &igep_vmmc1, > > .vio = &igep_vio, > > + .power = &igep_twl4030_power_data, > > }; > > > > static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { > > -- > > 1.7.9.5 > > > > -- > > Sweet, this also fixes the software reboot lockup I've been bisecting > on the Beagle C4 (omap3530), when the ONDEMAND governor is enabled.. > (applied the same changes to the beagle's board file: > board-omap3beagle.c) > > Can we make this script generic for all omap35xx/twl4030 boards that need it? > > So far, no regressions in a quick boot/reboot test of DM3730 Beagle xM > C that shares the board file... Any news on making this fix generic? Regards, Tony ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem 2012-12-14 17:19 ` Tony Lindgren @ 2012-12-18 21:32 ` Matthias Brugger 2013-01-23 18:21 ` [PATCH] omap2: twl-common: Add default power configuration Matthias Brugger 0 siblings, 1 reply; 5+ messages in thread From: Matthias Brugger @ 2012-12-18 21:32 UTC (permalink / raw) To: Tony Lindgren Cc: Robert Nelson, Matthias Brugger, Russell King, linux-omap, martinez.javier, eballetbo 2012/12/14 Tony Lindgren <tony@atomide.com>: > * Robert Nelson <robertcnelson@gmail.com> [121115 08:44]: >> On Thu, Nov 15, 2012 at 10:06 AM, Matthias Brugger >> <matthias.bgg@googlemail.com> wrote: >> > When rebooting an OMAP3530 at 125 MHz, the reboot hangs. >> > This patch adds a generic power save script, which resets the TWL4030 when a >> > warm reset occures. This way the OMAP3530 does not hang on reboot. >> > >> > Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> >> > --- >> > arch/arm/mach-omap2/board-igep0020.c | 36 ++++++++++++++++++++++++++++++++++ >> > 1 file changed, 36 insertions(+) >> > >> > diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c >> > index 48d5e41..9ba1c4b 100644 >> > --- a/arch/arm/mach-omap2/board-igep0020.c >> > +++ b/arch/arm/mach-omap2/board-igep0020.c >> > @@ -487,11 +487,47 @@ static struct twl4030_keypad_data igep2_keypad_pdata = { >> > .rep = 1, >> > }; >> > >> > +static struct twl4030_ins wrst_seq[] __initdata = { >> > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, >> > + {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, >> > + {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, >> > + {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, >> > + {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, >> > + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, >> > +}; >> > + >> > +static struct twl4030_script wrst_script __initdata = { >> > + .script = wrst_seq, >> > + .size = ARRAY_SIZE(wrst_seq), >> > + .flags = TWL4030_WRST_SCRIPT, >> > +}; >> > + >> > +static struct twl4030_script *twl4030_scripts[] __initdata = { >> > + &wrst_script, >> > +}; >> > + >> > +static struct twl4030_resconfig twl4030_rconfig[] = { >> > + { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, >> > + .type2 = -1 }, >> > + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, >> > + .type2 = -1 }, >> > + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, >> > + .type2 = -1 }, >> > + { 0, 0}, >> > +}; >> > + >> > +static struct twl4030_power_data igep_twl4030_power_data = { >> > + .scripts = twl4030_scripts, >> > + .num = ARRAY_SIZE(twl4030_scripts), >> > + .resource_config = twl4030_rconfig, >> > +}; >> > + >> > static struct twl4030_platform_data igep_twldata = { >> > /* platform_data for children goes here */ >> > .gpio = &igep_twl4030_gpio_pdata, >> > .vmmc1 = &igep_vmmc1, >> > .vio = &igep_vio, >> > + .power = &igep_twl4030_power_data, >> > }; >> > >> > static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { >> > -- >> > 1.7.9.5 >> > >> > -- >> >> Sweet, this also fixes the software reboot lockup I've been bisecting >> on the Beagle C4 (omap3530), when the ONDEMAND governor is enabled.. >> (applied the same changes to the beagle's board file: >> board-omap3beagle.c) >> >> Can we make this script generic for all omap35xx/twl4030 boards that need it? >> >> So far, no regressions in a quick boot/reboot test of DM3730 Beagle xM >> C that shares the board file... > > Any news on making this fix generic? > > Regards, > > Tony I will try to have a look on it the next days. Cheers, Matthias -- --- motzblog.wordpress.com ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] omap2: twl-common: Add default power configuration 2012-12-18 21:32 ` Matthias Brugger @ 2013-01-23 18:21 ` Matthias Brugger 0 siblings, 0 replies; 5+ messages in thread From: Matthias Brugger @ 2013-01-23 18:21 UTC (permalink / raw) To: Tony Lindgren, Russell King, martinez.javier, eballetbo, ezequiel.garcia, robertcnelson, linux-omap, linux-arm-kernel Cc: Matthias Brugger This patch adds a generic power script configuration. When rebooting an OMAP3530 at 125 MHz, the reboot hangs. With the generic power script, TWL4030 will be reset when a warm reset occures. This way the OMAP3530 does not hang on reboot. Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com> --- arch/arm/mach-omap2/twl-common.c | 41 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index d78180c..f096beb 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -121,41 +121,40 @@ static struct twl4030_audio_data omap3_audio_pdata = { }; static struct twl4030_ins wrst_seq[] __initdata = { - {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, - {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, - {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, - {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, - {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, - {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_OFF), 2}, + {MSG_SINGULAR(DEV_GRP_P1, 0xf, RES_STATE_WRST), 15}, + {MSG_SINGULAR(DEV_GRP_P1, 0x10, RES_STATE_WRST), 15}, + {MSG_SINGULAR(DEV_GRP_P1, 0x7, RES_STATE_WRST), 0x60}, + {MSG_SINGULAR(DEV_GRP_P1, 0x19, RES_STATE_ACTIVE), 2}, + {MSG_SINGULAR(DEV_GRP_NULL, 0x1b, RES_STATE_ACTIVE), 2}, }; static struct twl4030_script wrst_script __initdata = { - .script = wrst_seq, - .size = ARRAY_SIZE(wrst_seq), - .flags = TWL4030_WRST_SCRIPT, + .script = wrst_seq, + .size = ARRAY_SIZE(wrst_seq), + .flags = TWL4030_WRST_SCRIPT, }; static struct twl4030_script *omap3_power_scripts[] __initdata = { - &wrst_script, + &wrst_script, }; static struct twl4030_resconfig omap3_rconfig[] = { - { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, - .type2 = -1 }, - { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, - .type2 = -1 }, - { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, - .type2 = -1 }, - { 0, 0}, + { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3, .type = -1, + .type2 = -1 }, + { .resource = RES_VDD1, .devgroup = DEV_GRP_P1, .type = -1, + .type2 = -1 }, + { .resource = RES_VDD2, .devgroup = DEV_GRP_P1, .type = -1, + .type2 = -1 }, + { 0, 0}, }; static struct twl4030_power_data omap3_power_pdata = { - .scripts = omap3_power_scripts, - .num = ARRAY_SIZE(omap3_power_scripts), - .resource_config = omap3_rconfig, + .scripts = omap3_power_scripts, + .num = ARRAY_SIZE(omap3_power_scripts), + .resource_config = omap3_rconfig, }; - static struct regulator_consumer_supply omap3_vdda_dac_supplies[] = { REGULATOR_SUPPLY("vdda_dac", "omapdss_venc"), }; -- 1.7.11.7 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-01-23 18:22 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-15 16:06 [PATCH] mach-omap2/board-igep0020.c: Fix reboot problem Matthias Brugger 2012-11-15 16:42 ` Robert Nelson 2012-12-14 17:19 ` Tony Lindgren 2012-12-18 21:32 ` Matthias Brugger 2013-01-23 18:21 ` [PATCH] omap2: twl-common: Add default power configuration Matthias Brugger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).