[PATCH v7 0/7] Add support for the TI BQ25792 battery charger

Alexey Charkov posted 7 patches 5 days, 8 hours ago
drivers/power/supply/bq257xx_charger.c | 580 ++++++++++++++++++++++++++++++++-
drivers/regulator/bq257xx-regulator.c  | 106 +++++-
include/linux/mfd/bq257xx.h            |  14 +
3 files changed, 681 insertions(+), 19 deletions(-)
[PATCH v7 0/7] Add support for the TI BQ25792 battery charger
Posted by Alexey Charkov 5 days, 8 hours ago
This adds support for the TI BQ25792 battery charger, which is similar in
overall logic to the BQ25703A, but has a different register layout and
slightly different lower-level programming logic.

Signed-off-by: Alexey Charkov <alchark@flipper.net>
---
Changes in v7:
- Rebase onto recent -next and dropped patches already applied by Mark and Lee
- Enable the Input Current Optimizer to improve reliability with unrecognized chargers
- Explicitly program the battery cell count at init time to alleviate transient glitches
  with the charger going into spurious battery overvoltage state due to misdetected
  battery cell count
- Handle return values of all regmap writes in the init function
- Link to v6: https://lore.kernel.org/r/20260331-bq25792-v6-0-0278fba33eb9@flipper.net

Changes in v6:
- Changed -EINVAL to -ENODEV for non-match cases in the MFD driver, to stay
  in line with what other drivers do in similar situations (Lee Jones)
- Link to v5: https://lore.kernel.org/r/20260324-bq25792-v5-0-0a2eb58cf11d@flipper.net

Changes in v5:
- Added non-OF match data and switched to i2c_get_match_data() to support
  non-OF platforms (Lee Jones)
- Shifted the types in the enum to start at 1 to avoid confusion with
  zero-initialized data and non-match cases (Lee Jones)
- Reinstated the const qualifier on the MFD cell array (Lee Jones)
- Link to v4: https://lore.kernel.org/r/20260311-bq25792-v4-0-7213415d9eec@flipper.net

Changes in v4:
- Avoid additional data structures and pass 'type' within the existing
  struct bq257xx_device instead (Lee Jones)
- Move comments for new struct fields to the patches where those fields
  are added (Sebastian Reichel)
- Collect tags from Sebastian Reichel (thanks!)
- Link to v3: https://lore.kernel.org/r/20260310-bq25792-v3-0-02f8e232d63b@flipper.net

Changes in v3:
- Move MFD cell definitions back out of the probe function (Lee Jones)
- Collect tags from Mark Brown, Krzysztof Kozlowski and Chris Morgan (thanks!)
- Enable ship FET functionality at init for BQ25792
- Link to v2: https://lore.kernel.org/r/20260306-bq25792-v2-0-6595249d6e6f@flipper.net

