RE: [PATCH v3 1/6] OMAP4: Add the new voltage to vsel calculation formula

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

 




>>-----Original Message-----
>>From: Tony Lindgren [mailto:tony@xxxxxxxxxxx]
>>Sent: Thursday, November 04, 2010 10:54 PM
>>To: Gopinath, Thara
>>Cc: linux-omap@xxxxxxxxxxxxxxx; paul@xxxxxxxxx; khilman@xxxxxxxxxxxxxxxxxxx;
>>Cousson, Benoit; Sripathy, Vishwanath; Sawant, Anand
>>Subject: Re: [PATCH v3 1/6] OMAP4: Add the new voltage to vsel calculation
>>formula
>>
>>* Thara Gopinath <thara@xxxxxx> [101027 09:07]:
>>> TWL6030 the power IC used along with OMAP4 in OMAP4 SDPs,
>>> blaze boards and panda boards has a different formula
>>> from that of TWL4030 for voltage to vsel and
>>> vsel to voltage calculation. This patch implements the new
>>> formula depending on the PMIC type.
>>>
>>> Signed-off-by: Thara Gopinath <thara@xxxxxx>
>>> ---
>>>  arch/arm/plat-omap/opp_twl_tps.c |   71
>>++++++++++++++++++++++++++++++++++++++
>>>  1 files changed, 71 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/arch/arm/plat-omap/opp_twl_tps.c b/arch/arm/plat-
>>omap/opp_twl_tps.c
>>> index 4448fc5..358b67b 100644
>>> --- a/arch/arm/plat-omap/opp_twl_tps.c
>>> +++ b/arch/arm/plat-omap/opp_twl_tps.c
>>> @@ -15,9 +15,16 @@
>>>
>>>  #include <linux/module.h>
>>>
>>> +#include <linux/i2c/twl.h>
>>> +
>>>  #include <plat/opp_twl_tps.h>
>>>  #include <plat/voltage.h>
>>>
>>> +static bool is_offset_valid;
>>> +static u8 smps_offset;
>>> +
>>> +#define REG_SMPS_OFFSET         0xE0
>>> +
>>>  /**
>>>   * omap_twl_vsel_to_vdc - convert TWL/TPS VSEL value to microvolts DC
>>>   * @vsel: TWL/TPS VSEL value to convert
>>> @@ -27,6 +34,38 @@
>>>   */
>>>  unsigned long omap_twl_vsel_to_uv(const u8 vsel)
>>>  {
>>> +	if (twl_class_is_6030()) {
>>> +		/*
>>> +		 * In TWL6030 depending on the value of SMPS_OFFSET
>>> +		 * efuse register the voltage range supported in
>>> +		 * standard mode can be either between 0.6V - 1.3V or
>>> +		 * 0.7V - 1.4V. In TWL6030 ES1.0 SMPS_OFFSET efuse
>>> +		 * is programmed to all 0's where as starting from
>>> +		 * TWL6030 ES1.1 the efuse is programmed to 1
>>> +		 */
>>> +		if (!is_offset_valid) {
>>> +			twl_i2c_read_u8(TWL6030_MODULE_ID0, &smps_offset, 0xE0);
>>> +			is_offset_valid = true;
>>> +		}
>>> +
>>> +		if (smps_offset & 0x8) {
>>> +			return ((((vsel - 1) * 125) + 7000)) * 100;
>>> +		} else {
>>> +			/*
>>> +			 * In case of the supported voltage range being
>>> +			 * between 0.6V - 1.3V, there is not specific
>>> +			 * formula for voltage to vsel conversion above
>>> +			 * 1.3V. There are special hardcoded values for
>>> +			 * voltages above 1.3V. Currently we are hardcodig
>>> +			 * only for 1.35 V which is used for 1GH OPP for
>>> +			 * OMAP4430.
>>> +			 */
>>> +			if (vsel == 0x3A)
>>> +				return 1350000;
>>> +			return ((((vsel - 1) * 125) + 6000)) * 100;
>>> +		}
>>> +	}
>>> +
>>>  	return (((vsel * 125) + 6000)) * 100;
>>>  }
>>
>>Here too you will want to restructure things a bit so you can avoid
>>adding the "if twl_class_is_whatever else if" tests. Usually the best
>>way is to set separate functions for different chips during the init.
Hello Tony,

Thanks for the review.
There is another comment for this patch to drop this file all-together
and move this code to drivers/mfd/twl-core.c. Will take care of your
comment in the new location

Regards
Thara
--
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