Loading drivers/hwmon/qpnp-adc-common.c +21 −0 Original line number Diff line number Diff line Loading @@ -1267,6 +1267,27 @@ int qpnp_adc_get_revid_version(struct device *dev) (revid_data->pmic_type == PM8110_V2P0_TYPE) && (revid_data->pmic_subtype == PM8110_V2P0_SUBTYPE)) return QPNP_REV_ID_8110_2_0; else if ((revid_data->rev1 == PM8916_V1P0_REV1) && (revid_data->rev2 == PM8916_V1P0_REV2) && (revid_data->rev3 == PM8916_V1P0_REV3) && (revid_data->rev4 == PM8916_V1P0_REV4) && (revid_data->pmic_type == PM8916_V1P0_TYPE) && (revid_data->pmic_subtype == PM8916_V1P0_SUBTYPE)) return QPNP_REV_ID_8916_1_0; else if ((revid_data->rev1 == PM8916_V1P1_REV1) && (revid_data->rev2 == PM8916_V1P1_REV2) && (revid_data->rev3 == PM8916_V1P1_REV3) && (revid_data->rev4 == PM8916_V1P1_REV4) && (revid_data->pmic_type == PM8916_V1P1_TYPE) && (revid_data->pmic_subtype == PM8916_V1P1_SUBTYPE)) return QPNP_REV_ID_8916_1_1; else if ((revid_data->rev1 == PM8916_V2P0_REV1) && (revid_data->rev2 == PM8916_V2P0_REV2) && (revid_data->rev3 == PM8916_V2P0_REV3) && (revid_data->rev4 == PM8916_V2P0_REV4) && (revid_data->pmic_type == PM8916_V2P0_TYPE) && (revid_data->pmic_subtype == PM8916_V2P0_SUBTYPE)) return QPNP_REV_ID_8916_2_0; else return -EINVAL; } Loading drivers/hwmon/qpnp-adc-voltage.c +40 −0 Original line number Diff line number Diff line Loading @@ -527,6 +527,9 @@ static int32_t qpnp_vadc_version_check(struct qpnp_vadc_chip *dev) #define QPNP_VBAT_COEFF_23 3500 #define QPNP_VBAT_COEFF_24 4360 #define QPNP_VBAT_COEFF_25 8060 #define QPNP_VBAT_COEFF_26 7895 #define QPNP_VBAT_COEFF_27 5658 #define QPNP_VBAT_COEFF_28 5760 static int32_t qpnp_ocv_comp(int64_t *result, struct qpnp_vadc_chip *vadc, int64_t die_temp) Loading Loading @@ -622,6 +625,28 @@ static int32_t qpnp_ocv_comp(int64_t *result, break; } break; case QPNP_REV_ID_8916_1_0: case QPNP_REV_ID_8916_1_1: case QPNP_REV_ID_8916_2_0: switch (vadc->id) { case COMP_ID_SMIC: if (die_temp < 25000) temp_var = QPNP_VBAT_COEFF_26; else temp_var = QPNP_VBAT_COEFF_27; temp_var = (die_temp - 25000) * temp_var; break; default: case COMP_ID_GF: *result -= QPNP_OCV_OFFSET_GF; if (die_temp < 25000) temp_var = QPNP_VBAT_COEFF_26; else temp_var = QPNP_VBAT_COEFF_27; temp_var = (die_temp - 25000) * temp_var; break; } break; default: temp_var = 0; break; Loading Loading @@ -729,6 +754,21 @@ static int32_t qpnp_vbat_sns_comp(int64_t *result, break; } break; case QPNP_REV_ID_8916_1_0: case QPNP_REV_ID_8916_1_1: case QPNP_REV_ID_8916_2_0: switch (vadc->id) { case COMP_ID_SMIC: temp_var = ((die_temp - 25000) * (QPNP_VBAT_COEFF_28)); break; default: case COMP_ID_GF: temp_var = ((die_temp - 25000) * (QPNP_VBAT_COEFF_28)); break; } break; default: temp_var = 0; break; Loading include/linux/qpnp-revid.h +22 −1 Original line number Diff line number Diff line /* Copyright (c) 2013, The Linux Foundation. All rights reserved. /* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -97,6 +97,27 @@ #define PM8110_V2P0_TYPE 0x51 #define PM8110_V2P0_SUBTYPE 0x05 #define PM8916_V1P0_REV1 0x00 #define PM8916_V1P0_REV2 0x00 #define PM8916_V1P0_REV3 0x00 #define PM8916_V1P0_REV4 0x01 #define PM8916_V1P0_TYPE 0x51 #define PM8916_V1P0_SUBTYPE 0x0B #define PM8916_V1P1_REV1 0x00 #define PM8916_V1P1_REV2 0x00 #define PM8916_V1P1_REV3 0x01 #define PM8916_V1P1_REV4 0x01 #define PM8916_V1P1_TYPE 0x51 #define PM8916_V1P1_SUBTYPE 0x0B #define PM8916_V2P0_REV1 0x00 #define PM8916_V2P0_REV2 0x00 #define PM8916_V2P0_REV3 0x00 #define PM8916_V2P0_REV4 0x02 #define PM8916_V2P0_TYPE 0x51 #define PM8916_V2P0_SUBTYPE 0x0B struct pmic_revid_data { u8 rev1; u8 rev2; Loading include/linux/qpnp/qpnp-adc.h +3 −1 Original line number Diff line number Diff line Loading @@ -1035,7 +1035,9 @@ struct qpnp_adc_amux_properties { #define QPNP_REV_ID_8026_2_2 7 #define QPNP_REV_ID_8941_3_0 8 #define QPNP_REV_ID_8941_2_0 9 #define QPNP_REV_ID_8916_1_0 10 #define QPNP_REV_ID_8916_1_1 11 #define QPNP_REV_ID_8916_2_0 12 /* Public API */ #if defined(CONFIG_SENSORS_QPNP_ADC_VOLTAGE) \ Loading Loading
drivers/hwmon/qpnp-adc-common.c +21 −0 Original line number Diff line number Diff line Loading @@ -1267,6 +1267,27 @@ int qpnp_adc_get_revid_version(struct device *dev) (revid_data->pmic_type == PM8110_V2P0_TYPE) && (revid_data->pmic_subtype == PM8110_V2P0_SUBTYPE)) return QPNP_REV_ID_8110_2_0; else if ((revid_data->rev1 == PM8916_V1P0_REV1) && (revid_data->rev2 == PM8916_V1P0_REV2) && (revid_data->rev3 == PM8916_V1P0_REV3) && (revid_data->rev4 == PM8916_V1P0_REV4) && (revid_data->pmic_type == PM8916_V1P0_TYPE) && (revid_data->pmic_subtype == PM8916_V1P0_SUBTYPE)) return QPNP_REV_ID_8916_1_0; else if ((revid_data->rev1 == PM8916_V1P1_REV1) && (revid_data->rev2 == PM8916_V1P1_REV2) && (revid_data->rev3 == PM8916_V1P1_REV3) && (revid_data->rev4 == PM8916_V1P1_REV4) && (revid_data->pmic_type == PM8916_V1P1_TYPE) && (revid_data->pmic_subtype == PM8916_V1P1_SUBTYPE)) return QPNP_REV_ID_8916_1_1; else if ((revid_data->rev1 == PM8916_V2P0_REV1) && (revid_data->rev2 == PM8916_V2P0_REV2) && (revid_data->rev3 == PM8916_V2P0_REV3) && (revid_data->rev4 == PM8916_V2P0_REV4) && (revid_data->pmic_type == PM8916_V2P0_TYPE) && (revid_data->pmic_subtype == PM8916_V2P0_SUBTYPE)) return QPNP_REV_ID_8916_2_0; else return -EINVAL; } Loading
drivers/hwmon/qpnp-adc-voltage.c +40 −0 Original line number Diff line number Diff line Loading @@ -527,6 +527,9 @@ static int32_t qpnp_vadc_version_check(struct qpnp_vadc_chip *dev) #define QPNP_VBAT_COEFF_23 3500 #define QPNP_VBAT_COEFF_24 4360 #define QPNP_VBAT_COEFF_25 8060 #define QPNP_VBAT_COEFF_26 7895 #define QPNP_VBAT_COEFF_27 5658 #define QPNP_VBAT_COEFF_28 5760 static int32_t qpnp_ocv_comp(int64_t *result, struct qpnp_vadc_chip *vadc, int64_t die_temp) Loading Loading @@ -622,6 +625,28 @@ static int32_t qpnp_ocv_comp(int64_t *result, break; } break; case QPNP_REV_ID_8916_1_0: case QPNP_REV_ID_8916_1_1: case QPNP_REV_ID_8916_2_0: switch (vadc->id) { case COMP_ID_SMIC: if (die_temp < 25000) temp_var = QPNP_VBAT_COEFF_26; else temp_var = QPNP_VBAT_COEFF_27; temp_var = (die_temp - 25000) * temp_var; break; default: case COMP_ID_GF: *result -= QPNP_OCV_OFFSET_GF; if (die_temp < 25000) temp_var = QPNP_VBAT_COEFF_26; else temp_var = QPNP_VBAT_COEFF_27; temp_var = (die_temp - 25000) * temp_var; break; } break; default: temp_var = 0; break; Loading Loading @@ -729,6 +754,21 @@ static int32_t qpnp_vbat_sns_comp(int64_t *result, break; } break; case QPNP_REV_ID_8916_1_0: case QPNP_REV_ID_8916_1_1: case QPNP_REV_ID_8916_2_0: switch (vadc->id) { case COMP_ID_SMIC: temp_var = ((die_temp - 25000) * (QPNP_VBAT_COEFF_28)); break; default: case COMP_ID_GF: temp_var = ((die_temp - 25000) * (QPNP_VBAT_COEFF_28)); break; } break; default: temp_var = 0; break; Loading
include/linux/qpnp-revid.h +22 −1 Original line number Diff line number Diff line /* Copyright (c) 2013, The Linux Foundation. All rights reserved. /* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -97,6 +97,27 @@ #define PM8110_V2P0_TYPE 0x51 #define PM8110_V2P0_SUBTYPE 0x05 #define PM8916_V1P0_REV1 0x00 #define PM8916_V1P0_REV2 0x00 #define PM8916_V1P0_REV3 0x00 #define PM8916_V1P0_REV4 0x01 #define PM8916_V1P0_TYPE 0x51 #define PM8916_V1P0_SUBTYPE 0x0B #define PM8916_V1P1_REV1 0x00 #define PM8916_V1P1_REV2 0x00 #define PM8916_V1P1_REV3 0x01 #define PM8916_V1P1_REV4 0x01 #define PM8916_V1P1_TYPE 0x51 #define PM8916_V1P1_SUBTYPE 0x0B #define PM8916_V2P0_REV1 0x00 #define PM8916_V2P0_REV2 0x00 #define PM8916_V2P0_REV3 0x00 #define PM8916_V2P0_REV4 0x02 #define PM8916_V2P0_TYPE 0x51 #define PM8916_V2P0_SUBTYPE 0x0B struct pmic_revid_data { u8 rev1; u8 rev2; Loading
include/linux/qpnp/qpnp-adc.h +3 −1 Original line number Diff line number Diff line Loading @@ -1035,7 +1035,9 @@ struct qpnp_adc_amux_properties { #define QPNP_REV_ID_8026_2_2 7 #define QPNP_REV_ID_8941_3_0 8 #define QPNP_REV_ID_8941_2_0 9 #define QPNP_REV_ID_8916_1_0 10 #define QPNP_REV_ID_8916_1_1 11 #define QPNP_REV_ID_8916_2_0 12 /* Public API */ #if defined(CONFIG_SENSORS_QPNP_ADC_VOLTAGE) \ Loading