[PATCH v8 0/2] Add support for the TI BQ25792 battery charger (regulator part)

From: Alexey Charkov

Date: Mon Jul 27 2026 - 04:06:24 EST


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.

Mark, would you mind applying the regulator part, which already carries
your Ack, and which is the only part outstanding from this series?

No cross-tree dependencies here, as the MFD part is already in master.

Signed-off-by: Alexey Charkov <alchark@xxxxxxxxxxx>
---
Changes in v8:
- Rebased onto recent -next and dropped patches already applied by Sebastian (thanks!)
- Link to v7: https://patch.msgid.link/20260603-bq25792-v7-0-d487bed276d0@xxxxxxxxxxx

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@xxxxxxxxxxx

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@xxxxxxxxxxx

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@xxxxxxxxxxx

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@xxxxxxxxxxx

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@xxxxxxxxxxx

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@xxxxxxxxxxx

To: Liam Girdwood <lgirdwood@xxxxxxxxx>
To: Mark Brown <broonie@xxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx

---
Alexey Charkov (2):
regulator: bq257xx: Drop the regulator_dev from the driver data
regulator: bq257xx: Add support for BQ25792

drivers/regulator/bq257xx-regulator.c | 106 ++++++++++++++++++++++++++++++++--
1 file changed, 101 insertions(+), 5 deletions(-)
---
base-commit: c5e32e86ca02b003f86e095d379b38148999293d
change-id: 20260303-bq25792-0132ac86846d

Best regards,
--
Alexey Charkov <alchark@xxxxxxxxxxx>