Loading drivers/power/supply/qcom/qpnp-smb2.c +33 −18 Original line number Diff line number Diff line Loading @@ -330,7 +330,6 @@ static int smb2_parse_dt(struct smb2 *chip) static enum power_supply_property smb2_usb_props[] = { POWER_SUPPLY_PROP_PRESENT, POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_VOLTAGE_MIN, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_PD_CURRENT_MAX, Loading @@ -349,6 +348,9 @@ static enum power_supply_property smb2_usb_props[] = { POWER_SUPPLY_PROP_HW_CURRENT_MAX, POWER_SUPPLY_PROP_REAL_TYPE, POWER_SUPPLY_PROP_PR_SWAP, POWER_SUPPLY_PROP_PD_VOLTAGE_MAX, POWER_SUPPLY_PROP_PD_VOLTAGE_MIN, POWER_SUPPLY_PROP_SDP_CURRENT_MAX, }; static int smb2_usb_get_prop(struct power_supply *psy, Loading Loading @@ -380,20 +382,17 @@ static int smb2_usb_get_prop(struct power_supply *psy, if (chg->real_charger_type == POWER_SUPPLY_TYPE_UNKNOWN) val->intval = 0; break; case POWER_SUPPLY_PROP_VOLTAGE_MIN: val->intval = chg->voltage_min_uv; break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = chg->voltage_max_uv; rc = smblib_get_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: rc = smblib_get_prop_usb_voltage_now(chg, val); break; case POWER_SUPPLY_PROP_PD_CURRENT_MAX: rc = smblib_get_prop_pd_current_max(chg, val); val->intval = get_client_vote(chg->usb_icl_votable, PD_VOTER); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_usb_current_max(chg, val); rc = smblib_get_prop_input_current_settled(chg, val); break; case POWER_SUPPLY_PROP_TYPE: val->intval = POWER_SUPPLY_TYPE_USB_PD; Loading Loading @@ -457,6 +456,16 @@ static int smb2_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_PR_SWAP: rc = smblib_get_prop_pr_swap_in_progress(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MAX: val->intval = chg->voltage_max_uv; break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MIN: val->intval = chg->voltage_min_uv; break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading Loading @@ -484,18 +493,9 @@ static int smb2_usb_set_prop(struct power_supply *psy, } switch (psp) { case POWER_SUPPLY_PROP_VOLTAGE_MIN: rc = smblib_set_prop_usb_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_set_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_PD_CURRENT_MAX: rc = smblib_set_prop_pd_current_max(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_set_prop_usb_current_max(chg, val); break; case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: rc = smblib_set_prop_typec_power_role(chg, val); break; Loading @@ -518,6 +518,15 @@ static int smb2_usb_set_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_PR_SWAP: rc = smblib_set_prop_pr_swap_in_progress(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MAX: rc = smblib_set_prop_pd_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MIN: rc = smblib_set_prop_pd_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: rc = smblib_set_prop_sdp_current_max(chg, val); break; default: pr_err("set prop %d is not supported\n", psp); rc = -EINVAL; Loading @@ -533,8 +542,6 @@ static int smb2_usb_prop_is_writeable(struct power_supply *psy, enum power_supply_property psp) { switch (psp) { case POWER_SUPPLY_PROP_CURRENT_MAX: case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: case POWER_SUPPLY_PROP_CTM_CURRENT_MAX: return 1; default: Loading Loading @@ -576,6 +583,8 @@ static int smb2_init_usb_psy(struct smb2 *chip) static enum power_supply_property smb2_usb_port_props[] = { POWER_SUPPLY_PROP_TYPE, POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_CURRENT_MAX, }; static int smb2_usb_port_get_prop(struct power_supply *psy, Loading @@ -602,6 +611,12 @@ static int smb2_usb_port_get_prop(struct power_supply *psy, else val->intval = 0; break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = 5000000; break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_input_current_settled(chg, val); break; default: pr_err_ratelimited("Get prop %d is not supported in pc_port\n", psp); Loading drivers/power/supply/qcom/smb-lib.c +35 −29 Original line number Diff line number Diff line Loading @@ -420,20 +420,22 @@ static int smblib_set_adapter_allowance(struct smb_charger *chg, { int rc = 0; /* PM660 only support max. 9V */ if (chg->smb_version == PM660_SUBTYPE) { switch (allowed_voltage) { case USBIN_ADAPTER_ALLOW_12V: case USBIN_ADAPTER_ALLOW_5V_OR_12V: case USBIN_ADAPTER_ALLOW_9V_TO_12V: allowed_voltage = USBIN_ADAPTER_ALLOW_9V; break; case USBIN_ADAPTER_ALLOW_5V_OR_12V: case USBIN_ADAPTER_ALLOW_5V_OR_9V_TO_12V: case USBIN_ADAPTER_ALLOW_5V_TO_12V: /* PM660 only support max. 9V */ if (chg->smb_version == PM660_SUBTYPE) { smblib_dbg(chg, PR_MISC, "voltage not supported=%d\n", allowed_voltage); allowed_voltage = USBIN_ADAPTER_ALLOW_5V_OR_9V; } break; case USBIN_ADAPTER_ALLOW_5V_TO_12V: allowed_voltage = USBIN_ADAPTER_ALLOW_5V_TO_9V; break; } } rc = smblib_write(chg, USBIN_ADAPTER_ALLOW_CFG_REG, allowed_voltage); if (rc < 0) { Loading Loading @@ -2187,6 +2189,25 @@ int smblib_get_prop_usb_online(struct smb_charger *chg, return rc; } int smblib_get_prop_usb_voltage_max(struct smb_charger *chg, union power_supply_propval *val) { switch (chg->real_charger_type) { case POWER_SUPPLY_TYPE_USB_HVDCP: case POWER_SUPPLY_TYPE_USB_PD: if (chg->smb_version == PM660_SUBTYPE) val->intval = MICRO_9V; else val->intval = MICRO_12V; break; default: val->intval = MICRO_5V; break; } return 0; } int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val) { Loading @@ -2206,21 +2227,6 @@ int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, return iio_read_channel_processed(chg->iio.usbin_v_chan, &val->intval); } int smblib_get_prop_pd_current_max(struct smb_charger *chg, union power_supply_propval *val) { val->intval = get_client_vote_locked(chg->usb_icl_votable, PD_VOTER); return 0; } int smblib_get_prop_usb_current_max(struct smb_charger *chg, union power_supply_propval *val) { val->intval = get_client_vote_locked(chg->usb_icl_votable, USB_PSY_VOTER); return 0; } int smblib_get_prop_usb_current_now(struct smb_charger *chg, union power_supply_propval *val) { Loading Loading @@ -2558,7 +2564,7 @@ static int smblib_handle_usb_current(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_current_max(struct smb_charger *chg, int smblib_set_prop_sdp_current_max(struct smb_charger *chg, const union power_supply_propval *val) { int rc = 0; Loading Loading @@ -2645,7 +2651,7 @@ int smblib_set_prop_typec_power_role(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, int smblib_set_prop_pd_voltage_min(struct smb_charger *chg, const union power_supply_propval *val) { int rc, min_uv; Loading @@ -2664,7 +2670,7 @@ int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_voltage_max(struct smb_charger *chg, int smblib_set_prop_pd_voltage_max(struct smb_charger *chg, const union power_supply_propval *val) { int rc, max_uv; Loading drivers/power/supply/qcom/smb-lib.h +5 −7 Original line number Diff line number Diff line Loading @@ -443,11 +443,9 @@ int smblib_get_prop_usb_online(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_suspend(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_pd_current_max(struct smb_charger *chg, int smblib_get_prop_usb_voltage_max(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_current_max(struct smb_charger *chg, int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_current_now(struct smb_charger *chg, union power_supply_propval *val); Loading Loading @@ -475,11 +473,11 @@ int smblib_get_prop_charge_qnovo_enable(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_usb_current_max(struct smb_charger *chg, int smblib_set_prop_sdp_current_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, int smblib_set_prop_pd_voltage_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_usb_voltage_max(struct smb_charger *chg, int smblib_set_prop_pd_voltage_min(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_boost_current(struct smb_charger *chg, const union power_supply_propval *val); Loading drivers/power/supply/qcom/smb138x-charger.c +9 −17 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ static enum power_supply_property smb138x_usb_props[] = { POWER_SUPPLY_PROP_TYPEC_MODE, POWER_SUPPLY_PROP_TYPEC_POWER_ROLE, POWER_SUPPLY_PROP_TYPEC_CC_ORIENTATION, POWER_SUPPLY_PROP_SDP_CURRENT_MAX, }; static int smb138x_usb_get_prop(struct power_supply *psy, Loading Loading @@ -242,7 +243,7 @@ static int smb138x_usb_get_prop(struct power_supply *psy, rc = smblib_get_prop_usb_voltage_now(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_usb_current_max(chg, val); val->intval = get_effective_result(chg->usb_icl_votable); break; case POWER_SUPPLY_PROP_TYPE: val->intval = chg->usb_psy_desc.type; Loading @@ -256,6 +257,10 @@ static int smb138x_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TYPEC_CC_ORIENTATION: rc = smblib_get_prop_typec_cc_orientation(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; default: pr_err("get prop %d is not supported\n", prop); return -EINVAL; Loading @@ -278,18 +283,12 @@ static int smb138x_usb_set_prop(struct power_supply *psy, int rc = 0; switch (prop) { case POWER_SUPPLY_PROP_VOLTAGE_MIN: rc = smblib_set_prop_usb_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_set_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_set_prop_usb_current_max(chg, val); break; case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: rc = smblib_set_prop_typec_power_role(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: rc = smblib_set_prop_sdp_current_max(chg, val); break; default: pr_err("set prop %d is not supported\n", prop); return -EINVAL; Loading @@ -301,13 +300,6 @@ static int smb138x_usb_set_prop(struct power_supply *psy, static int smb138x_usb_prop_is_writeable(struct power_supply *psy, enum power_supply_property prop) { switch (prop) { case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: return 1; default: break; } return 0; } Loading drivers/usb/dwc3/dwc3-msm.c +1 −1 Original line number Diff line number Diff line Loading @@ -3702,7 +3702,7 @@ static int dwc3_msm_gadget_vbus_draw(struct dwc3_msm *mdwc, unsigned mA) } ret = power_supply_set_property(mdwc->usb_psy, POWER_SUPPLY_PROP_CURRENT_MAX, &pval); POWER_SUPPLY_PROP_SDP_CURRENT_MAX, &pval); if (ret) { dev_dbg(mdwc->dev, "power supply error when setting property\n"); return ret; Loading Loading
drivers/power/supply/qcom/qpnp-smb2.c +33 −18 Original line number Diff line number Diff line Loading @@ -330,7 +330,6 @@ static int smb2_parse_dt(struct smb2 *chip) static enum power_supply_property smb2_usb_props[] = { POWER_SUPPLY_PROP_PRESENT, POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_VOLTAGE_MIN, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_PD_CURRENT_MAX, Loading @@ -349,6 +348,9 @@ static enum power_supply_property smb2_usb_props[] = { POWER_SUPPLY_PROP_HW_CURRENT_MAX, POWER_SUPPLY_PROP_REAL_TYPE, POWER_SUPPLY_PROP_PR_SWAP, POWER_SUPPLY_PROP_PD_VOLTAGE_MAX, POWER_SUPPLY_PROP_PD_VOLTAGE_MIN, POWER_SUPPLY_PROP_SDP_CURRENT_MAX, }; static int smb2_usb_get_prop(struct power_supply *psy, Loading Loading @@ -380,20 +382,17 @@ static int smb2_usb_get_prop(struct power_supply *psy, if (chg->real_charger_type == POWER_SUPPLY_TYPE_UNKNOWN) val->intval = 0; break; case POWER_SUPPLY_PROP_VOLTAGE_MIN: val->intval = chg->voltage_min_uv; break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = chg->voltage_max_uv; rc = smblib_get_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: rc = smblib_get_prop_usb_voltage_now(chg, val); break; case POWER_SUPPLY_PROP_PD_CURRENT_MAX: rc = smblib_get_prop_pd_current_max(chg, val); val->intval = get_client_vote(chg->usb_icl_votable, PD_VOTER); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_usb_current_max(chg, val); rc = smblib_get_prop_input_current_settled(chg, val); break; case POWER_SUPPLY_PROP_TYPE: val->intval = POWER_SUPPLY_TYPE_USB_PD; Loading Loading @@ -457,6 +456,16 @@ static int smb2_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_PR_SWAP: rc = smblib_get_prop_pr_swap_in_progress(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MAX: val->intval = chg->voltage_max_uv; break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MIN: val->intval = chg->voltage_min_uv; break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading Loading @@ -484,18 +493,9 @@ static int smb2_usb_set_prop(struct power_supply *psy, } switch (psp) { case POWER_SUPPLY_PROP_VOLTAGE_MIN: rc = smblib_set_prop_usb_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_set_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_PD_CURRENT_MAX: rc = smblib_set_prop_pd_current_max(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_set_prop_usb_current_max(chg, val); break; case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: rc = smblib_set_prop_typec_power_role(chg, val); break; Loading @@ -518,6 +518,15 @@ static int smb2_usb_set_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_PR_SWAP: rc = smblib_set_prop_pr_swap_in_progress(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MAX: rc = smblib_set_prop_pd_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_PD_VOLTAGE_MIN: rc = smblib_set_prop_pd_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: rc = smblib_set_prop_sdp_current_max(chg, val); break; default: pr_err("set prop %d is not supported\n", psp); rc = -EINVAL; Loading @@ -533,8 +542,6 @@ static int smb2_usb_prop_is_writeable(struct power_supply *psy, enum power_supply_property psp) { switch (psp) { case POWER_SUPPLY_PROP_CURRENT_MAX: case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: case POWER_SUPPLY_PROP_CTM_CURRENT_MAX: return 1; default: Loading Loading @@ -576,6 +583,8 @@ static int smb2_init_usb_psy(struct smb2 *chip) static enum power_supply_property smb2_usb_port_props[] = { POWER_SUPPLY_PROP_TYPE, POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_CURRENT_MAX, }; static int smb2_usb_port_get_prop(struct power_supply *psy, Loading @@ -602,6 +611,12 @@ static int smb2_usb_port_get_prop(struct power_supply *psy, else val->intval = 0; break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = 5000000; break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_input_current_settled(chg, val); break; default: pr_err_ratelimited("Get prop %d is not supported in pc_port\n", psp); Loading
drivers/power/supply/qcom/smb-lib.c +35 −29 Original line number Diff line number Diff line Loading @@ -420,20 +420,22 @@ static int smblib_set_adapter_allowance(struct smb_charger *chg, { int rc = 0; /* PM660 only support max. 9V */ if (chg->smb_version == PM660_SUBTYPE) { switch (allowed_voltage) { case USBIN_ADAPTER_ALLOW_12V: case USBIN_ADAPTER_ALLOW_5V_OR_12V: case USBIN_ADAPTER_ALLOW_9V_TO_12V: allowed_voltage = USBIN_ADAPTER_ALLOW_9V; break; case USBIN_ADAPTER_ALLOW_5V_OR_12V: case USBIN_ADAPTER_ALLOW_5V_OR_9V_TO_12V: case USBIN_ADAPTER_ALLOW_5V_TO_12V: /* PM660 only support max. 9V */ if (chg->smb_version == PM660_SUBTYPE) { smblib_dbg(chg, PR_MISC, "voltage not supported=%d\n", allowed_voltage); allowed_voltage = USBIN_ADAPTER_ALLOW_5V_OR_9V; } break; case USBIN_ADAPTER_ALLOW_5V_TO_12V: allowed_voltage = USBIN_ADAPTER_ALLOW_5V_TO_9V; break; } } rc = smblib_write(chg, USBIN_ADAPTER_ALLOW_CFG_REG, allowed_voltage); if (rc < 0) { Loading Loading @@ -2187,6 +2189,25 @@ int smblib_get_prop_usb_online(struct smb_charger *chg, return rc; } int smblib_get_prop_usb_voltage_max(struct smb_charger *chg, union power_supply_propval *val) { switch (chg->real_charger_type) { case POWER_SUPPLY_TYPE_USB_HVDCP: case POWER_SUPPLY_TYPE_USB_PD: if (chg->smb_version == PM660_SUBTYPE) val->intval = MICRO_9V; else val->intval = MICRO_12V; break; default: val->intval = MICRO_5V; break; } return 0; } int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val) { Loading @@ -2206,21 +2227,6 @@ int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, return iio_read_channel_processed(chg->iio.usbin_v_chan, &val->intval); } int smblib_get_prop_pd_current_max(struct smb_charger *chg, union power_supply_propval *val) { val->intval = get_client_vote_locked(chg->usb_icl_votable, PD_VOTER); return 0; } int smblib_get_prop_usb_current_max(struct smb_charger *chg, union power_supply_propval *val) { val->intval = get_client_vote_locked(chg->usb_icl_votable, USB_PSY_VOTER); return 0; } int smblib_get_prop_usb_current_now(struct smb_charger *chg, union power_supply_propval *val) { Loading Loading @@ -2558,7 +2564,7 @@ static int smblib_handle_usb_current(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_current_max(struct smb_charger *chg, int smblib_set_prop_sdp_current_max(struct smb_charger *chg, const union power_supply_propval *val) { int rc = 0; Loading Loading @@ -2645,7 +2651,7 @@ int smblib_set_prop_typec_power_role(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, int smblib_set_prop_pd_voltage_min(struct smb_charger *chg, const union power_supply_propval *val) { int rc, min_uv; Loading @@ -2664,7 +2670,7 @@ int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, return rc; } int smblib_set_prop_usb_voltage_max(struct smb_charger *chg, int smblib_set_prop_pd_voltage_max(struct smb_charger *chg, const union power_supply_propval *val) { int rc, max_uv; Loading
drivers/power/supply/qcom/smb-lib.h +5 −7 Original line number Diff line number Diff line Loading @@ -443,11 +443,9 @@ int smblib_get_prop_usb_online(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_suspend(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_pd_current_max(struct smb_charger *chg, int smblib_get_prop_usb_voltage_max(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_current_max(struct smb_charger *chg, int smblib_get_prop_usb_voltage_now(struct smb_charger *chg, union power_supply_propval *val); int smblib_get_prop_usb_current_now(struct smb_charger *chg, union power_supply_propval *val); Loading Loading @@ -475,11 +473,11 @@ int smblib_get_prop_charge_qnovo_enable(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_usb_current_max(struct smb_charger *chg, int smblib_set_prop_sdp_current_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_usb_voltage_min(struct smb_charger *chg, int smblib_set_prop_pd_voltage_max(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_usb_voltage_max(struct smb_charger *chg, int smblib_set_prop_pd_voltage_min(struct smb_charger *chg, const union power_supply_propval *val); int smblib_set_prop_boost_current(struct smb_charger *chg, const union power_supply_propval *val); Loading
drivers/power/supply/qcom/smb138x-charger.c +9 −17 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ static enum power_supply_property smb138x_usb_props[] = { POWER_SUPPLY_PROP_TYPEC_MODE, POWER_SUPPLY_PROP_TYPEC_POWER_ROLE, POWER_SUPPLY_PROP_TYPEC_CC_ORIENTATION, POWER_SUPPLY_PROP_SDP_CURRENT_MAX, }; static int smb138x_usb_get_prop(struct power_supply *psy, Loading Loading @@ -242,7 +243,7 @@ static int smb138x_usb_get_prop(struct power_supply *psy, rc = smblib_get_prop_usb_voltage_now(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_get_prop_usb_current_max(chg, val); val->intval = get_effective_result(chg->usb_icl_votable); break; case POWER_SUPPLY_PROP_TYPE: val->intval = chg->usb_psy_desc.type; Loading @@ -256,6 +257,10 @@ static int smb138x_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_TYPEC_CC_ORIENTATION: rc = smblib_get_prop_typec_cc_orientation(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: val->intval = get_client_vote(chg->usb_icl_votable, USB_PSY_VOTER); break; default: pr_err("get prop %d is not supported\n", prop); return -EINVAL; Loading @@ -278,18 +283,12 @@ static int smb138x_usb_set_prop(struct power_supply *psy, int rc = 0; switch (prop) { case POWER_SUPPLY_PROP_VOLTAGE_MIN: rc = smblib_set_prop_usb_voltage_min(chg, val); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_set_prop_usb_voltage_max(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: rc = smblib_set_prop_usb_current_max(chg, val); break; case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: rc = smblib_set_prop_typec_power_role(chg, val); break; case POWER_SUPPLY_PROP_SDP_CURRENT_MAX: rc = smblib_set_prop_sdp_current_max(chg, val); break; default: pr_err("set prop %d is not supported\n", prop); return -EINVAL; Loading @@ -301,13 +300,6 @@ static int smb138x_usb_set_prop(struct power_supply *psy, static int smb138x_usb_prop_is_writeable(struct power_supply *psy, enum power_supply_property prop) { switch (prop) { case POWER_SUPPLY_PROP_TYPEC_POWER_ROLE: return 1; default: break; } return 0; } Loading
drivers/usb/dwc3/dwc3-msm.c +1 −1 Original line number Diff line number Diff line Loading @@ -3702,7 +3702,7 @@ static int dwc3_msm_gadget_vbus_draw(struct dwc3_msm *mdwc, unsigned mA) } ret = power_supply_set_property(mdwc->usb_psy, POWER_SUPPLY_PROP_CURRENT_MAX, &pval); POWER_SUPPLY_PROP_SDP_CURRENT_MAX, &pval); if (ret) { dev_dbg(mdwc->dev, "power supply error when setting property\n"); return ret; Loading