bool                    enabled;
        bool                    clocked;
        bool                    suspended;
-       bool                    selfpowered;
        int                     ep0state;
        atomic_t                enabled_ep_cnt;
        wait_queue_head_t       ep_disable_wait_queue;
                   udc->vbus ? "present" : "off",
                   udc->enabled ? (udc->vbus ? "active" : "enabled") :
                   "disabled",
-                  udc->selfpowered ? "self" : "VBUS",
+                  udc->gadget.is_selfpowered ? "self" : "VBUS",
                   udc->suspended ? ", suspended" : "",
                   udc->driver ? udc->driver->driver.name : "(none)");
 
                break; /* Not supported */
 
        case USB_RECIP_DEVICE:
-               ep0buff = (udc->selfpowered << USB_DEVICE_SELF_POWERED);
+               ep0buff = udc->gadget.is_selfpowered;
                if (udc->dev_status & (1 << USB_DEVICE_REMOTE_WAKEUP))
                        ep0buff |= (1 << USB_DEVICE_REMOTE_WAKEUP);
                break;
 
 static int lpc32xx_set_selfpowered(struct usb_gadget *gadget, int is_on)
 {
-       struct lpc32xx_udc *udc = to_udc(gadget);
-
-       /* Always self-powered */
-       udc->selfpowered = (is_on != 0);
+       gadget->is_selfpowered = (is_on != 0);
 
        return 0;
 }
        udc->driver = driver;
        udc->gadget.dev.of_node = udc->dev->of_node;
        udc->enabled = 1;
-       udc->selfpowered = 1;
+       udc->gadget.is_selfpowered = 1;
        udc->vbus = 0;
 
        /* Force VBUS process once to check for cable insertion */