Merge "drivers: thermal: qcom: update ibat threshold scaling factor for gen4 bcl"
This commit is contained in:
commit
2c4e117d35
@ -31,6 +31,7 @@
|
||||
#define BCL_REVISION2 0x01
|
||||
#define BCL_PARAM_1 0x0e
|
||||
#define BCL_PARAM_2 0x0f
|
||||
#define ANA_MAJOR_OFFSET 0x03
|
||||
|
||||
#define BCL_IBAT_HIGH 0x4B
|
||||
#define BCL_IBAT_TOO_HIGH 0x4C
|
||||
@ -58,7 +59,7 @@
|
||||
* 49827 = 64.879uV (one bit value) * 3 (voltage divider)
|
||||
* * 256 (8 bit shift for MSB)
|
||||
*/
|
||||
#define BCL_VBAT_SCALING_UV 49827
|
||||
#define BCL_VBAT_SCALING_UV 49827 /* 194.636uV * 256 */
|
||||
#define BCL_VBAT_NO_READING 127
|
||||
#define BCL_VBAT_BASE_MV 2000
|
||||
#define BCL_VBAT_INC_MV 25
|
||||
@ -75,6 +76,8 @@
|
||||
#define BCL_IBAT_SCALING_REV5_NA 61037
|
||||
#define BCL_IBAT_THRESH_SCALING_REV5_UA 156255 /* 610.37uA * 256 */
|
||||
#define BCL_VBAT_TRIP_CNT 3
|
||||
#define BCL_GEN4_ANA_MAJOR 3
|
||||
#define BCL_IBAT_COTTID_SCALING 366220
|
||||
|
||||
#define MAX_PERPH_COUNT 2
|
||||
#define IPC_LOGPAGES 2
|
||||
@ -148,6 +151,7 @@ struct bcl_device {
|
||||
uint16_t fg_bcl_addr;
|
||||
uint8_t dig_major;
|
||||
uint8_t dig_minor;
|
||||
uint8_t ana_major;
|
||||
uint8_t bcl_param_1;
|
||||
uint8_t bcl_type;
|
||||
void *ipc_log;
|
||||
@ -323,6 +327,11 @@ static int bcl_set_ibat(struct thermal_zone_device *tz, int low, int high)
|
||||
convert_ibat_to_adc_val(bat_data->dev, &thresh_value,
|
||||
BCL_IBAT_CCM_SCALING_UA *
|
||||
bat_data->dev->ibat_ext_range_factor);
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN4_MAJOR_REV &&
|
||||
bat_data->dev->ana_major >= BCL_GEN4_ANA_MAJOR)
|
||||
convert_ibat_to_adc_val(bat_data->dev, &thresh_value,
|
||||
BCL_IBAT_THRESH_SCALING_REV5_UA *
|
||||
bat_data->dev->ibat_ext_range_factor);
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN3_MAJOR_REV)
|
||||
convert_ibat_to_adc_val(bat_data->dev, &thresh_value,
|
||||
BCL_IBAT_SCALING_REV4_UA *
|
||||
@ -401,9 +410,13 @@ static int bcl_read_ibat(struct thermal_zone_device *tz, int *adc_value)
|
||||
convert_adc_to_ibat_val(bat_data->dev, adc_value,
|
||||
BCL_IBAT_CCM_SCALING_UA *
|
||||
bat_data->dev->ibat_ext_range_factor);
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN4_MAJOR_REV)
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN4_MAJOR_REV
|
||||
&& bat_data->dev->ana_major >= BCL_GEN4_ANA_MAJOR)
|
||||
convert_adc_nu_to_mu_val(adc_value,
|
||||
BCL_IBAT_SCALING_REV5_NA);
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN4_MAJOR_REV)
|
||||
convert_adc_nu_to_mu_val(adc_value,
|
||||
BCL_IBAT_COTTID_SCALING);
|
||||
else if (bat_data->dev->dig_major >= BCL_GEN3_MAJOR_REV)
|
||||
convert_adc_to_ibat_val(bat_data->dev, adc_value,
|
||||
BCL_IBAT_SCALING_REV4_UA *
|
||||
@ -957,6 +970,12 @@ static int bcl_version_init(struct bcl_device *bcl_perph)
|
||||
bcl_perph->bcl_type = 0;
|
||||
}
|
||||
|
||||
ret = bcl_read_register(bcl_perph, ANA_MAJOR_OFFSET, &val);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
bcl_perph->ana_major = val;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user