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