&dev_attr_fallback.attr,
        NULL,
 };
-
-static const struct attribute_group omap_aes_attr_group = {
-       .attrs = omap_aes_attrs,
-};
+ATTRIBUTE_GROUPS(omap_aes);
 
 static int omap_aes_probe(struct platform_device *pdev)
 {
                }
        }
 
-       err = sysfs_create_group(&dev->kobj, &omap_aes_attr_group);
-       if (err) {
-               dev_err(dev, "could not create sysfs device attrs\n");
-               goto err_aead_algs;
-       }
-
        return 0;
 err_aead_algs:
        for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) {
        tasklet_kill(&dd->done_task);
        omap_aes_dma_cleanup(dd);
        pm_runtime_disable(dd->dev);
-
-       sysfs_remove_group(&dd->dev->kobj, &omap_aes_attr_group);
 }
 
 #ifdef CONFIG_PM_SLEEP
                .name   = "omap-aes",
                .pm     = &omap_aes_pm_ops,
                .of_match_table = omap_aes_of_match,
+               .dev_groups = omap_aes_groups,
        },
 };