Re: [PATCH v3 2/2] power: supply: Add driver for TI BQ25630 charger

From: Sebastian Reichel

Date: Fri Jul 24 2026 - 20:58:38 EST


Hi,

On Mon, Jun 29, 2026 at 12:01:19AM +0200, Waqar Hameed wrote:
> TI BQ25630 is a battery charger that is I2C controlled. Despite its
> model name, it is rather different from the other devices in the BQ256xx
> family; it has a completely different register layout and some other
> additional functionality (see the datasheet for more details [1]).
>
> The most "annoying" thing is that it has two different register lengths:
> 8-bit and 16-bit. Moreover, the 16-bit registers are further partitioned
> into either being little- or big-endian... Luckily, `regmap` has support
> for multiple `regmap_config`s (by setting unique names). Therefore, use
> three different `regmap_config`s for the corresponding registers. ADC
> functionality has been left out, due to it not having any real-world
> use-cases.
>
> The `enum power_supply_property` values are straightforward to map. Some
> properties are clamped (e.g. voltage/current ranges). Common
> `bq25630_read/write_limit()` functions for this are therefore suitable.
>
> Interrupts are sent whenever a state change is detected. Save the state
> status registers in `bq25630_data` and `memcmp()` this in order to
> decide if `power_supply_changed()` should be called or not. The actual
> state values are in (and fetched from) the other
> `power_supply_property`-mapped registers.
>
> [1] https://www.ti.com/lit/gpn/bq25630
>
> Signed-off-by: Waqar Hameed <waqar.hameed@xxxxxxxx>
> ---
> drivers/power/supply/Kconfig | 7 +
> drivers/power/supply/Makefile | 1 +
> drivers/power/supply/bq25630_charger.c | 1073 ++++++++++++++++++++++++
> 3 files changed, 1081 insertions(+)
> create mode 100644 drivers/power/supply/bq25630_charger.c
>

[...]

> +static const struct power_supply_desc bq25630_charger_psy_desc = {
> + .name = BQ25630_DRV_NAME,
> + .type = POWER_SUPPLY_TYPE_USB_TYPE_C,

Just POWER_SUPPLY_TYPE_USB, other USB details should be done via
USB_TYPES (as you do already). I just cannot remove those types
because they are used by some old drivers and exposed to userspace
and thus ABI. I guesss I should add a _DEPRECATED to the in-kernel
name.

I will fix that up while applying.

Greetings,

-- Sebastian

Attachment: signature.asc
Description: PGP signature