Re: [PATCH 2/3] OMAP3630: PM: implement Foward Body-Bias for OPP1G

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

 



On Thu, Apr 22, 2010 at 03:56:53PM +0200, ext Nishanth Menon wrote:
> Turquette, Mike had written, on 04/21/2010 04:21 PM, the following:
> [...]
> 
> >>>  
> >>>  /**
> >>> + * voltscale_adaptive_body_bias - controls ABB ldo during voltage scaling
> >>> + * @target_volt: target voltage determines if ABB ldo is active or bypassed
> >>> + *
> >>> + * Adaptive Body-Bias is a technique in all OMAP silicon that uses the 45nm
> >>> + * process.  ABB can boost voltage in high OPPs for silicon with weak
> >>> + * characteristics (forward Body-Bias) as well as lower voltage in low OPPs
> >>> + * for silicon with strong characteristics (Reverse Body-Bias).
> >>> + *
> >>> + * Only Foward Body-Bias for operating at high OPPs is implemented below, per
> >>> + * recommendations from silicon team.
> >>> + * Reverse Body-Bias for saving power in active cases and sleep cases is not
> >>> + * yet implemented.
> >>> + * OMAP4 hardward also supports ABB ldo, but no recommendations have been made
> >>> + * to implement it yet.
> >>> + */
> >>> +int voltscale_adaptive_body_bias(unsigned long target_volt)
> >>> +{
> >>> +	u32 sr2en_enabled;
> >>> +	int timeout;
> >>> +	int sr2_wtcnt_value;
> >>> +
> >>> +	/* calculate SR2_WTCNT_VALUE settling time */
> >>> +	sr2_wtcnt_value = (ABB_MAX_SETTLING_TIME *
> >>> +			(clk_get_rate("sys_ck") / 1000000) / 8);
> >>> +
> >>> +	/* has SR2EN been enabled previously? */
> >>> +	sr2en_enabled = (prm_read_mod_reg(OMAP3430_GR_MOD,
> >>> +				OMAP3_PRM_LDO_ABB_CTRL_OFFSET) &
> >>> +			OMAP3630_SR2EN);
> >>> +
> >>> +	/* select fast, nominal or slow OPP for ABB ldo */
> >>> +	/* FIXME: include OMAP4 once recommendations are complete */
> >>> +	if (cpu_is_omap3630() && (target_volt >= 1350000)) {
> >> You are creating two steps to decide if you apply or not FBB.
> >> Here and also bellow (omap voltage scale). Would it make sense to bind it
> >> per opp? I mean just a flag on opp dat then you apply or not based on that flag.
> >> Same for RBB.
> > 
> > Eduardo,
> > 
> > Thanks for reviewing.
> > 
> > There has been some offline discussion about the best way to handle the 
> > the relationship between FBB enable flags and OPPs:
> > 
> > 1) extend OPP table
> > 2) piggyback on Thara's SR hwmod structures
> > 	This probably won't work given Paul's review comments
> > 3) other wacky stuff
> > 
> > After some discussion about the best way to do this I will definitely 
> > lose the duplicate checks and replace with some nice table look-up.
> > 
> > Extending the OPP table is gross for OMAP2 and OMAP3430.  Piggybacking 
> > on SR stuff is just a hack and there is no real relationship between ABB 
> > ldo and SR.  The crux of the issue is how to relate FBB enable flags to 
> > OPP table.  hwmod?  Ideas on this are very welcome.
> > 
> might be a good idea for using
> I vote for 2) omap_volt_data in voltage.c and using the flag there.

This was actually what I was also thinking. if you stick your flag on omap_volt_data
should be enough.

> 
> 1) is a bad idea as ABB is not present in older silicon and opp table 
> should ideally be independent of silicon and contain only common data..

indeed.

> 
> [...]
> 
> -- 
> Regards,
> Nishanth Menon
--
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

[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