}
 #endif /* CONFIG_FB */
 
-static ssize_t lcd_show_power(struct device *dev, struct device_attribute *attr,
+static ssize_t lcd_power_show(struct device *dev, struct device_attribute *attr,
                char *buf)
 {
        int rc;
        return rc;
 }
 
-static ssize_t lcd_store_power(struct device *dev,
+static ssize_t lcd_power_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t count)
 {
        int rc;
 
        return rc;
 }
+static DEVICE_ATTR_RW(lcd_power);
 
-static ssize_t lcd_show_contrast(struct device *dev,
+static ssize_t contrast_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {
        int rc = -ENXIO;
        return rc;
 }
 
-static ssize_t lcd_store_contrast(struct device *dev,
+static ssize_t contrast_store(struct device *dev,
                struct device_attribute *attr, const char *buf, size_t count)
 {
        int rc;
 
        return rc;
 }
+static DEVICE_ATTR_RW(contrast);
 
-static ssize_t lcd_show_max_contrast(struct device *dev,
+static ssize_t max_contrast_show(struct device *dev,
                struct device_attribute *attr, char *buf)
 {
        struct lcd_device *ld = to_lcd_device(dev);
 
        return sprintf(buf, "%d\n", ld->props.max_contrast);
 }
+static DEVICE_ATTR_RO(max_contrast);
 
 static struct class *lcd_class;
 
        kfree(ld);
 }
 
-static struct device_attribute lcd_device_attributes[] = {
-       __ATTR(lcd_power, 0644, lcd_show_power, lcd_store_power),
-       __ATTR(contrast, 0644, lcd_show_contrast, lcd_store_contrast),
-       __ATTR(max_contrast, 0444, lcd_show_max_contrast, NULL),
-       __ATTR_NULL,
+static struct attribute *lcd_device_attrs[] = {
+       &dev_attr_lcd_power.attr,
+       &dev_attr_contrast.attr,
+       &dev_attr_max_contrast.attr,
+       NULL,
 };
+ATTRIBUTE_GROUPS(lcd_device);
 
 /**
  * lcd_device_register - register a new object of lcd_device class.
                return PTR_ERR(lcd_class);
        }
 
-       lcd_class->dev_attrs = lcd_device_attributes;
+       lcd_class->dev_groups = lcd_device_groups;
        return 0;
 }