|
@@ -268,6 +268,7 @@ static ssize_t pwm_export_store(struct device *parent,
|
|
|
|
|
|
return ret ? : len;
|
|
|
}
|
|
|
+static DEVICE_ATTR(export, 0200, NULL, pwm_export_store);
|
|
|
|
|
|
static ssize_t pwm_unexport_store(struct device *parent,
|
|
|
struct device_attribute *attr,
|
|
@@ -288,27 +289,29 @@ static ssize_t pwm_unexport_store(struct device *parent,
|
|
|
|
|
|
return ret ? : len;
|
|
|
}
|
|
|
+static DEVICE_ATTR(unexport, 0200, NULL, pwm_unexport_store);
|
|
|
|
|
|
-static ssize_t pwm_npwm_show(struct device *parent,
|
|
|
- struct device_attribute *attr,
|
|
|
- char *buf)
|
|
|
+static ssize_t npwm_show(struct device *parent, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
const struct pwm_chip *chip = dev_get_drvdata(parent);
|
|
|
|
|
|
return sprintf(buf, "%u\n", chip->npwm);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(npwm);
|
|
|
|
|
|
-static struct device_attribute pwm_chip_attrs[] = {
|
|
|
- __ATTR(export, 0200, NULL, pwm_export_store),
|
|
|
- __ATTR(unexport, 0200, NULL, pwm_unexport_store),
|
|
|
- __ATTR(npwm, 0444, pwm_npwm_show, NULL),
|
|
|
- __ATTR_NULL,
|
|
|
+static struct attribute *pwm_chip_attrs[] = {
|
|
|
+ &dev_attr_export.attr,
|
|
|
+ &dev_attr_unexport.attr,
|
|
|
+ &dev_attr_npwm.attr,
|
|
|
+ NULL,
|
|
|
};
|
|
|
+ATTRIBUTE_GROUPS(pwm_chip);
|
|
|
|
|
|
static struct class pwm_class = {
|
|
|
.name = "pwm",
|
|
|
.owner = THIS_MODULE,
|
|
|
- .dev_attrs = pwm_chip_attrs,
|
|
|
+ .dev_groups = pwm_chip_groups,
|
|
|
};
|
|
|
|
|
|
static int pwmchip_sysfs_match(struct device *parent, const void *data)
|