musb->g.speed = USB_SPEED_UNKNOWN;
 
        /* this "gadget" abstracts/virtualizes the controller */
-       dev_set_name(&musb->g.dev, "gadget");
        musb->g.dev.parent = musb->controller;
        musb->g.dev.dma_mask = musb->controller->dma_mask;
        musb->g.dev.release = musb_gadget_release;
        musb->g.name = musb_driver_name;
-
+       musb->g.register_my_device = true;
        musb->g.is_otg = 1;
 
        musb_g_init_endpoints(musb);
        musb->is_active = 0;
        musb_platform_try_idle(musb, 0);
 
-       status = device_register(&musb->g.dev);
-       if (status != 0) {
-               put_device(&musb->g.dev);
-               return status;
-       }
        status = usb_add_gadget_udc(musb->controller, &musb->g);
        if (status)
                goto err;
 void musb_gadget_cleanup(struct musb *musb)
 {
        usb_del_gadget_udc(&musb->g);
-       if (musb->g.dev.parent)
-               device_unregister(&musb->g.dev);
 }
 
 /*