Commit d5ab845a authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

hwmon: (w83795) Expose fan control method

Expose fan control method (DC vs. PWM) using the standard sysfs
attributes. I've made it read-only as the board should be wired for
a given mode, the BIOS should have set up the chip for this mode, and
you shouldn't have to change it. But it would be easy enough to make
it changeable if someone comes up with a use case.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Acked-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
parent ae51cd9b
...@@ -915,6 +915,21 @@ store_pwm_enable(struct device *dev, struct device_attribute *attr, ...@@ -915,6 +915,21 @@ store_pwm_enable(struct device *dev, struct device_attribute *attr,
return count; return count;
} }
static ssize_t
show_pwm_mode(struct device *dev, struct device_attribute *attr, char *buf)
{
struct w83795_data *data = w83795_update_pwm_config(dev);
int index = to_sensor_dev_attr_2(attr)->index;
unsigned int mode;
if (data->pwm_fomc & (1 << index))
mode = 0; /* DC */
else
mode = 1; /* PWM */
return sprintf(buf, "%u\n", mode);
}
static ssize_t static ssize_t
show_temp_src(struct device *dev, struct device_attribute *attr, char *buf) show_temp_src(struct device *dev, struct device_attribute *attr, char *buf)
{ {
...@@ -1551,6 +1566,8 @@ store_sf_setup(struct device *dev, struct device_attribute *attr, ...@@ -1551,6 +1566,8 @@ store_sf_setup(struct device *dev, struct device_attribute *attr,
show_pwm, store_pwm, PWM_FREQ, index - 1), \ show_pwm, store_pwm, PWM_FREQ, index - 1), \
SENSOR_ATTR_2(pwm##index##_enable, S_IWUSR | S_IRUGO, \ SENSOR_ATTR_2(pwm##index##_enable, S_IWUSR | S_IRUGO, \
show_pwm_enable, store_pwm_enable, NOT_USED, index - 1), \ show_pwm_enable, store_pwm_enable, NOT_USED, index - 1), \
SENSOR_ATTR_2(pwm##index##_mode, S_IRUGO, \
show_pwm_mode, NULL, NOT_USED, index - 1), \
SENSOR_ATTR_2(fan##index##_target, S_IWUSR | S_IRUGO, \ SENSOR_ATTR_2(fan##index##_target, S_IWUSR | S_IRUGO, \
show_fanin, store_fanin, FANIN_TARGET, index - 1) } show_fanin, store_fanin, FANIN_TARGET, index - 1) }
...@@ -1698,7 +1715,7 @@ static const struct sensor_device_attribute_2 w83795_dts[][8] = { ...@@ -1698,7 +1715,7 @@ static const struct sensor_device_attribute_2 w83795_dts[][8] = {
SENSOR_ATTR_DTS(14), SENSOR_ATTR_DTS(14),
}; };
static const struct sensor_device_attribute_2 w83795_pwm[][7] = { static const struct sensor_device_attribute_2 w83795_pwm[][8] = {
SENSOR_ATTR_PWM(1), SENSOR_ATTR_PWM(1),
SENSOR_ATTR_PWM(2), SENSOR_ATTR_PWM(2),
SENSOR_ATTR_PWM(3), SENSOR_ATTR_PWM(3),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment