Hi, On Mon, Jul 07, 2025 at 05:37:24PM +0100, Samuel Kayode wrote: > Add support for the battery charger for pf1550 PMIC. > > Signed-off-by: Samuel Kayode <samuel.kayode@xxxxxxxxxxxxxxxxxxxx> > --- [...] > diff --git a/drivers/power/supply/pf1550-charger.c b/drivers/power/supply/pf1550-charger.c > new file mode 100644 > index 0000000000000000000000000000000000000000..7a6bd9c30d60280f1e1c50d4e1ddaf0a4998b9f0 > --- /dev/null > +++ b/drivers/power/supply/pf1550-charger.c > @@ -0,0 +1,632 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * charger driver for the PF1550 > + * > + * Copyright (C) 2016 Freescale Semiconductor, Inc. > + * Robin Gong <yibin.gong@xxxxxxxxxxxxx> > + * > + * Portions Copyright (c) 2025 Savoir-faire Linux Inc. > + * Samuel Kayode <samuel.kayode@xxxxxxxxxxxxxxxxxxxx> > + */ > + > +#include <linux/devm-helpers.h> > +#include <linux/interrupt.h> > +#include <linux/mfd/pf1550.h> > +#include <linux/module.h> > +#include <linux/platform_device.h> > +#include <linux/power_supply.h> > + > +#define PF1550_DEFAULT_CONSTANT_VOLT 4200000 > +#define PF1550_DEFAULT_MIN_SYSTEM_VOLT 3500000 > +#define PF1550_DEFAULT_THERMAL_TEMP 75 Default is 95 > +#define PF1550_CHARGER_IRQ_NR 5 > + > +struct pf1550_charger { > + struct device *dev; > + const struct pf1550_ddata *pf1550; > + struct power_supply *charger; > + struct power_supply *battery; > + struct delayed_work vbus_sense_work; > + struct delayed_work chg_sense_work; > + struct delayed_work bat_sense_work; > + int virqs[PF1550_CHARGER_IRQ_NR]; > + [...] > + > +static int pf1550_set_thermal_regulation_temp(struct pf1550_charger *chg, > + unsigned int cells) > +{ > + unsigned int data; > + > + switch (cells) { > + case 60: > + data = 0x0; > + break; > + case 75: > + data = 0x1; > + break; > + case 90: > + data = 0x2; > + break; > + case 105: > + data = 0x3; > + break;