diff options
Diffstat (limited to 'drivers/pwm/sysfs.c')
| -rw-r--r-- | drivers/pwm/sysfs.c | 102 | 
1 files changed, 56 insertions, 46 deletions
| diff --git a/drivers/pwm/sysfs.c b/drivers/pwm/sysfs.c index 4bd0c639e16d..9c90886f4123 100644 --- a/drivers/pwm/sysfs.c +++ b/drivers/pwm/sysfs.c @@ -40,18 +40,18 @@ static struct pwm_device *child_to_pwm_device(struct device *child)  	return export->pwm;  } -static ssize_t pwm_period_show(struct device *child, -			       struct device_attribute *attr, -			       char *buf) +static ssize_t period_show(struct device *child, +			   struct device_attribute *attr, +			   char *buf)  {  	const struct pwm_device *pwm = child_to_pwm_device(child); -	return sprintf(buf, "%u\n", pwm->period); +	return sprintf(buf, "%u\n", pwm_get_period(pwm));  } -static ssize_t pwm_period_store(struct device *child, -				struct device_attribute *attr, -				const char *buf, size_t size) +static ssize_t period_store(struct device *child, +			    struct device_attribute *attr, +			    const char *buf, size_t size)  {  	struct pwm_device *pwm = child_to_pwm_device(child);  	unsigned int val; @@ -61,23 +61,23 @@ static ssize_t pwm_period_store(struct device *child,  	if (ret)  		return ret; -	ret = pwm_config(pwm, pwm->duty_cycle, val); +	ret = pwm_config(pwm, pwm_get_duty_cycle(pwm), val);  	return ret ? : size;  } -static ssize_t pwm_duty_cycle_show(struct device *child, -				   struct device_attribute *attr, -				   char *buf) +static ssize_t duty_cycle_show(struct device *child, +			       struct device_attribute *attr, +			       char *buf)  {  	const struct pwm_device *pwm = child_to_pwm_device(child); -	return sprintf(buf, "%u\n", pwm->duty_cycle); +	return sprintf(buf, "%u\n", pwm_get_duty_cycle(pwm));  } -static ssize_t pwm_duty_cycle_store(struct device *child, -				    struct device_attribute *attr, -				    const char *buf, size_t size) +static ssize_t duty_cycle_store(struct device *child, +				struct device_attribute *attr, +				const char *buf, size_t size)  {  	struct pwm_device *pwm = child_to_pwm_device(child);  	unsigned int val; @@ -87,24 +87,23 @@ static ssize_t pwm_duty_cycle_store(struct device *child,  	if (ret)  		return ret; -	ret = pwm_config(pwm, val, pwm->period); +	ret = pwm_config(pwm, val, pwm_get_period(pwm));  	return ret ? : size;  } -static ssize_t pwm_enable_show(struct device *child, -			       struct device_attribute *attr, -			       char *buf) +static ssize_t enable_show(struct device *child, +			   struct device_attribute *attr, +			   char *buf)  {  	const struct pwm_device *pwm = child_to_pwm_device(child); -	int enabled = test_bit(PWMF_ENABLED, &pwm->flags); -	return sprintf(buf, "%d\n", enabled); +	return sprintf(buf, "%d\n", pwm_is_enabled(pwm));  } -static ssize_t pwm_enable_store(struct device *child, -				struct device_attribute *attr, -				const char *buf, size_t size) +static ssize_t enable_store(struct device *child, +			    struct device_attribute *attr, +			    const char *buf, size_t size)  {  	struct pwm_device *pwm = child_to_pwm_device(child);  	int val, ret; @@ -128,18 +127,29 @@ static ssize_t pwm_enable_store(struct device *child,  	return ret ? : size;  } -static ssize_t pwm_polarity_show(struct device *child, -				 struct device_attribute *attr, -				 char *buf) +static ssize_t polarity_show(struct device *child, +			     struct device_attribute *attr, +			     char *buf)  {  	const struct pwm_device *pwm = child_to_pwm_device(child); +	const char *polarity = "unknown"; + +	switch (pwm_get_polarity(pwm)) { +	case PWM_POLARITY_NORMAL: +		polarity = "normal"; +		break; -	return sprintf(buf, "%s\n", pwm->polarity ? "inversed" : "normal"); +	case PWM_POLARITY_INVERSED: +		polarity = "inversed"; +		break; +	} + +	return sprintf(buf, "%s\n", polarity);  } -static ssize_t pwm_polarity_store(struct device *child, -				  struct device_attribute *attr, -				  const char *buf, size_t size) +static ssize_t polarity_store(struct device *child, +			      struct device_attribute *attr, +			      const char *buf, size_t size)  {  	struct pwm_device *pwm = child_to_pwm_device(child);  	enum pwm_polarity polarity; @@ -157,10 +167,10 @@ static ssize_t pwm_polarity_store(struct device *child,  	return ret ? : size;  } -static DEVICE_ATTR(period, 0644, pwm_period_show, pwm_period_store); -static DEVICE_ATTR(duty_cycle, 0644, pwm_duty_cycle_show, pwm_duty_cycle_store); -static DEVICE_ATTR(enable, 0644, pwm_enable_show, pwm_enable_store); -static DEVICE_ATTR(polarity, 0644, pwm_polarity_show, pwm_polarity_store); +static DEVICE_ATTR_RW(period); +static DEVICE_ATTR_RW(duty_cycle); +static DEVICE_ATTR_RW(enable); +static DEVICE_ATTR_RW(polarity);  static struct attribute *pwm_attrs[] = {  	&dev_attr_period.attr, @@ -234,9 +244,9 @@ static int pwm_unexport_child(struct device *parent, struct pwm_device *pwm)  	return 0;  } -static ssize_t pwm_export_store(struct device *parent, -				struct device_attribute *attr, -				const char *buf, size_t len) +static ssize_t export_store(struct device *parent, +			    struct device_attribute *attr, +			    const char *buf, size_t len)  {  	struct pwm_chip *chip = dev_get_drvdata(parent);  	struct pwm_device *pwm; @@ -260,11 +270,11 @@ static ssize_t pwm_export_store(struct device *parent,  	return ret ? : len;  } -static DEVICE_ATTR(export, 0200, NULL, pwm_export_store); +static DEVICE_ATTR_WO(export); -static ssize_t pwm_unexport_store(struct device *parent, -				  struct device_attribute *attr, -				  const char *buf, size_t len) +static ssize_t unexport_store(struct device *parent, +			      struct device_attribute *attr, +			      const char *buf, size_t len)  {  	struct pwm_chip *chip = dev_get_drvdata(parent);  	unsigned int hwpwm; @@ -281,7 +291,7 @@ static ssize_t pwm_unexport_store(struct device *parent,  	return ret ? : len;  } -static DEVICE_ATTR(unexport, 0200, NULL, pwm_unexport_store); +static DEVICE_ATTR_WO(unexport);  static ssize_t npwm_show(struct device *parent, struct device_attribute *attr,  			 char *buf) @@ -301,9 +311,9 @@ static struct attribute *pwm_chip_attrs[] = {  ATTRIBUTE_GROUPS(pwm_chip);  static struct class pwm_class = { -	.name		= "pwm", -	.owner		= THIS_MODULE, -	.dev_groups	= pwm_chip_groups, +	.name = "pwm", +	.owner = THIS_MODULE, +	.dev_groups = pwm_chip_groups,  };  static int pwmchip_sysfs_match(struct device *parent, const void *data) | 
