RE: [PATCH 02/04] OMAP3: PM: Prevent AUTO_RET and AUTO_OFF being enabled simultaneously

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 

>-----Original Message-----
>From: Högander Jouni [mailto:jouni.hogander@xxxxxxxxx] 
>Sent: Tuesday, June 16, 2009 6:10 PM
>To: Nayak, Rajendra
>Cc: linux-omap@xxxxxxxxxxxxxxx; Derrick, David; Woodruff, Richard
>Subject: Re: [PATCH 02/04] OMAP3: PM: Prevent AUTO_RET and 
>AUTO_OFF being enabled simultaneously
>
>ext Rajendra Nayak <rnayak@xxxxxx> 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 <rnayak@xxxxxx>
>> ---
>>  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 majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>-- 
>Jouni Högander
>
>��.n��������+%������w��{.n�����{�������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux