>-----Original Message-----
>From: Högander Jouni [mailto:[email protected]] 
>Sent: Tuesday, June 16, 2009 6:10 PM
>To: Nayak, Rajendra
>Cc: [email protected]; Derrick, David; Woodruff, Richard
>Subject: Re: [PATCH 02/04] OMAP3: PM: Prevent AUTO_RET and 
>AUTO_OFF being enabled simultaneously
>
>ext Rajendra Nayak <[email protected]> writes:
>
>> There is a design requirement in OMAP3 that Auto_RET and AUTO_OFF
>> should not be set together. The PRCM FSM  has been coded assuming
>> that SW will set either auto_ret or auto_off bit depending on
>> whether the core has been programmed to go into open switched
>> logic retention state or OFF state. They are mutually exclusive.
>
>So we don't have to do this if closed switch retention is used? (This
>is what is currently used in linux-omap:pm)

Currently in the pm branch AUTO_RET is enabled at init and kept
enabled. While attempting a OFF state AUTO_OFF is enabled also
leaving AUTO_RET and AUTO_OFF both enabled.

>
>> A similar issue will exist if SW sets  auto_ret= auto_off=1 and
>> auto_sleep = 1 in the PRM voltage CTRL register
>>
>> Signed-off-by: Rajendra Nayak <[email protected]>
>> ---
>>  arch/arm/mach-omap2/pm34xx.c |   12 ++++++++----
>>  1 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/pm34xx.c 
>b/arch/arm/mach-omap2/pm34xx.c
>> index a9ef670..d4225b4 100644
>> --- a/arch/arm/mach-omap2/pm34xx.c
>> +++ b/arch/arm/mach-omap2/pm34xx.c
>> @@ -392,6 +392,10 @@ void omap_sram_idle(void)
>>                                           OMAP3_PRM_VOLTCTRL_OFFSET);
>>                      omap3_core_save_context();
>>                      omap3_prcm_save_context();
>> +            } else if (core_next_state == PWRDM_POWER_RET) {
>> +                    prm_set_mod_reg_bits(OMAP3430_AUTO_RET,
>> +                                            OMAP3430_GR_MOD,
>> +                                            
>OMAP3_PRM_VOLTCTRL_OFFSET);
>>              }
>>              /* Enable IO-PAD and IO-CHAIN wakeups */
>>              prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
>> @@ -446,6 +450,10 @@ void omap_sram_idle(void)
>>                      prm_clear_mod_reg_bits(OMAP3430_AUTO_OFF,
>>                                             OMAP3430_GR_MOD,
>>                                             
>OMAP3_PRM_VOLTCTRL_OFFSET);
>> +            else if (core_next_state == PWRDM_POWER_RET)
>> +                    prm_clear_mod_reg_bits(OMAP3430_AUTO_RET,
>> +                                            OMAP3430_GR_MOD,
>> +                                            
>OMAP3_PRM_VOLTCTRL_OFFSET);
>>              /* Enable smartreflex after WFI */
>>              enable_smartreflex(SR1);
>>              enable_smartreflex(SR2);
>> @@ -1128,10 +1136,6 @@ static void __init configure_vc(void)
>>                              OMAP3430_GR_MOD,
>>                              OMAP3_PRM_VC_I2C_CFG_OFFSET);
>>  
>> -    /* Setup value for voltctrl */
>> -    prm_write_mod_reg(OMAP3430_AUTO_RET,
>> -                      OMAP3430_GR_MOD, OMAP3_PRM_VOLTCTRL_OFFSET);
>> -
>>      /* Write setup times */
>>      prm_write_mod_reg(prm_setup.clksetup, OMAP3430_GR_MOD,
>>                      OMAP3_PRM_CLKSETUP_OFFSET);
>> -- 
>> 1.5.4.7
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe 
>linux-omap" in
>> the body of a message to [email protected]
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>-- 
>Jouni Högander
>
>N�����r��y����b�X��ǧv�^�)޺{.n�+����{��f��{ay�ʇڙ�,j��f���h���z��w���
>���j:+v���w�j�m��������zZ+�����ݢj"��!�i

Reply via email to