mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
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:
parent
2ed4db7a1d
commit
ef8b1b4eb7
|
|
@ -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]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user