res =  platform_get_resource_byname(pdev,
                                IORESOURCE_MEM, "ehci");
-       if (!res) {
-               dev_err(dev, "UHH EHCI get resource failed\n");
-               return -ENODEV;
-       }
-
-       regs = ioremap(res->start, resource_size(res));
-       if (!regs) {
-               dev_err(dev, "UHH EHCI ioremap failed\n");
-               return -ENOMEM;
-       }
+       regs = devm_ioremap_resource(dev, res);
+       if (IS_ERR(regs))
+               return PTR_ERR(regs);
 
        hcd = usb_create_hcd(&ehci_omap_hc_driver, dev,
                        dev_name(dev));
        if (!hcd) {
-               dev_err(dev, "failed to create hcd with err %d\n", ret);
-               ret = -ENOMEM;
-               goto err_io;
+               dev_err(dev, "Failed to create HCD\n");
+               return -ENOMEM;
        }
 
        hcd->rsrc_start = res->start;
        pm_runtime_put_sync(dev);
        usb_put_hcd(hcd);
 
-err_io:
-       iounmap(regs);
        return ret;
 }
 
 
        usb_remove_hcd(hcd);
        disable_put_regulator(dev->platform_data);
-       iounmap(hcd->regs);
        usb_put_hcd(hcd);
 
        pm_runtime_put_sync(dev);