Felipe Balbi <ba...@ti.com> writes:

> Hi,
>
> On Sun, Dec 23, 2012 at 08:58:13PM +0000, Paul Walmsley wrote:
>> > In this specific case the pin is connected to nCONFIG of a FPGA. The
>> > FPGA is commanded to start configuration from a SPI flash in the
>> > bootloader, so it can happen in parallel with kernel
>> > load/uncompress/startup, but as the kernel resets the gpio during
>> > initialization this doesn't work.
>> > 
>> > Digging a bit into it, I see the hwmod of the gpio controller is
>> > configured to reset at startup, and it works correctly (E.G. the pin is
>> > left asserted) if I change it to HWMOD_INIT_NO_RESET:
>> > 
>> > --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
>> > +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
>> > @@ -992,7 +992,7 @@ static struct omap_hwmod am33xx_gpio1_hwmod = {
>> >         .name           = "gpio2",
>> >         .class          = &am33xx_gpio_hwmod_class,
>> >         .clkdm_name     = "l4ls_clkdm",
>> > -       .flags          = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
>> > +       .flags          = (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
>> >         .mpu_irqs       = am33xx_gpio1_irqs,
>> >         .main_clk       = "l4ls_gclk",
>> >         .prcm           = {
>> > 
>> > Now the question is why is this configured like this?
>> 
>> This behavior is intended to decouple the kernel from the bootloader, or 
>> previously-booted operating system (e.g., the kexec case).  The original 
>> goal was to place the system in an known safe state as soon as possible 
>> after the kernel starts.  This is to prevent misconfigured or 
>
> there is one "issue" with this. At least on AM335x starter kit, GPIO0_7
> is used as DDR power pin. If we reset that GPIO bank, DDR looses power
> and "for obscure reasons" (:-)) the board doesn't boot.
>
> In this case, we cannot reset that bank, otherwise Starter Kit will
> never boot in mainline. Bad PCB design, I know, but it's not something
> we can change now :-)

FWIW, we've seen this before (GPIO connected to PMIC reset is a fun
one), and this is why we have omap_hwmod_no_setup_reset().

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to