Loading Documentation/devicetree/bindings/power/supply/qcom/qpnp-fg-gen3.txt +5 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,11 @@ First Level Node - FG Gen3 device property "qcom,slope-limit-temp-threshold" to make dynamic slope limit adjustment functional. - qcom,fg-bmd-en-delay-ms Usage: optional Value type: <u32> Definition: The delay in ms for FG to enable BMD after reading RID. ========================================================== Second Level Nodes - Peripherals managed by FG Gen3 driver ========================================================== Loading arch/arm64/boot/dts/qcom/sdm845-qrd.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ &pmi8998_fg { qcom,battery-data = <&qrd_batterydata>; qcom,fg-bmd-en-delay-ms = <300>; }; &smb1355_charger { Loading drivers/power/supply/qcom/fg-core.h +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ struct fg_dt_props { int slope_limit_temp; int esr_pulse_thresh_ma; int esr_meas_curr_ma; int bmd_en_delay_ms; int jeita_thresholds[NUM_JEITA_LEVELS]; int ki_coeff_soc[KI_COEFF_SOC_LEVELS]; int ki_coeff_med_dischg[KI_COEFF_SOC_LEVELS]; Loading drivers/power/supply/qcom/qpnp-fg-gen3.c +10 −2 Original line number Diff line number Diff line Loading @@ -892,8 +892,8 @@ static int fg_get_batt_id(struct fg_chip *chip) goto out; } /* Wait for 200ms before enabling BMD again */ msleep(200); /* Wait for BATT_ID to settle down before enabling BMD again */ msleep(chip->dt.bmd_en_delay_ms); fg_dbg(chip, FG_STATUS, "batt_id: %d\n", batt_id); chip->batt_id_ohms = batt_id; Loading Loading @@ -4036,6 +4036,7 @@ static int fg_parse_ki_coefficients(struct fg_chip *chip) #define DEFAULT_ESR_CLAMP_MOHMS 20 #define DEFAULT_ESR_PULSE_THRESH_MA 110 #define DEFAULT_ESR_MEAS_CURR_MA 120 #define DEFAULT_BMD_EN_DELAY_MS 200 static int fg_parse_dt(struct fg_chip *chip) { struct device_node *child, *revid_node, *node = chip->dev->of_node; Loading Loading @@ -4382,6 +4383,13 @@ static int fg_parse_dt(struct fg_chip *chip) chip->dt.esr_meas_curr_ma = temp; } chip->dt.bmd_en_delay_ms = DEFAULT_BMD_EN_DELAY_MS; rc = of_property_read_u32(node, "qcom,fg-bmd-en-delay-ms", &temp); if (!rc) { if (temp > DEFAULT_BMD_EN_DELAY_MS) chip->dt.bmd_en_delay_ms = temp; } return 0; } Loading Loading
Documentation/devicetree/bindings/power/supply/qcom/qpnp-fg-gen3.txt +5 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,11 @@ First Level Node - FG Gen3 device property "qcom,slope-limit-temp-threshold" to make dynamic slope limit adjustment functional. - qcom,fg-bmd-en-delay-ms Usage: optional Value type: <u32> Definition: The delay in ms for FG to enable BMD after reading RID. ========================================================== Second Level Nodes - Peripherals managed by FG Gen3 driver ========================================================== Loading
arch/arm64/boot/dts/qcom/sdm845-qrd.dtsi +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ &pmi8998_fg { qcom,battery-data = <&qrd_batterydata>; qcom,fg-bmd-en-delay-ms = <300>; }; &smb1355_charger { Loading
drivers/power/supply/qcom/fg-core.h +1 −0 Original line number Diff line number Diff line Loading @@ -278,6 +278,7 @@ struct fg_dt_props { int slope_limit_temp; int esr_pulse_thresh_ma; int esr_meas_curr_ma; int bmd_en_delay_ms; int jeita_thresholds[NUM_JEITA_LEVELS]; int ki_coeff_soc[KI_COEFF_SOC_LEVELS]; int ki_coeff_med_dischg[KI_COEFF_SOC_LEVELS]; Loading
drivers/power/supply/qcom/qpnp-fg-gen3.c +10 −2 Original line number Diff line number Diff line Loading @@ -892,8 +892,8 @@ static int fg_get_batt_id(struct fg_chip *chip) goto out; } /* Wait for 200ms before enabling BMD again */ msleep(200); /* Wait for BATT_ID to settle down before enabling BMD again */ msleep(chip->dt.bmd_en_delay_ms); fg_dbg(chip, FG_STATUS, "batt_id: %d\n", batt_id); chip->batt_id_ohms = batt_id; Loading Loading @@ -4036,6 +4036,7 @@ static int fg_parse_ki_coefficients(struct fg_chip *chip) #define DEFAULT_ESR_CLAMP_MOHMS 20 #define DEFAULT_ESR_PULSE_THRESH_MA 110 #define DEFAULT_ESR_MEAS_CURR_MA 120 #define DEFAULT_BMD_EN_DELAY_MS 200 static int fg_parse_dt(struct fg_chip *chip) { struct device_node *child, *revid_node, *node = chip->dev->of_node; Loading Loading @@ -4382,6 +4383,13 @@ static int fg_parse_dt(struct fg_chip *chip) chip->dt.esr_meas_curr_ma = temp; } chip->dt.bmd_en_delay_ms = DEFAULT_BMD_EN_DELAY_MS; rc = of_property_read_u32(node, "qcom,fg-bmd-en-delay-ms", &temp); if (!rc) { if (temp > DEFAULT_BMD_EN_DELAY_MS) chip->dt.bmd_en_delay_ms = temp; } return 0; } Loading