Loading drivers/power/supply/power_supply_sysfs.c +1 −0 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ static struct device_attribute power_supply_attrs[] = { POWER_SUPPLY_ATTR(qc_opti_disable), POWER_SUPPLY_ATTR(cc_soc), POWER_SUPPLY_ATTR(batt_age_level), POWER_SUPPLY_ATTR(voltage_vph), /* Charge pump properties */ POWER_SUPPLY_ATTR(cp_status1), POWER_SUPPLY_ATTR(cp_status2), Loading drivers/power/supply/qcom/qpnp-smb5.c +5 −1 Original line number Diff line number Diff line /* Copyright (c) 2018 The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019 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 @@ -642,6 +642,7 @@ static enum power_supply_property smb5_usb_props[] = { POWER_SUPPLY_PROP_MOISTURE_DETECTED, POWER_SUPPLY_PROP_HVDCP_OPTI_ALLOWED, POWER_SUPPLY_PROP_QC_OPTI_DISABLE, POWER_SUPPLY_PROP_VOLTAGE_VPH, }; static int smb5_usb_get_prop(struct power_supply *psy, Loading Loading @@ -797,6 +798,9 @@ static int smb5_usb_get_prop(struct power_supply *psy, if (chg->hw_connector_mitigation) val->intval |= POWER_SUPPLY_QC_CTM_DISABLE; break; case POWER_SUPPLY_PROP_VOLTAGE_VPH: rc = smblib_get_prop_vph_voltage_now(chg, val); break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading drivers/power/supply/qcom/smb5-lib.c +20 −5 Original line number Diff line number Diff line Loading @@ -3034,6 +3034,23 @@ int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, return smblib_read_usbin_voltage_chan(chg, val); } int smblib_get_prop_vph_voltage_now(struct smb_charger *chg, union power_supply_propval *val) { int rc; if (!chg->iio.vph_v_chan) return -ENODATA; rc = iio_read_channel_processed(chg->iio.vph_v_chan, &val->intval); if (rc < 0) { smblib_err(chg, "Couldn't read vph channel rc=%d\n", rc); return rc; } return 0; } bool smblib_rsbux_low(struct smb_charger *chg, int r_thr) { int r_sbu1, r_sbu2; Loading Loading @@ -5323,14 +5340,12 @@ irqreturn_t dc_plugin_irq_handler(int irq, void *data) int rc, wireless_vout = 0; int sec_charger; rc = iio_read_channel_processed(chg->iio.vph_v_chan, &wireless_vout); rc = smblib_get_prop_vph_voltage_now(chg, &pval); if (rc < 0) return IRQ_HANDLED; wireless_vout *= 2; wireless_vout /= 100000; wireless_vout *= 100000; /* 2*VPH, with a granularity of 100mV */ wireless_vout = ((pval.intval * 2) / 100000) * 100000; rc = smblib_is_input_present(chg, &input_present); if (rc < 0) Loading drivers/power/supply/qcom/smb5-lib.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2018 The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019 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 @@ -666,6 +666,8 @@ int smblib_get_prop_charger_temp(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_die_health(struct smb_charger *chg); int smblib_get_prop_connector_health(struct smb_charger *chg); int smblib_get_prop_vph_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_set_prop_pd_current_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_sdp_current_max(struct smb_charger *chg, Loading include/linux/power_supply.h +1 −0 Original line number Diff line number Diff line Loading @@ -322,6 +322,7 @@ enum power_supply_property { POWER_SUPPLY_PROP_QC_OPTI_DISABLE, POWER_SUPPLY_PROP_CC_SOC, POWER_SUPPLY_PROP_BATT_AGE_LEVEL, POWER_SUPPLY_PROP_VOLTAGE_VPH, /* Charge pump properties */ POWER_SUPPLY_PROP_CP_STATUS1, POWER_SUPPLY_PROP_CP_STATUS2, Loading Loading
drivers/power/supply/power_supply_sysfs.c +1 −0 Original line number Diff line number Diff line Loading @@ -391,6 +391,7 @@ static struct device_attribute power_supply_attrs[] = { POWER_SUPPLY_ATTR(qc_opti_disable), POWER_SUPPLY_ATTR(cc_soc), POWER_SUPPLY_ATTR(batt_age_level), POWER_SUPPLY_ATTR(voltage_vph), /* Charge pump properties */ POWER_SUPPLY_ATTR(cp_status1), POWER_SUPPLY_ATTR(cp_status2), Loading
drivers/power/supply/qcom/qpnp-smb5.c +5 −1 Original line number Diff line number Diff line /* Copyright (c) 2018 The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019 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 @@ -642,6 +642,7 @@ static enum power_supply_property smb5_usb_props[] = { POWER_SUPPLY_PROP_MOISTURE_DETECTED, POWER_SUPPLY_PROP_HVDCP_OPTI_ALLOWED, POWER_SUPPLY_PROP_QC_OPTI_DISABLE, POWER_SUPPLY_PROP_VOLTAGE_VPH, }; static int smb5_usb_get_prop(struct power_supply *psy, Loading Loading @@ -797,6 +798,9 @@ static int smb5_usb_get_prop(struct power_supply *psy, if (chg->hw_connector_mitigation) val->intval |= POWER_SUPPLY_QC_CTM_DISABLE; break; case POWER_SUPPLY_PROP_VOLTAGE_VPH: rc = smblib_get_prop_vph_voltage_now(chg, val); break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading
drivers/power/supply/qcom/smb5-lib.c +20 −5 Original line number Diff line number Diff line Loading @@ -3034,6 +3034,23 @@ int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, return smblib_read_usbin_voltage_chan(chg, val); } int smblib_get_prop_vph_voltage_now(struct smb_charger *chg, union power_supply_propval *val) { int rc; if (!chg->iio.vph_v_chan) return -ENODATA; rc = iio_read_channel_processed(chg->iio.vph_v_chan, &val->intval); if (rc < 0) { smblib_err(chg, "Couldn't read vph channel rc=%d\n", rc); return rc; } return 0; } bool smblib_rsbux_low(struct smb_charger *chg, int r_thr) { int r_sbu1, r_sbu2; Loading Loading @@ -5323,14 +5340,12 @@ irqreturn_t dc_plugin_irq_handler(int irq, void *data) int rc, wireless_vout = 0; int sec_charger; rc = iio_read_channel_processed(chg->iio.vph_v_chan, &wireless_vout); rc = smblib_get_prop_vph_voltage_now(chg, &pval); if (rc < 0) return IRQ_HANDLED; wireless_vout *= 2; wireless_vout /= 100000; wireless_vout *= 100000; /* 2*VPH, with a granularity of 100mV */ wireless_vout = ((pval.intval * 2) / 100000) * 100000; rc = smblib_is_input_present(chg, &input_present); if (rc < 0) Loading
drivers/power/supply/qcom/smb5-lib.h +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2018 The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019 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 @@ -666,6 +666,8 @@ int smblib_get_prop_charger_temp(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_die_health(struct smb_charger *chg); int smblib_get_prop_connector_health(struct smb_charger *chg); int smblib_get_prop_vph_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_set_prop_pd_current_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_sdp_current_max(struct smb_charger *chg, Loading
include/linux/power_supply.h +1 −0 Original line number Diff line number Diff line Loading @@ -322,6 +322,7 @@ enum power_supply_property { POWER_SUPPLY_PROP_QC_OPTI_DISABLE, POWER_SUPPLY_PROP_CC_SOC, POWER_SUPPLY_PROP_BATT_AGE_LEVEL, POWER_SUPPLY_PROP_VOLTAGE_VPH, /* Charge pump properties */ POWER_SUPPLY_PROP_CP_STATUS1, POWER_SUPPLY_PROP_CP_STATUS2, Loading