Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / drivers / pwm / sysfs.c
index 8ca5de316d3b02856881a6af29ce879ed6d141f6..8c20332d4825810a366e3af07b1d8831617d1951 100644 (file)
@@ -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)