Changes in v2:
- Fix an error in DT schema (thanks Rob's bot)
- Ensure the broadest constraints for all variants remain in the common
  part of the schema, per writing-schema doc (thanks Krzysztof)
- Link to v1: https://lore.kernel.org/r/20260303-bq25792-v1-0-e6e5e0033458@flipper.net

---
Alexey Charkov (7):
      regulator: bq257xx: Drop the regulator_dev from the driver data
      power: supply: bq257xx: Fix VSYSMIN clamping logic
      power: supply: bq257xx: Make the default current limit a per-chip attribute
      power: supply: bq257xx: Consistently use indirect get/set helpers
      power: supply: bq257xx: Add fields for 'charging' and 'overvoltage' states
      regulator: bq257xx: Add support for BQ25792
      power: supply: bq257xx: Add support for BQ25792

 drivers/power/supply/bq257xx_charger.c | 580 ++++++++++++++++++++++++++++++++-
 drivers/regulator/bq257xx-regulator.c  | 106 +++++-
 include/linux/mfd/bq257xx.h            |  14 +
 3 files changed, 681 insertions(+), 19 deletions(-)
---
base-commit: 08484c504b55a98bd100527fbe10a3caf55ff3ff
change-id: 20260303-bq25792-0132ac86846d

Best regards,
--  
Alexey Charkov <alchark@flipper.net>
Re: [PATCH v7 0/7] Add support for the TI BQ25792 battery charger
Posted by Sebastian Reichel 4 days, 7 hours ago
Hi,

On Wed, Jun 03, 2026 at 12:10:48AM +0400, Alexey Charkov wrote:
> This adds support for the TI BQ25792 battery charger, which is similar in
> overall logic to the BQ25703A, but has a different register layout and
> slightly different lower-level programming logic.
> 
> Signed-off-by: Alexey Charkov <alchark@flipper.net>
> ---
> Changes in v7:
> - Rebase onto recent -next and dropped patches already applied by Mark and Lee
> - Enable the Input Current Optimizer to improve reliability with unrecognized chargers
> - Explicitly program the battery cell count at init time to alleviate transient glitches
>   with the charger going into spurious battery overvoltage state due to misdetected
>   battery cell count
> - Handle return values of all regmap writes in the init function
> - Link to v6: https://lore.kernel.org/r/20260331-bq25792-v6-0-0278fba33eb9@flipper.net
> 
> Changes in v6:
> - Changed -EINVAL to -ENODEV for non-match cases in the MFD driver, to stay
>   in line with what other drivers do in similar situations (Lee Jones)
> - Link to v5: https://lore.kernel.org/r/20260324-bq25792-v5-0-0a2eb58cf11d@flipper.net
> 
> Changes in v5:
> - Added non-OF match data and switched to i2c_get_match_data() to support
>   non-OF platforms (Lee Jones)
> - Shifted the types in the enum to start at 1 to avoid confusion with
>   zero-initialized data and non-match cases (Lee Jones)
> - Reinstated the const qualifier on the MFD cell array (Lee Jones)
> - Link to v4: https://lore.kernel.org/r/20260311-bq25792-v4-0-7213415d9eec@flipper.net
> 
> Changes in v4:
> - Avoid additional data structures and pass 'type' within the existing
>   struct bq257xx_device instead (Lee Jones)
> - Move comments for new struct fields to the patches where those fields
>   are added (Sebastian Reichel)
> - Collect tags from Sebastian Reichel (thanks!)
> - Link to v3: https://lore.kernel.org/r/20260310-bq25792-v3-0-02f8e232d63b@flipper.net
> 
> Changes in v3:
> - Move MFD cell definitions back out of the probe function (Lee Jones)
> - Collect tags from Mark Brown, Krzysztof Kozlowski and Chris Morgan (thanks!)
> - Enable ship FET functionality at init for BQ25792
> - Link to v2: https://lore.kernel.org/r/20260306-bq25792-v2-0-6595249d6e6f@flipper.net
> 
> Changes in v2:
> - Fix an error in DT schema (thanks Rob's bot)
> - Ensure the broadest constraints for all variants remain in the common
>   part of the schema, per writing-schema doc (thanks Krzysztof)
> - Link to v1: https://lore.kernel.org/r/20260303-bq25792-v1-0-e6e5e0033458@flipper.net
> 
> ---
> Alexey Charkov (7):
>       regulator: bq257xx: Drop the regulator_dev from the driver data
>       power: supply: bq257xx: Fix VSYSMIN clamping logic
>       power: supply: bq257xx: Make the default current limit a per-chip attribute
>       power: supply: bq257xx: Consistently use indirect get/set helpers
>       power: supply: bq257xx: Add fields for 'charging' and 'overvoltage' states

I merged patches 2-5.

>       regulator: bq257xx: Add support for BQ25792
>       power: supply: bq257xx: Add support for BQ25792

This one updates the MFD header and does not apply to me tree. It
will have to wait a cycle, as there is not enough time to sync with
Lee how to proceed :)

Greetings,

-- Sebastian

> 
>  drivers/power/supply/bq257xx_charger.c | 580 ++++++++++++++++++++++++++++++++-
>  drivers/regulator/bq257xx-regulator.c  | 106 +++++-
>  include/linux/mfd/bq257xx.h            |  14 +
>  3 files changed, 681 insertions(+), 19 deletions(-)
> ---
> base-commit: 08484c504b55a98bd100527fbe10a3caf55ff3ff
> change-id: 20260303-bq25792-0132ac86846d
> 
> Best regards,
> --  
> Alexey Charkov <alchark@flipper.net>
>