}
 
 /* Driver probe functions */
-static int __devinit qe_udc_probe(struct platform_device *ofdev,
-                       const struct of_device_id *match)
+static int __devinit qe_udc_probe(struct platform_device *ofdev)
 {
        struct device_node *np = ofdev->dev.of_node;
        struct qe_ep *ep;
        unsigned int i;
        const void *prop;
 
+       if (!ofdev->dev.of_match)
+               return -EINVAL;
+
        prop = of_get_property(np, "mode", NULL);
        if (!prop || strcmp(prop, "peripheral"))
                return -ENODEV;
                return -ENOMEM;
        }
 
-       udc_controller->soc_type = (unsigned long)match->data;
+       udc_controller->soc_type = (unsigned long)ofdev->dev.of_match->data;
        udc_controller->usb_regs = of_iomap(np, 0);
        if (!udc_controller->usb_regs) {
                ret = -ENOMEM;
 
 MODULE_DEVICE_TABLE(of, qe_udc_match);
 
-static struct of_platform_driver udc_driver = {
+static struct platform_driver udc_driver = {
        .driver = {
                .name = (char *)driver_name,
                .owner = THIS_MODULE,
 {
        printk(KERN_INFO "%s: %s, %s\n", driver_name, driver_desc,
                        DRIVER_VERSION);
-       return of_register_platform_driver(&udc_driver);
+       return platform_driver_register(&udc_driver);
 }
 
 static void __exit qe_udc_exit(void)
 {
-       of_unregister_platform_driver(&udc_driver);
+       platform_driver_unregister(&udc_driver);
 }
 
 module_init(qe_udc_init);
 
 #endif
 
 #ifdef OF_PLATFORM_DRIVER
-       retval = of_register_platform_driver(&OF_PLATFORM_DRIVER);
+       retval = platform_driver_register(&OF_PLATFORM_DRIVER);
        if (retval < 0)
                goto clean3;
 #endif
 
 #ifdef XILINX_OF_PLATFORM_DRIVER
-       retval = of_register_platform_driver(&XILINX_OF_PLATFORM_DRIVER);
+       retval = platform_driver_register(&XILINX_OF_PLATFORM_DRIVER);
        if (retval < 0)
                goto clean4;
 #endif
        return retval;
 
 #ifdef XILINX_OF_PLATFORM_DRIVER
-       /* of_unregister_platform_driver(&XILINX_OF_PLATFORM_DRIVER); */
+       /* platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); */
 clean4:
 #endif
 #ifdef OF_PLATFORM_DRIVER
-       of_unregister_platform_driver(&OF_PLATFORM_DRIVER);
+       platform_driver_unregister(&OF_PLATFORM_DRIVER);
 clean3:
 #endif
 #ifdef PS3_SYSTEM_BUS_DRIVER
 static void __exit ehci_hcd_cleanup(void)
 {
 #ifdef XILINX_OF_PLATFORM_DRIVER
-       of_unregister_platform_driver(&XILINX_OF_PLATFORM_DRIVER);
+       platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER);
 #endif
 #ifdef OF_PLATFORM_DRIVER
-       of_unregister_platform_driver(&OF_PLATFORM_DRIVER);
+       platform_driver_unregister(&OF_PLATFORM_DRIVER);
 #endif
 #ifdef PLATFORM_DRIVER
        platform_driver_unregister(&PLATFORM_DRIVER);
 
 }
 
 
-static int __devinit
-ehci_hcd_ppc_of_probe(struct platform_device *op, const struct of_device_id *match)
+static int __devinit ehci_hcd_ppc_of_probe(struct platform_device *op)
 {
        struct device_node *dn = op->dev.of_node;
        struct usb_hcd *hcd;
 }
 
 
-static int ehci_hcd_ppc_of_shutdown(struct platform_device *op)
+static void ehci_hcd_ppc_of_shutdown(struct platform_device *op)
 {
        struct usb_hcd *hcd = dev_get_drvdata(&op->dev);
 
        if (hcd->driver->shutdown)
                hcd->driver->shutdown(hcd);
-
-       return 0;
 }
 
 
 MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match);
 
 
-static struct of_platform_driver ehci_hcd_ppc_of_driver = {
+static struct platform_driver ehci_hcd_ppc_of_driver = {
        .probe          = ehci_hcd_ppc_of_probe,
        .remove         = ehci_hcd_ppc_of_remove,
        .shutdown       = ehci_hcd_ppc_of_shutdown,
 
 /**
  * ehci_hcd_xilinx_of_probe - Probe method for the USB host controller
  * @op:                pointer to the platform_device bound to the host controller
- * @match:     pointer to of_device_id structure, not used
  *
  * This function requests resources and sets up appropriate properties for the
  * host controller. Because the Xilinx USB host controller can be configured
  * as HS only or HS/FS only, it checks the configuration in the device tree
  * entry, and sets an appropriate value for hcd->has_tt.
  */
-static int __devinit
-ehci_hcd_xilinx_of_probe(struct platform_device *op, const struct of_device_id *match)
+static int __devinit ehci_hcd_xilinx_of_probe(struct platform_device *op)
 {
        struct device_node *dn = op->dev.of_node;
        struct usb_hcd *hcd;
 };
 MODULE_DEVICE_TABLE(of, ehci_hcd_xilinx_of_match);
 
-static struct of_platform_driver ehci_hcd_xilinx_of_driver = {
+static struct platform_driver ehci_hcd_xilinx_of_driver = {
        .probe          = ehci_hcd_xilinx_of_probe,
        .remove         = ehci_hcd_xilinx_of_remove,
        .shutdown       = ehci_hcd_xilinx_of_shutdown,
 
        .hub_control = fhci_hub_control,
 };
 
-static int __devinit of_fhci_probe(struct platform_device *ofdev,
-                                  const struct of_device_id *ofid)
+static int __devinit of_fhci_probe(struct platform_device *ofdev)
 {
        struct device *dev = &ofdev->dev;
        struct device_node *node = dev->of_node;
 };
 MODULE_DEVICE_TABLE(of, of_fhci_match);
 
-static struct of_platform_driver of_fhci_driver = {
+static struct platform_driver of_fhci_driver = {
        .driver = {
                .name = "fsl,usb-fhci",
                .owner = THIS_MODULE,
 
 static int __init fhci_module_init(void)
 {
-       return of_register_platform_driver(&of_fhci_driver);
+       return platform_driver_register(&of_fhci_driver);
 }
 module_init(fhci_module_init);
 
 static void __exit fhci_module_exit(void)
 {
-       of_unregister_platform_driver(&of_fhci_driver);
+       platform_driver_unregister(&of_fhci_driver);
 }
 module_exit(fhci_module_exit);
 
 
 #endif
 
 #ifdef CONFIG_PPC_OF
-static int of_isp1760_probe(struct platform_device *dev,
-               const struct of_device_id *match)
+static int of_isp1760_probe(struct platform_device *dev)
 {
        struct usb_hcd *hcd;
        struct device_node *dp = dev->dev.of_node;
 };
 MODULE_DEVICE_TABLE(of, of_isp1760_match);
 
-static struct of_platform_driver isp1760_of_driver = {
+static struct platform_driver isp1760_of_driver = {
        .driver = {
                .name = "nxp-isp1760",
                .owner = THIS_MODULE,
        if (!ret)
                any_ret = 0;
 #ifdef CONFIG_PPC_OF
-       ret = of_register_platform_driver(&isp1760_of_driver);
+       ret = platform_driver_register(&isp1760_of_driver);
        if (!ret)
                any_ret = 0;
 #endif
 {
        platform_driver_unregister(&isp1760_plat_driver);
 #ifdef CONFIG_PPC_OF
-       of_unregister_platform_driver(&isp1760_of_driver);
+       platform_driver_unregister(&isp1760_of_driver);
 #endif
 #ifdef CONFIG_PCI
        pci_unregister_driver(&isp1761_pci_driver);
 
 #endif
 
 #ifdef OF_PLATFORM_DRIVER
-       retval = of_register_platform_driver(&OF_PLATFORM_DRIVER);
+       retval = platform_driver_register(&OF_PLATFORM_DRIVER);
        if (retval < 0)
                goto error_of_platform;
 #endif
  error_sa1111:
 #endif
 #ifdef OF_PLATFORM_DRIVER
-       of_unregister_platform_driver(&OF_PLATFORM_DRIVER);
+       platform_driver_unregister(&OF_PLATFORM_DRIVER);
  error_of_platform:
 #endif
 #ifdef PLATFORM_DRIVER
        sa1111_driver_unregister(&SA1111_DRIVER);
 #endif
 #ifdef OF_PLATFORM_DRIVER
-       of_unregister_platform_driver(&OF_PLATFORM_DRIVER);
+       platform_driver_unregister(&OF_PLATFORM_DRIVER);
 #endif
 #ifdef PLATFORM_DRIVER
        platform_driver_unregister(&PLATFORM_DRIVER);
 
 };
 
 
-static int __devinit
-ohci_hcd_ppc_of_probe(struct platform_device *op, const struct of_device_id *match)
+static int __devinit ohci_hcd_ppc_of_probe(struct platform_device *op)
 {
        struct device_node *dn = op->dev.of_node;
        struct usb_hcd *hcd;
        return 0;
 }
 
-static int ohci_hcd_ppc_of_shutdown(struct platform_device *op)
+static void ohci_hcd_ppc_of_shutdown(struct platform_device *op)
 {
        struct usb_hcd *hcd = dev_get_drvdata(&op->dev);
 
         if (hcd->driver->shutdown)
                 hcd->driver->shutdown(hcd);
-
-       return 0;
 }
 
 
 #endif
 
 
-static struct of_platform_driver ohci_hcd_ppc_of_driver = {
+static struct platform_driver ohci_hcd_ppc_of_driver = {
        .probe          = ohci_hcd_ppc_of_probe,
        .remove         = ohci_hcd_ppc_of_remove,
        .shutdown       = ohci_hcd_ppc_of_shutdown,