Loading drivers/power/supply/qcom/qpnp-smblite.c +25 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "smblite-lib.h" #include "schgm-flashlite.h" static struct power_supply_desc usb_psy_desc; static struct smb_params smblite_params = { .fcc = { .name = "fast charge current", Loading Loading @@ -382,6 +384,8 @@ static enum power_supply_property smblite_usb_props[] = { POWER_SUPPLY_PROP_REAL_TYPE, POWER_SUPPLY_PROP_CONNECTOR_TYPE, POWER_SUPPLY_PROP_SCOPE, POWER_SUPPLY_PROP_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, }; static int smblite_usb_get_prop(struct power_supply *psy, Loading Loading @@ -433,6 +437,12 @@ static int smblite_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_SCOPE: rc = smblite_lib_get_prop_scope(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: val->intval = get_effective_result_locked(chg->usb_icl_votable); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = 5000000; break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading @@ -447,6 +457,20 @@ static int smblite_usb_get_prop(struct power_supply *psy, return 0; } void smblite_update_usb_desc(struct smb_charger *chg) { switch (chg->real_charger_type) { case POWER_SUPPLY_TYPE_USB_CDP: case POWER_SUPPLY_TYPE_USB_DCP: case POWER_SUPPLY_TYPE_USB: usb_psy_desc.type = chg->real_charger_type; break; default: usb_psy_desc.type = POWER_SUPPLY_TYPE_USB; break; } } #define MIN_THERMAL_VOTE_UA 500000 static int smblite_usb_set_prop(struct power_supply *psy, enum power_supply_property psp, Loading Loading @@ -486,7 +510,7 @@ static int smblite_usb_prop_is_writeable(struct power_supply *psy, return rc; } static const struct power_supply_desc usb_psy_desc = { static struct power_supply_desc usb_psy_desc = { .name = "usb", .type = POWER_SUPPLY_TYPE_USB, .properties = smblite_usb_props, Loading drivers/power/supply/qcom/smblite-lib.c +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ static void smblite_lib_update_usb_type(struct smb_charger *chg, enum power_supply_type type) { chg->real_charger_type = type; smblite_update_usb_desc(chg); } static int smblite_lib_notifier_call(struct notifier_block *nb, Loading drivers/power/supply/qcom/smblite-lib.h +1 −1 Original line number Diff line number Diff line Loading @@ -470,7 +470,7 @@ int smblite_lib_get_irq_status(struct smb_charger *chg, union power_supply_propval *val); int smblite_lib_set_prop_usb_type(struct smb_charger *chg, const union power_supply_propval *val); void smblite_update_usb_desc(struct smb_charger *chg); int smblite_lib_init(struct smb_charger *chg); int smblite_lib_deinit(struct smb_charger *chg); #endif /* __SMBLITE_LIB_H */ Loading
drivers/power/supply/qcom/qpnp-smblite.c +25 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ #include "smblite-lib.h" #include "schgm-flashlite.h" static struct power_supply_desc usb_psy_desc; static struct smb_params smblite_params = { .fcc = { .name = "fast charge current", Loading Loading @@ -382,6 +384,8 @@ static enum power_supply_property smblite_usb_props[] = { POWER_SUPPLY_PROP_REAL_TYPE, POWER_SUPPLY_PROP_CONNECTOR_TYPE, POWER_SUPPLY_PROP_SCOPE, POWER_SUPPLY_PROP_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, }; static int smblite_usb_get_prop(struct power_supply *psy, Loading Loading @@ -433,6 +437,12 @@ static int smblite_usb_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_SCOPE: rc = smblite_lib_get_prop_scope(chg, val); break; case POWER_SUPPLY_PROP_CURRENT_MAX: val->intval = get_effective_result_locked(chg->usb_icl_votable); break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: val->intval = 5000000; break; default: pr_err("get prop %d is not supported in usb\n", psp); rc = -EINVAL; Loading @@ -447,6 +457,20 @@ static int smblite_usb_get_prop(struct power_supply *psy, return 0; } void smblite_update_usb_desc(struct smb_charger *chg) { switch (chg->real_charger_type) { case POWER_SUPPLY_TYPE_USB_CDP: case POWER_SUPPLY_TYPE_USB_DCP: case POWER_SUPPLY_TYPE_USB: usb_psy_desc.type = chg->real_charger_type; break; default: usb_psy_desc.type = POWER_SUPPLY_TYPE_USB; break; } } #define MIN_THERMAL_VOTE_UA 500000 static int smblite_usb_set_prop(struct power_supply *psy, enum power_supply_property psp, Loading Loading @@ -486,7 +510,7 @@ static int smblite_usb_prop_is_writeable(struct power_supply *psy, return rc; } static const struct power_supply_desc usb_psy_desc = { static struct power_supply_desc usb_psy_desc = { .name = "usb", .type = POWER_SUPPLY_TYPE_USB, .properties = smblite_usb_props, Loading
drivers/power/supply/qcom/smblite-lib.c +1 −0 Original line number Diff line number Diff line Loading @@ -378,6 +378,7 @@ static void smblite_lib_update_usb_type(struct smb_charger *chg, enum power_supply_type type) { chg->real_charger_type = type; smblite_update_usb_desc(chg); } static int smblite_lib_notifier_call(struct notifier_block *nb, Loading
drivers/power/supply/qcom/smblite-lib.h +1 −1 Original line number Diff line number Diff line Loading @@ -470,7 +470,7 @@ int smblite_lib_get_irq_status(struct smb_charger *chg, union power_supply_propval *val); int smblite_lib_set_prop_usb_type(struct smb_charger *chg, const union power_supply_propval *val); void smblite_update_usb_desc(struct smb_charger *chg); int smblite_lib_init(struct smb_charger *chg); int smblite_lib_deinit(struct smb_charger *chg); #endif /* __SMBLITE_LIB_H */