[PATCH] regulator (max5970): Fix IRQ handler

From: Naresh Solanki
Date: Tue Jan 30 2024 - 10:03:10 EST


From: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>

The max5970 datasheet gives the impression that IRQ status bits must
be cleared by writing a one to set bits, as those are marked with 'R/C',
however tests showed that a zero must be written.

Fixes an IRQ storm as the interrupt handler actually clears the IRQ
status bits.

Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
Signed-off-by: Naresh Solanki <naresh.solanki@xxxxxxxxxxxxx>
---
drivers/regulator/max5970-regulator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/regulator/max5970-regulator.c b/drivers/regulator/max5970-regulator.c
index bc88a40a88d4..830a1c4cd705 100644
--- a/drivers/regulator/max5970-regulator.c
+++ b/drivers/regulator/max5970-regulator.c
@@ -392,7 +392,7 @@ static int max597x_regmap_read_clear(struct regmap *map, unsigned int reg,
return ret;

if (*val)
- return regmap_write(map, reg, *val);
+ return regmap_write(map, reg, 0);

return 0;
}

base-commit: 861c0981648f5b64c86fd028ee622096eb7af05a
--
2.42.0