new_udriver->drvwrap.driver.probe = usb_probe_device;
        new_udriver->drvwrap.driver.remove = usb_unbind_device;
        new_udriver->drvwrap.driver.owner = owner;
+       new_udriver->drvwrap.driver.dev_groups = new_udriver->dev_groups;
 
        retval = driver_register(&new_udriver->drvwrap.driver);
 
 
  *     module is being unloaded.
  * @suspend: Called when the device is going to be suspended by the system.
  * @resume: Called when the device is being resumed by the system.
+ * @dev_groups: Attributes attached to the device that will be created once it
+ *     is bound to the driver.
  * @drvwrap: Driver-model core structure wrapper.
  * @supports_autosuspend: if set to 0, the USB core will not allow autosuspend
  *     for devices bound to this driver.
 
        int (*suspend) (struct usb_device *udev, pm_message_t message);
        int (*resume) (struct usb_device *udev, pm_message_t message);
+       const struct attribute_group **dev_groups;
        struct usbdrv_wrap drvwrap;
        unsigned int supports_autosuspend:1;
 };