Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwmon: (emc2305) Add support for PWM frequency, polarity and output

Add three new attributes to the driver data structures to support
configuration of PWM frequency, PWM polarity and PWM output config.

Signed-off-by: Florin Leotescu <florin.leotescu@nxp.com>
Link: https://lore.kernel.org/r/20250603113125.3175103-2-florin.leotescu@oss.nxp.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Florin Leotescu and committed by
Guenter Roeck
7114b74d 90cf254f

+12
+6
drivers/hwmon/emc2305.c
··· 89 89 * @hwmon_dev: hwmon device 90 90 * @max_state: maximum cooling state of the cooling device 91 91 * @pwm_num: number of PWM channels 92 + * @pwm_output_mask: PWM output mask 93 + * @pwm_polarity_mask: PWM polarity mask 92 94 * @pwm_separate: separate PWM settings for every channel 93 95 * @pwm_min: array of minimum PWM per channel 96 + * @pwm_freq: array of PWM frequency per channel 94 97 * @cdev_data: array of cooling devices data 95 98 */ 96 99 struct emc2305_data { ··· 101 98 struct device *hwmon_dev; 102 99 u8 max_state; 103 100 u8 pwm_num; 101 + u8 pwm_output_mask; 102 + u8 pwm_polarity_mask; 104 103 bool pwm_separate; 105 104 u8 pwm_min[EMC2305_PWM_MAX]; 105 + u16 pwm_freq[EMC2305_PWM_MAX]; 106 106 struct emc2305_cdev_data cdev_data[EMC2305_PWM_MAX]; 107 107 }; 108 108
+6
include/linux/platform_data/emc2305.h
··· 9 9 * struct emc2305_platform_data - EMC2305 driver platform data 10 10 * @max_state: maximum cooling state of the cooling device; 11 11 * @pwm_num: number of active channels; 12 + * @pwm_output_mask: PWM output mask 13 + * @pwm_polarity_mask: PWM polarity mask 12 14 * @pwm_separate: separate PWM settings for every channel; 13 15 * @pwm_min: array of minimum PWM per channel; 16 + * @pwm_freq: array of PWM frequency per channel 14 17 */ 15 18 struct emc2305_platform_data { 16 19 u8 max_state; 17 20 u8 pwm_num; 21 + u8 pwm_output_mask; 22 + u8 pwm_polarity_mask; 18 23 bool pwm_separate; 19 24 u8 pwm_min[EMC2305_PWM_MAX]; 25 + u16 pwm_freq[EMC2305_PWM_MAX]; 20 26 }; 21 27 22 28 #endif