hwmon: (emc2305) Enable PWM polarity and output configuration

Enable configuration of PWM polarity and PWM output config
based Device Tree properties.

Signed-off-by: Florin Leotescu <florin.leotescu@nxp.com>
Link: https://lore.kernel.org/r/20250603113125.3175103-4-florin.leotescu@oss.nxp.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Florin Leotescu 2025-06-03 14:31:24 +03:00 committed by Guenter Roeck
parent 2ed4db7a1d
commit ef8b1b4eb7

View File

@ -28,6 +28,10 @@
#define EMC2305_TACH_RANGE_MIN 480
#define EMC2305_DEFAULT_OUTPUT 0x0
#define EMC2305_DEFAULT_POLARITY 0x0
#define EMC2305_REG_POLARITY 0x2a
#define EMC2305_REG_DRIVE_PWM_OUT 0x2b
#define EMC2305_OPEN_DRAIN 0x0
#define EMC2305_PUSH_PULL 0x1
#define EMC2305_PWM_DUTY2STATE(duty, max_state, pwm_max) \
DIV_ROUND_CLOSEST((duty) * (max_state), (pwm_max))
@ -686,6 +690,16 @@ static int emc2305_probe(struct i2c_client *client)
}
}
ret = i2c_smbus_write_byte_data(client, EMC2305_REG_DRIVE_PWM_OUT,
data->pwm_output_mask);
if (ret < 0)
dev_err(dev, "Failed to configure pwm output, using default\n");
ret = i2c_smbus_write_byte_data(client, EMC2305_REG_POLARITY,
data->pwm_polarity_mask);
if (ret < 0)
dev_err(dev, "Failed to configure pwm polarity, using default\n");
for (i = 0; i < data->pwm_num; i++) {
ret = i2c_smbus_write_byte_data(client, EMC2305_REG_FAN_MIN_DRIVE(i),
data->pwm_min[i]);