static struct resource udc_resources[] = {
        /* order is significant! */
        {               /* registers */
-               .start          = IO_ADDRESS(UDC_BASE),
-               .end            = IO_ADDRESS(UDC_BASE + 0xff),
+               .start          = UDC_BASE,
+               .end            = UDC_BASE + 0xff,
                .flags          = IORESOURCE_MEM,
        }, {            /* general IRQ */
                .start          = IH2_BASE + 20,
 static struct resource ohci_resources[] = {
        {
                .start  = OMAP_OHCI_BASE,
-               .end    = OMAP_OHCI_BASE + 4096,
+               .end    = OMAP_OHCI_BASE + 4096 - 1,
                .flags  = IORESOURCE_MEM,
        },
        {
 static struct resource otg_resources[] = {
        /* order is significant! */
        {
-               .start          = IO_ADDRESS(OTG_BASE),
-               .end            = IO_ADDRESS(OTG_BASE + 0xff),
+               .start          = OTG_BASE,
+               .end            = OTG_BASE + 0xff,
                .flags          = IORESOURCE_MEM,
        }, {
                .start          = IH2_BASE + 8,
 
 #      define   HMC_TLLATTACH          (1 << 6)
 #      define   OTG_HMC(w)             (((w)>>0)&0x3f)
 #define OTG_CTRL_REG                   OTG_REG32(0x0c)
+#      define   OTG_USB2_EN            (1 << 29)
+#      define   OTG_USB2_DP            (1 << 28)
+#      define   OTG_USB2_DM            (1 << 27)
+#      define   OTG_USB1_EN            (1 << 26)
+#      define   OTG_USB1_DP            (1 << 25)
+#      define   OTG_USB1_DM            (1 << 24)
+#      define   OTG_USB0_EN            (1 << 23)
+#      define   OTG_USB0_DP            (1 << 22)
+#      define   OTG_USB0_DM            (1 << 21)
 #      define   OTG_ASESSVLD           (1 << 20)
 #      define   OTG_BSESSEND           (1 << 19)
 #      define   OTG_BSESSVLD           (1 << 18)