#endif /* CONFIG_USB_GADGET_MUSB_HDRC */
 
+static struct attribute *musb_attributes[] = {
+       &dev_attr_mode.attr,
+       &dev_attr_vbus.attr,
+#ifdef CONFIG_USB_GADGET_MUSB_HDRC
+       &dev_attr_srp.attr,
+#endif
+       NULL
+};
+
+static const struct attribute_group musb_attr_group = {
+       .attrs = musb_attributes,
+};
+
 #endif /* sysfs */
 
 /* Only used to provide driver mode change events */
         */
 
 #ifdef CONFIG_SYSFS
-       device_remove_file(musb->controller, &dev_attr_mode);
-       device_remove_file(musb->controller, &dev_attr_vbus);
-#ifdef CONFIG_USB_GADGET_MUSB_HDRC
-       device_remove_file(musb->controller, &dev_attr_srp);
-#endif
+       sysfs_remove_group(&musb->controller->kobj, &musb_attr_group);
 #endif
 
 #ifdef CONFIG_USB_GADGET_MUSB_HDRC
        }
 
 #ifdef CONFIG_SYSFS
-       status = device_create_file(dev, &dev_attr_mode);
-       status = device_create_file(dev, &dev_attr_vbus);
-#ifdef CONFIG_USB_GADGET_MUSB_HDRC
-       status = device_create_file(dev, &dev_attr_srp);
-#endif /* CONFIG_USB_GADGET_MUSB_HDRC */
-       status = 0;
+       status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group);
 #endif
        if (status)
                goto fail2;
        return 0;
 
 fail2:
-#ifdef CONFIG_SYSFS
-       device_remove_file(musb->controller, &dev_attr_mode);
-       device_remove_file(musb->controller, &dev_attr_vbus);
-#ifdef CONFIG_USB_GADGET_MUSB_HDRC
-       device_remove_file(musb->controller, &dev_attr_srp);
-#endif
-#endif
        musb_platform_exit(musb);
 fail:
        dev_err(musb->controller,