[U-Boot] [PATCH 4/4] ZOOM1 Add power reset button

Nishanth Menon
2009-06-13T14:26:42Z

looping in beagleboard for comments.

Tom said the following on 06/13/2009 09:16 AM:
> Tom wrote:
>
>> Menon, Nishanth wrote:
>>
>>>> -----Original Message-----
>>>> From: Tom [mailto:Tom.Rix at windriver.com]
>>>> Sent: Friday, June 12, 2009 4:57 PM
>>>> To: Jean-Christophe PLAGNIOL-VILLARD
>>>> Cc: u-boot at lists.denx.de; Menon, Nishanth
>>>> Subject: Re: [U-Boot] [PATCH 4/4] ZOOM1 Add power reset button
>>>>
>>>>
>>>>>> */
>>>>>> void twl4030_power_reset_init(void)
>>>>>> {
>>>>>> -#ifdef CONFIG_OMAP3_ZOOM2
>>>>>> +#if defined(CONFIG_OMAP3_ZOOM2) || defined(CONFIG_OMAP3_ZOOM1)
>>>>>>
>>>>>>
>>>>> I think it will be better to avoid board specifc code in the driver
>>>>> unless it's the only solution
>>>>>
>>>>>
>>>>>
>>>> I think this is zoom1 and zoom2 specific.
>>>> I could add this function to each of their board files.
>>>> I was trying to avoid that.
>>>>
>>>>>> + if (twl4030_i2c_read_u8(TWL4030_CHIP_PM_MASTER, &val,
>>>>>> + TWL4030_PM_MASTER_P1_SW_EVENTS)) {
>>>>>> + printf("Error:TWL4030: failed to read the power register\n");
>>>>>> + printf("Could not initialize hardware reset\n");
>>>>>> + } else {
>>>>>> + val |= TWL4030_PM_MASTER_SW_EVENTS_STOPON_PWRON;
>>>>>> + if (twl4030_i2c_write_u8(TWL4030_CHIP_PM_MASTER, val,
>>>>>> + TWL4030_PM_MASTER_P1_SW_EVENTS)) {
>>>>>>
>>> Why is this zoom1 and zoom2 specific? You are playing with PM Master
>>> registers causing a board reset right? It should in theory work for
>>> beagleboard also.. am I wrong?
>>>
>> Half right I think.
>> The beagle, from the schematics, has a 'Reset' - 'S2' switch. This is
>> tied to them omap's sys_nRespwon and to the t2_nRespwon. I think when
>> the switch is pressed only the omap gets reset. I could try verifing
>> this but it would take a while. Looking at
>> theTWL4030_PM_MASTER_P1_SW_EVENTS using 'i2c md 4b 46' it is clear in
>> both the factory and the current versions of u-boot.
>>
>> I think that setting this bit in beagle will reset just the twl4030.
>> Which I think is the right thing to do.
>>
>> I will try removing the #if-defs and see what happens :|
>>
>
> I have taken a closer look.
> I think the 'Cold Reset' label for switch 2 should be relabeled 'Warm
> Reset'
> twl4030 registers are persistent on beagle and zoom1 when both the sw
> reset cmd is given and when the beagle reset or the zoom1 reset (pin
> hole in back + handy paperclip) is used. The easiest way to test this is
> to set the sw_events manually using
> inm 4b 46
> then set to
> 40
> Verify with imd 4b 46.
>
> When the hw reset button is used on the zoom1, front face red button,
> the board resets and this is clear. On beagle you need to cycle power by
> unplugging / replugging power. Otherwise it does not get reset.
>
> Looking at beagle schematics, the ic SN74LVC2G07 has nRESPWRON as an
> input. So the resetting of the omap is an or-ing of nRESPWRON and the
> switch. The switch has no effect on nRESPWRON. If the input & output of
> ic were reversed, you _may_ get the behaviour of resetting omap with a
> touch and resetting omap+twl4030 when held for 8+ seconds.
>
> The moral of the story is do not depend on twl4030 to be reset.
>
> For this patch for resetting, the reset logic is generic and should be
> in the driver layer and not in the board layer.
>
> Tom
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>