* Rajendra Nayak <rnayak@xxxxxx> [110630 19:03]: > For 4460sdp/blaze/panda, GPIO-7 of bank1 is used for controlling > the TPS modes, hence GPIO1 should not be reset > during init as reset will cause the TPS voltage to > drop to 0.9 V preventing the system from continuing the boot. NAK for this patch. We don't want any of this in init_early. The problem is with hwmod core code that wrongly assumes it can just reset all devices. We should fix the hwmod code to lazily only reset devices as they are enabled, and only reset unused devices with late_initcall when we have decent debug output. And the reset of unused devices should be possible to turn off with some kernel cmdline option. Regards, Tony > --- a/arch/arm/mach-omap2/board-4430sdp.c > +++ b/arch/arm/mach-omap2/board-4430sdp.c > @@ -36,6 +36,7 @@ > #include <plat/usb.h> > #include <plat/mmc.h> > #include <plat/omap4-keypad.h> > +#include <plat/omap_hwmod.h> > #include <video/omapdss.h> > > #include "mux.h" > @@ -298,6 +299,19 @@ static void __init omap_4430sdp_init_early(void) > #ifdef CONFIG_OMAP_32K_TIMER > omap2_gp_clockevent_set_gptimer(1); > #endif > + /* > + * For 4460sdp/blaze, GPIO-7 of bank1 is used for controlling > + * the TPS modes, hence GPIO1 should not be reset > + * during init as reset will cause the TPS voltage to > + * drop to 0.9 V preventing the system from continuing the boot. > + */ > + if (cpu_is_omap446x()) { > + struct omap_hwmod *gpio1 = omap_hwmod_lookup("gpio1"); > + if (gpio1) > + omap_hwmod_no_setup_reset(gpio1); > + else > + pr_err("%s: gpio1 hwmod lookup failed\n", __func__); > + } > } > > static struct omap_musb_board_data musb_board_data = { > diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c > index 0cfe200..75a847c 100644 > --- a/arch/arm/mach-omap2/board-omap4panda.c > +++ b/arch/arm/mach-omap2/board-omap4panda.c > @@ -40,6 +40,7 @@ > #include <plat/common.h> > #include <plat/usb.h> > #include <plat/mmc.h> > +#include <plat/omap_hwmod.h> > #include <video/omap-panel-generic-dpi.h> > #include "timer-gp.h" > > @@ -100,6 +101,19 @@ static void __init omap4_panda_init_early(void) > { > omap2_init_common_infrastructure(); > omap2_init_common_devices(NULL, NULL); > + /* > + * For 4460panda, GPIO-7 of bank1 is used for controling > + * the TPS modes, hence GPIO1 should not be reset > + * during init as reset will cause the TPS voltage to > + * drop to 0.9 V preventing the system from continuing the boot. > + */ > + if (cpu_is_omap446x()) { > + struct omap_hwmod *gpio1 = omap_hwmod_lookup("gpio1"); > + if (gpio1) > + omap_hwmod_no_setup_reset(gpio1); > + else > + pr_err("%s: gpio1 hwmod lookup failed\n", __func__); > + } > } > > static const struct usbhs_omap_board_data usbhs_bdata __initconst = { > -- > 1.7.4.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html