Loading Documentation/devicetree/bindings/power/supply/qcom/qpnp-smbcharger.txt +3 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,9 @@ Optional Properties: battery. - qcom,vchg_sns-vadc Phandle of the VADC node. - qcom,vchg-adc-channel-id The ADC channel to which the VCHG is routed. - qcom,max-pulse-allowed The maximum number of pulses allowed in HVDCP3 mode. It can be used to restrict VBUS to a value. Example: qcom,qpnp-smbcharger { Loading drivers/power/supply/qcom/qpnp-smbcharger.c +11 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,7 @@ struct smbchg_chip { int n_vbat_samples; /* status variables */ int max_pulse_allowed; int wake_reasons; int previous_soc; int usb_online; Loading Loading @@ -5813,6 +5814,7 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_RERUN_AICL, POWER_SUPPLY_PROP_RESTRICTED_CHARGING, POWER_SUPPLY_PROP_ALLOW_HVDCP3, POWER_SUPPLY_PROP_MAX_PULSE_ALLOWED, }; static int smbchg_battery_set_property(struct power_supply *psy, Loading Loading @@ -6029,6 +6031,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_ALLOW_HVDCP3: val->intval = chip->allow_hvdcp3_detection; break; case POWER_SUPPLY_PROP_MAX_PULSE_ALLOWED: val->intval = chip->max_pulse_allowed; break; default: return -EINVAL; } Loading Loading @@ -7380,6 +7385,7 @@ static int smb_parse_wipower_dt(struct smbchg_chip *chip) #define DEFAULT_VLED_MAX_UV 3500000 #define DEFAULT_FCC_MA 2000 #define DEFAULT_NUM_OF_PULSE_ALLOWED 20 static int smb_parse_dt(struct smbchg_chip *chip) { int rc = 0, ocp_thresh = -EINVAL; Loading Loading @@ -7438,6 +7444,11 @@ static int smb_parse_dt(struct smbchg_chip *chip) if (chip->parallel.min_current_thr_ma != -EINVAL && chip->parallel.min_9v_current_thr_ma != -EINVAL) chip->parallel.avail = true; OF_PROP_READ(chip, chip->max_pulse_allowed, "max-pulse-allowed", rc, 1); if (chip->max_pulse_allowed == -EINVAL) chip->max_pulse_allowed = DEFAULT_NUM_OF_PULSE_ALLOWED; /* * use the dt values if they exist, otherwise do not touch the params */ Loading Loading
Documentation/devicetree/bindings/power/supply/qcom/qpnp-smbcharger.txt +3 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,9 @@ Optional Properties: battery. - qcom,vchg_sns-vadc Phandle of the VADC node. - qcom,vchg-adc-channel-id The ADC channel to which the VCHG is routed. - qcom,max-pulse-allowed The maximum number of pulses allowed in HVDCP3 mode. It can be used to restrict VBUS to a value. Example: qcom,qpnp-smbcharger { Loading
drivers/power/supply/qcom/qpnp-smbcharger.c +11 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,7 @@ struct smbchg_chip { int n_vbat_samples; /* status variables */ int max_pulse_allowed; int wake_reasons; int previous_soc; int usb_online; Loading Loading @@ -5813,6 +5814,7 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_RERUN_AICL, POWER_SUPPLY_PROP_RESTRICTED_CHARGING, POWER_SUPPLY_PROP_ALLOW_HVDCP3, POWER_SUPPLY_PROP_MAX_PULSE_ALLOWED, }; static int smbchg_battery_set_property(struct power_supply *psy, Loading Loading @@ -6029,6 +6031,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_ALLOW_HVDCP3: val->intval = chip->allow_hvdcp3_detection; break; case POWER_SUPPLY_PROP_MAX_PULSE_ALLOWED: val->intval = chip->max_pulse_allowed; break; default: return -EINVAL; } Loading Loading @@ -7380,6 +7385,7 @@ static int smb_parse_wipower_dt(struct smbchg_chip *chip) #define DEFAULT_VLED_MAX_UV 3500000 #define DEFAULT_FCC_MA 2000 #define DEFAULT_NUM_OF_PULSE_ALLOWED 20 static int smb_parse_dt(struct smbchg_chip *chip) { int rc = 0, ocp_thresh = -EINVAL; Loading Loading @@ -7438,6 +7444,11 @@ static int smb_parse_dt(struct smbchg_chip *chip) if (chip->parallel.min_current_thr_ma != -EINVAL && chip->parallel.min_9v_current_thr_ma != -EINVAL) chip->parallel.avail = true; OF_PROP_READ(chip, chip->max_pulse_allowed, "max-pulse-allowed", rc, 1); if (chip->max_pulse_allowed == -EINVAL) chip->max_pulse_allowed = DEFAULT_NUM_OF_PULSE_ALLOWED; /* * use the dt values if they exist, otherwise do not touch the params */ Loading