}
 static DEVICE_ATTR(disable_kp, 0644, lm8323_show_disable, lm8323_set_disable);
 
+static struct attribute *lm8323_attrs[] = {
+       &dev_attr_disable_kp.attr,
+       NULL,
+};
+ATTRIBUTE_GROUPS(lm8323);
+
 static int lm8323_probe(struct i2c_client *client)
 {
        struct lm8323_platform_data *pdata = dev_get_platdata(&client->dev);
        }
 
        lm->kp_enabled = true;
-       err = device_create_file(&client->dev, &dev_attr_disable_kp);
-       if (err < 0)
-               goto fail2;
 
        idev->name = pdata->name ? : "LM8323 keypad";
        snprintf(lm->phys, sizeof(lm->phys),
        err = input_register_device(idev);
        if (err) {
                dev_dbg(&client->dev, "error registering input device\n");
-               goto fail3;
+               goto fail2;
        }
 
        err = request_threaded_irq(client->irq, NULL, lm8323_irq,
                          IRQF_TRIGGER_LOW|IRQF_ONESHOT, "lm8323", lm);
        if (err) {
                dev_err(&client->dev, "could not get IRQ %d\n", client->irq);
-               goto fail4;
+               goto fail3;
        }
 
        i2c_set_clientdata(client, lm);
 
        return 0;
 
-fail4:
+fail3:
        input_unregister_device(idev);
        idev = NULL;
-fail3:
-       device_remove_file(&client->dev, &dev_attr_disable_kp);
 fail2:
        while (--pwm >= 0)
                if (lm->pwm[pwm].enabled)
 
        input_unregister_device(lm->idev);
 
-       device_remove_file(&lm->client->dev, &dev_attr_disable_kp);
-
        for (i = 0; i < 3; i++)
                if (lm->pwm[i].enabled)
                        led_classdev_unregister(&lm->pwm[i].cdev);
 
 static struct i2c_driver lm8323_i2c_driver = {
        .driver = {
-               .name   = "lm8323",
-               .pm     = pm_sleep_ptr(&lm8323_pm_ops),
+               .name           = "lm8323",
+               .pm             = pm_sleep_ptr(&lm8323_pm_ops),
+               .dev_groups     = lm8323_groups,
        },
        .probe          = lm8323_probe,
        .remove         = lm8323_remove,