]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hwmon: (max6639) fix inverted polarity
authorOlivier Sobrie <olivier@sobrie.be>
Wed, 4 Mar 2026 21:20:39 +0000 (22:20 +0100)
committerGuenter Roeck <linux@roeck-us.net>
Wed, 4 Mar 2026 21:57:15 +0000 (13:57 -0800)
According to MAX6639 documentation:

  D1: PWM Output Polarity. PWM output is low at
  100% duty cycle when this bit is set to zero. PWM
  output is high at 100% duty cycle when this bit is set
  to 1.

Up to commit 0f33272b60ed ("hwmon: (max6639) : Update hwmon init using
info structure"), the polarity was set to high (0x2) when no platform
data was set. After the patch, the polarity register wasn't set anymore
if no platform data was specified. Nowadays, since commit 7506ebcd662b
("hwmon: (max6639) : Configure based on DT property"), it is always set
to low which doesn't match with the comment above and change the
behavior compared to versions prior 0f33272b60ed.

Fixes: 0f33272b60ed ("hwmon: (max6639) : Update hwmon init using info structure")
Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
Link: https://lore.kernel.org/r/20260304212039.570274-1-olivier@sobrie.be
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/max6639.c

index a0a1dbbda8871e332f75a871b8c9304f358623b4..9a3c515efe2ed3972223eaaa37eda29ba8d7dde7 100644 (file)
@@ -607,7 +607,7 @@ static int max6639_init_client(struct i2c_client *client,
                        return err;
 
                /* Fans PWM polarity high by default */
-               err = regmap_write(data->regmap, MAX6639_REG_FAN_CONFIG2a(i), 0x00);
+               err = regmap_write(data->regmap, MAX6639_REG_FAN_CONFIG2a(i), 0x02);
                if (err)
                        return err;