On Thu, Aug 24, 2023 at 3:28 PM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > On 24/08/2023 15:00, Emmanuel Gil Peyrot wrote: > > >>> @@ -2027,6 +2028,7 @@ MODULE_DEVICE_TABLE(i2c, bq24190_i2c_ids); > >>> static const struct of_device_id bq24190_of_match[] = { > >>> { .compatible = "ti,bq24190", }, > >>> { .compatible = "ti,bq24192", }, > >>> + { .compatible = "ti,bq24193", }, > >>> { .compatible = "ti,bq24192i", }, > >>> { .compatible = "ti,bq24196", }, > >> > >> We should really stop doing this. All of them are compatible, aren't they? > > > > From what I gather from the different datasheets, the main difference > > between them is the maximum current they are able to provide, 1.5 A for > > the bq24190 and bq24192i, 3 A for bq24192 and 4.5 A for bq24193. The > > default current limit is also detected differently it seems. But yeah, > > those are otherwise similar enough to not require anything different in > > the driver. > > > > What would be a good way forward for that? Adding a new ti,bq2419x > > compatible and switching all devices to this one, as long as they don’t > > require anything specific? > > Not a wildcard but any of existing ones, e.g. "ti,bq24196", "ti,bq24190". We usually encourage people to over-specify the hardware number, because you never know when you need a quirk and then if you can't tell them apart you are in a bad place. (But there are exceptions, such as jedec-nor...) The differences pointed out (charge current limit etc) can very well result in different code paths at some point, especially if the charger interacts with some other component. Yours, Linus Walleij