/* ======================================================================== */
 
 static int __devinit
-mpc52xx_ata_probe(struct platform_device *op, const struct of_device_id *match)
+mpc52xx_ata_probe(struct platform_device *op)
 {
        unsigned int ipb_freq;
        struct resource res_mem;
 };
 
 
-static struct of_platform_driver mpc52xx_ata_of_platform_driver = {
+static struct platform_driver mpc52xx_ata_of_platform_driver = {
        .probe          = mpc52xx_ata_probe,
        .remove         = mpc52xx_ata_remove,
 #ifdef CONFIG_PM
 mpc52xx_ata_init(void)
 {
        printk(KERN_INFO "ata: MPC52xx IDE/ATA libata driver\n");
-       return of_register_platform_driver(&mpc52xx_ata_of_platform_driver);
+       return platform_driver_register(&mpc52xx_ata_of_platform_driver);
 }
 
 static void __exit
 mpc52xx_ata_exit(void)
 {
-       of_unregister_platform_driver(&mpc52xx_ata_of_platform_driver);
+       platform_driver_unregister(&mpc52xx_ata_of_platform_driver);
 }
 
 module_init(mpc52xx_ata_init);
 
 #include <linux/of_platform.h>
 #include <linux/ata_platform.h>
 
-static int __devinit pata_of_platform_probe(struct platform_device *ofdev,
-                                           const struct of_device_id *match)
+static int __devinit pata_of_platform_probe(struct platform_device *ofdev)
 {
        int ret;
        struct device_node *dn = ofdev->dev.of_node;
 };
 MODULE_DEVICE_TABLE(of, pata_of_platform_match);
 
-static struct of_platform_driver pata_of_platform_driver = {
+static struct platform_driver pata_of_platform_driver = {
        .driver = {
                .name = "pata_of_platform",
                .owner = THIS_MODULE,
 
 static int __init pata_of_platform_init(void)
 {
-       return of_register_platform_driver(&pata_of_platform_driver);
+       return platform_driver_register(&pata_of_platform_driver);
 }
 module_init(pata_of_platform_init);
 
 static void __exit pata_of_platform_exit(void)
 {
-       of_unregister_platform_driver(&pata_of_platform_driver);
+       platform_driver_unregister(&pata_of_platform_driver);
 }
 module_exit(pata_of_platform_exit);
 
 
        },
 };
 
-static int sata_dwc_probe(struct platform_device *ofdev,
-                       const struct of_device_id *match)
+static int sata_dwc_probe(struct platform_device *ofdev)
 {
        struct sata_dwc_device *hsdev;
        u32 idr, versionr;
 };
 MODULE_DEVICE_TABLE(of, sata_dwc_match);
 
-static struct of_platform_driver sata_dwc_driver = {
+static struct platform_driver sata_dwc_driver = {
        .driver = {
                .name = DRV_NAME,
                .owner = THIS_MODULE,
 
 static int __init sata_dwc_init(void)
 {
-       return  of_register_platform_driver(&sata_dwc_driver);
+       return platform_driver_register(&sata_dwc_driver);
 }
 
 static void __exit sata_dwc_exit(void)
 {
-       of_unregister_platform_driver(&sata_dwc_driver);
+       platform_driver_unregister(&sata_dwc_driver);
 }
 
 module_init(sata_dwc_init);
 
         },
 };
 
-static int sata_fsl_probe(struct platform_device *ofdev,
-                       const struct of_device_id *match)
+static int sata_fsl_probe(struct platform_device *ofdev)
 {
        int retval = -ENXIO;
        void __iomem *hcr_base = NULL;
 
 MODULE_DEVICE_TABLE(of, fsl_sata_match);
 
-static struct of_platform_driver fsl_sata_driver = {
+static struct platform_driver fsl_sata_driver = {
        .driver = {
                .name = "fsl-sata",
                .owner = THIS_MODULE,
 
 static int __init sata_fsl_init(void)
 {
-       of_register_platform_driver(&fsl_sata_driver);
+       platform_driver_register(&fsl_sata_driver);
        return 0;
 }
 
 static void __exit sata_fsl_exit(void)
 {
-       of_unregister_platform_driver(&fsl_sata_driver);
+       platform_driver_unregister(&fsl_sata_driver);
 }
 
 MODULE_LICENSE("GPL");
 
 }
 
 #ifdef CONFIG_SBUS
-static int __devinit fore200e_sba_probe(struct platform_device *op,
-                                       const struct of_device_id *match)
+static int __devinit fore200e_sba_probe(struct platform_device *op)
 {
-       const struct fore200e_bus *bus = match->data;
+       const struct fore200e_bus *bus;
        struct fore200e *fore200e;
        static int index = 0;
        int err;
 
+       if (!op->dev.of_match)
+               return -EINVAL;
+       bus = op->dev.of_match->data;
+
        fore200e = kzalloc(sizeof(struct fore200e), GFP_KERNEL);
        if (!fore200e)
                return -ENOMEM;
 };
 MODULE_DEVICE_TABLE(of, fore200e_sba_match);
 
-static struct of_platform_driver fore200e_sba_driver = {
+static struct platform_driver fore200e_sba_driver = {
        .driver = {
                .name = "fore_200e",
                .owner = THIS_MODULE,
        printk(FORE200E "FORE Systems 200E-series ATM driver - version " FORE200E_VERSION "\n");
 
 #ifdef CONFIG_SBUS
-       err = of_register_platform_driver(&fore200e_sba_driver);
+       err = platform_driver_register(&fore200e_sba_driver);
        if (err)
                return err;
 #endif
 
 #ifdef CONFIG_SBUS
        if (err)
-               of_unregister_platform_driver(&fore200e_sba_driver);
+               platform_driver_unregister(&fore200e_sba_driver);
 #endif
 
        return err;
        pci_unregister_driver(&fore200e_pca_driver);
 #endif
 #ifdef CONFIG_SBUS
-       of_unregister_platform_driver(&fore200e_sba_driver);
+       platform_driver_unregister(&fore200e_sba_driver);
 #endif
 }
 
 
  */
 
 #if defined(CONFIG_OF)
-static int __devinit
-ace_of_probe(struct platform_device *op, const struct of_device_id *match)
+static int __devinit ace_of_probe(struct platform_device *op)
 {
        struct resource res;
        resource_size_t physaddr;
        const u32 *id;
        int irq, bus_width, rc;
 
-       dev_dbg(&op->dev, "ace_of_probe(%p, %p)\n", op, match);
-
        /* device id */
        id = of_get_property(op->dev.of_node, "port-number", NULL);
 
 };
 MODULE_DEVICE_TABLE(of, ace_of_match);
 
-static struct of_platform_driver ace_of_driver = {
+static struct platform_driver ace_of_driver = {
        .probe = ace_of_probe,
        .remove = __devexit_p(ace_of_remove),
        .driver = {
 static inline int __init ace_of_register(void)
 {
        pr_debug("xsysace: registering OF binding\n");
-       return of_register_platform_driver(&ace_of_driver);
+       return platform_driver_register(&ace_of_driver);
 }
 
 static inline void __exit ace_of_unregister(void)
 {
-       of_unregister_platform_driver(&ace_of_driver);
+       platform_driver_unregister(&ace_of_driver);
 }
 #else /* CONFIG_OF */
 /* CONFIG_OF not enabled; do nothing helpers */
 
        return t_alg;
 }
 
-static int talitos_probe(struct platform_device *ofdev,
-                        const struct of_device_id *match)
+static int talitos_probe(struct platform_device *ofdev)
 {
        struct device *dev = &ofdev->dev;
        struct device_node *np = ofdev->dev.of_node;
 };
 MODULE_DEVICE_TABLE(of, talitos_match);
 
-static struct of_platform_driver talitos_driver = {
+static struct platform_driver talitos_driver = {
        .driver = {
                .name = "talitos",
                .owner = THIS_MODULE,
 
 static int __init talitos_init(void)
 {
-       return of_register_platform_driver(&talitos_driver);
+       return platform_driver_register(&talitos_driver);
 }
 module_init(talitos_init);
 
 static void __exit talitos_exit(void)
 {
-       of_unregister_platform_driver(&talitos_driver);
+       platform_driver_unregister(&talitos_driver);
 }
 module_exit(talitos_exit);
 
 
                cpm_muram_free(cpm->i2c_addr);
 }
 
-static int __devinit cpm_i2c_probe(struct platform_device *ofdev,
-                        const struct of_device_id *match)
+static int __devinit cpm_i2c_probe(struct platform_device *ofdev)
 {
        int result, len;
        struct cpm_i2c *cpm;
 
 MODULE_DEVICE_TABLE(of, cpm_i2c_match);
 
-static struct of_platform_driver cpm_i2c_driver = {
+static struct platform_driver cpm_i2c_driver = {
        .probe          = cpm_i2c_probe,
        .remove         = __devexit_p(cpm_i2c_remove),
        .driver = {
 
 static int __init cpm_i2c_init(void)
 {
-       return of_register_platform_driver(&cpm_i2c_driver);
+       return platform_driver_register(&cpm_i2c_driver);
 }
 
 static void __exit cpm_i2c_exit(void)
 {
-       of_unregister_platform_driver(&cpm_i2c_driver);
+       platform_driver_unregister(&cpm_i2c_driver);
 }
 
 module_init(cpm_i2c_init);
 
 /*
  * Register single IIC interface
  */
-static int __devinit iic_probe(struct platform_device *ofdev,
-                              const struct of_device_id *match)
+static int __devinit iic_probe(struct platform_device *ofdev)
 {
        struct device_node *np = ofdev->dev.of_node;
        struct ibm_iic_private *dev;
        {}
 };
 
-static struct of_platform_driver ibm_iic_driver = {
+static struct platform_driver ibm_iic_driver = {
        .driver = {
                .name = "ibm-iic",
                .owner = THIS_MODULE,
 
 static int __init iic_init(void)
 {
-       return of_register_platform_driver(&ibm_iic_driver);
+       return platform_driver_register(&ibm_iic_driver);
 }
 
 static void __exit iic_exit(void)
 {
-       of_unregister_platform_driver(&ibm_iic_driver);
+       platform_driver_unregister(&ibm_iic_driver);
 }
 
 module_init(iic_init);
 
        .timeout = HZ,
 };
 
-static int __devinit fsl_i2c_probe(struct platform_device *op,
-                                  const struct of_device_id *match)
+static int __devinit fsl_i2c_probe(struct platform_device *op)
 {
        struct mpc_i2c *i2c;
        const u32 *prop;
        int result = 0;
        int plen;
 
+       if (!op->dev.of_match)
+               return -EINVAL;
+
        i2c = kzalloc(sizeof(*i2c), GFP_KERNEL);
        if (!i2c)
                return -ENOMEM;
                        clock = *prop;
        }
 
-       if (match->data) {
-               struct mpc_i2c_data *data = match->data;
+       if (op->dev.of_match->data) {
+               struct mpc_i2c_data *data = op->dev.of_match->data;
                data->setup(op->dev.of_node, i2c, clock, data->prescaler);
        } else {
                /* Backwards compatibility */
 MODULE_DEVICE_TABLE(of, mpc_i2c_of_match);
 
 /* Structure for a device driver */
-static struct of_platform_driver mpc_i2c_driver = {
+static struct platform_driver mpc_i2c_driver = {
        .probe          = fsl_i2c_probe,
        .remove         = __devexit_p(fsl_i2c_remove),
        .driver = {
 
 static int __init fsl_i2c_init(void)
 {
-       int rv;
-
-       rv = of_register_platform_driver(&mpc_i2c_driver);
-       if (rv)
-               printk(KERN_ERR DRV_NAME
-                      " of_register_platform_driver failed (%i)\n", rv);
-       return rv;
+       return platform_driver_register(&mpc_i2c_driver);
 }
 
 static void __exit fsl_i2c_exit(void)
 {
-       of_unregister_platform_driver(&mpc_i2c_driver);
+       platform_driver_unregister(&mpc_i2c_driver);
 }
 
 module_init(fsl_i2c_init);
 
  * It returns 0, if the driver is bound to the PS/2 device, or a negative
  * value if there is an error.
  */
-static int __devinit xps2_of_probe(struct platform_device *ofdev,
-                                  const struct of_device_id *match)
+static int __devinit xps2_of_probe(struct platform_device *ofdev)
 {
        struct resource r_irq; /* Interrupt resources */
        struct resource r_mem; /* IO mem resources */
 };
 MODULE_DEVICE_TABLE(of, xps2_of_match);
 
-static struct of_platform_driver xps2_of_driver = {
+static struct platform_driver xps2_of_driver = {
        .driver = {
                .name = DRIVER_NAME,
                .owner = THIS_MODULE,
 
 static int __init xps2_init(void)
 {
-       return of_register_platform_driver(&xps2_of_driver);
+       return platform_driver_register(&xps2_of_driver);
 }
 
 static void __exit xps2_cleanup(void)
 {
-       of_unregister_platform_driver(&xps2_of_driver);
+       platform_driver_unregister(&xps2_of_driver);
 }
 
 module_init(xps2_init);
 
        .current_norm   = V4L2_STD_NTSC_M,
 };
 
-static int __devinit viu_of_probe(struct platform_device *op,
-                                 const struct of_device_id *match)
+static int __devinit viu_of_probe(struct platform_device *op)
 {
        struct viu_dev *viu_dev;
        struct video_device *vdev;
 };
 MODULE_DEVICE_TABLE(of, mpc512x_viu_of_match);
 
-static struct of_platform_driver viu_of_platform_driver = {
+static struct platform_driver viu_of_platform_driver = {
        .probe = viu_of_probe,
        .remove = __devexit_p(viu_of_remove),
 #ifdef CONFIG_PM
 
 static int __init viu_init(void)
 {
-       return of_register_platform_driver(&viu_of_platform_driver);
+       return platform_driver_register(&viu_of_platform_driver);
 }
 
 static void __exit viu_exit(void)
 {
-       of_unregister_platform_driver(&viu_of_platform_driver);
+       platform_driver_unregister(&viu_of_platform_driver);
 }
 
 module_init(viu_init);
 
 #endif
 }
 
-static int __devinit sdhci_of_probe(struct platform_device *ofdev,
-                                const struct of_device_id *match)
+static int __devinit sdhci_of_probe(struct platform_device *ofdev)
 {
        struct device_node *np = ofdev->dev.of_node;
-       struct sdhci_of_data *sdhci_of_data = match->data;
+       struct sdhci_of_data *sdhci_of_data;
        struct sdhci_host *host;
        struct sdhci_of_host *of_host;
        const __be32 *clk;
        int size;
        int ret;
 
+       if (!ofdev->dev.of_match)
+               return -EINVAL;
+       sdhci_of_data = ofdev->dev.of_match->data;
+
        if (!of_device_is_available(np))
                return -ENODEV;
 
 };
 MODULE_DEVICE_TABLE(of, sdhci_of_match);
 
-static struct of_platform_driver sdhci_of_driver = {
+static struct platform_driver sdhci_of_driver = {
        .driver = {
                .name = "sdhci-of",
                .owner = THIS_MODULE,
 
 static int __init sdhci_of_init(void)
 {
-       return of_register_platform_driver(&sdhci_of_driver);
+       return platform_driver_register(&sdhci_of_driver);
 }
 module_init(sdhci_of_init);
 
 static void __exit sdhci_of_exit(void)
 {
-       of_unregister_platform_driver(&sdhci_of_driver);
+       platform_driver_unregister(&sdhci_of_driver);
 }
 module_exit(sdhci_of_exit);
 
 
 }
 #endif
 
-static int __devinit of_flash_probe(struct platform_device *dev,
-                                   const struct of_device_id *match)
+static int __devinit of_flash_probe(struct platform_device *dev)
 {
 #ifdef CONFIG_MTD_PARTITIONS
        const char **part_probe_types;
        struct device_node *dp = dev->dev.of_node;
        struct resource res;
        struct of_flash *info;
-       const char *probe_type = match->data;
+       const char *probe_type;
        const __be32 *width;
        int err;
        int i;
        struct mtd_info **mtd_list = NULL;
        resource_size_t res_size;
 
+       if (!dev->dev.of_match)
+               return -EINVAL;
+       probe_type = dev->dev.of_match->data;
+
        reg_tuple_size = (of_n_addr_cells(dp) + of_n_size_cells(dp)) * sizeof(u32);
 
        /*
 };
 MODULE_DEVICE_TABLE(of, of_flash_match);
 
-static struct of_platform_driver of_flash_driver = {
+static struct platform_driver of_flash_driver = {
        .driver = {
                .name = "of-flash",
                .owner = THIS_MODULE,
 
 static int __init of_flash_init(void)
 {
-       return of_register_platform_driver(&of_flash_driver);
+       return platform_driver_register(&of_flash_driver);
 }
 
 static void __exit of_flash_exit(void)
 {
-       of_unregister_platform_driver(&of_flash_driver);
+       platform_driver_unregister(&of_flash_driver);
 }
 
 module_init(of_flash_init);
 
        return 0;
 }
 
-static int __devinit uflash_probe(struct platform_device *op, const struct of_device_id *match)
+static int __devinit uflash_probe(struct platform_device *op)
 {
        struct device_node *dp = op->dev.of_node;
 
 
 MODULE_DEVICE_TABLE(of, uflash_match);
 
-static struct of_platform_driver uflash_driver = {
+static struct platform_driver uflash_driver = {
        .driver = {
                .name = DRIVER_NAME,
                .owner = THIS_MODULE,
 
 static int __init uflash_init(void)
 {
-       return of_register_platform_driver(&uflash_driver);
+       return platform_driver_register(&uflash_driver);
 }
 
 static void __exit uflash_exit(void)
 {
-       of_unregister_platform_driver(&uflash_driver);
+       platform_driver_unregister(&uflash_driver);
 }
 
 module_init(uflash_init);
 
        return ret;
 }
 
-static int __devinit fun_probe(struct platform_device *ofdev,
-                              const struct of_device_id *ofid)
+static int __devinit fun_probe(struct platform_device *ofdev)
 {
        struct fsl_upm_nand *fun;
        struct resource io_res;
 };
 MODULE_DEVICE_TABLE(of, of_fun_match);
 
-static struct of_platform_driver of_fun_driver = {
+static struct platform_driver of_fun_driver = {
        .driver = {
                .name = "fsl,upm-nand",
                .owner = THIS_MODULE,
 
 static int __init fun_module_init(void)
 {
-       return of_register_platform_driver(&of_fun_driver);
+       return platform_driver_register(&of_fun_driver);
 }
 module_init(fun_module_init);
 
 static void __exit fun_module_exit(void)
 {
-       of_unregister_platform_driver(&of_fun_driver);
+       platform_driver_unregister(&of_fun_driver);
 }
 module_exit(fun_module_exit);
 
 
                iounmap(prv->csreg);
 }
 
-static int __devinit mpc5121_nfc_probe(struct platform_device *op,
-                                       const struct of_device_id *match)
+static int __devinit mpc5121_nfc_probe(struct platform_device *op)
 {
        struct device_node *rootnode, *dn = op->dev.of_node;
        struct device *dev = &op->dev;
        {},
 };
 
-static struct of_platform_driver mpc5121_nfc_driver = {
+static struct platform_driver mpc5121_nfc_driver = {
        .probe          = mpc5121_nfc_probe,
        .remove         = __devexit_p(mpc5121_nfc_remove),
        .driver         = {
 
 static int __init mpc5121_nfc_init(void)
 {
-       return of_register_platform_driver(&mpc5121_nfc_driver);
+       return platform_driver_register(&mpc5121_nfc_driver);
 }
 
 module_init(mpc5121_nfc_init);
 
 static void __exit mpc5121_nfc_cleanup(void)
 {
-       of_unregister_platform_driver(&mpc5121_nfc_driver);
+       platform_driver_unregister(&mpc5121_nfc_driver);
 }
 
 module_exit(mpc5121_nfc_cleanup);
 
        return ret;
 }
 
-static int __devinit ndfc_probe(struct platform_device *ofdev,
-                               const struct of_device_id *match)
+static int __devinit ndfc_probe(struct platform_device *ofdev)
 {
        struct ndfc_controller *ndfc = &ndfc_ctrl;
        const __be32 *reg;
 };
 MODULE_DEVICE_TABLE(of, ndfc_match);
 
-static struct of_platform_driver ndfc_driver = {
+static struct platform_driver ndfc_driver = {
        .driver = {
                .name = "ndfc",
                .owner = THIS_MODULE,
 
 static int __init ndfc_nand_init(void)
 {
-       return of_register_platform_driver(&ndfc_driver);
+       return platform_driver_register(&ndfc_driver);
 }
 
 static void __exit ndfc_nand_exit(void)
 {
-       of_unregister_platform_driver(&ndfc_driver);
+       platform_driver_unregister(&ndfc_driver);
 }
 
 module_init(ndfc_nand_init);
 
        return !!(inl(lpcctl) & LBICTRL_LPCCTL_NR);
 }
 
-static int __devinit pasemi_nand_probe(struct platform_device *ofdev,
-                                     const struct of_device_id *match)
+static int __devinit pasemi_nand_probe(struct platform_device *ofdev)
 {
        struct pci_dev *pdev;
        struct device_node *np = ofdev->dev.of_node;
 
 MODULE_DEVICE_TABLE(of, pasemi_nand_match);
 
-static struct of_platform_driver pasemi_nand_driver =
+static struct platform_driver pasemi_nand_driver =
 {
        .driver = {
                .name = (char*)driver_name,
 
 static int __init pasemi_nand_init(void)
 {
-       return of_register_platform_driver(&pasemi_nand_driver);
+       return platform_driver_register(&pasemi_nand_driver);
 }
 module_init(pasemi_nand_init);
 
 static void __exit pasemi_nand_exit(void)
 {
-       of_unregister_platform_driver(&pasemi_nand_driver);
+       platform_driver_unregister(&pasemi_nand_driver);
 }
 module_exit(pasemi_nand_exit);
 
 
 /*
  * Probe for the NAND device.
  */
-static int __devinit socrates_nand_probe(struct platform_device *ofdev,
-                                        const struct of_device_id *ofid)
+static int __devinit socrates_nand_probe(struct platform_device *ofdev)
 {
        struct socrates_nand_host *host;
        struct mtd_info *mtd;
 
 MODULE_DEVICE_TABLE(of, socrates_nand_match);
 
-static struct of_platform_driver socrates_nand_driver = {
+static struct platform_driver socrates_nand_driver = {
        .driver = {
                .name = "socrates_nand",
                .owner = THIS_MODULE,
 
 static int __init socrates_nand_init(void)
 {
-       return of_register_platform_driver(&socrates_nand_driver);
+       return platform_driver_register(&socrates_nand_driver);
 }
 
 static void __exit socrates_nand_exit(void)
 {
-       of_unregister_platform_driver(&socrates_nand_driver);
+       platform_driver_unregister(&socrates_nand_driver);
 }
 
 module_init(socrates_nand_init);
 
        .set_mem_map            = electra_cf_set_mem_map,
 };
 
-static int __devinit electra_cf_probe(struct platform_device *ofdev,
-                                     const struct of_device_id *match)
+static int __devinit electra_cf_probe(struct platform_device *ofdev)
 {
        struct device *device = &ofdev->dev;
        struct device_node *np = ofdev->dev.of_node;
 };
 MODULE_DEVICE_TABLE(of, electra_cf_match);
 
-static struct of_platform_driver electra_cf_driver = {
+static struct platform_driver electra_cf_driver = {
        .driver = {
                .name = (char *)driver_name,
                .owner = THIS_MODULE,
 
 static int __init electra_cf_init(void)
 {
-       return of_register_platform_driver(&electra_cf_driver);
+       return platform_driver_register(&electra_cf_driver);
 }
 module_init(electra_cf_init);
 
 static void __exit electra_cf_exit(void)
 {
-       of_unregister_platform_driver(&electra_cf_driver);
+       platform_driver_unregister(&electra_cf_driver);
 }
 module_exit(electra_cf_exit);
 
 
        .set_mem_map = m8xx_set_mem_map,
 };
 
-static int __init m8xx_probe(struct platform_device *ofdev,
-                            const struct of_device_id *match)
+static int __init m8xx_probe(struct platform_device *ofdev)
 {
        struct pcmcia_win *w;
        unsigned int i, m, hwirq;
 
 MODULE_DEVICE_TABLE(of, m8xx_pcmcia_match);
 
-static struct of_platform_driver m8xx_pcmcia_driver = {
+static struct platform_driver m8xx_pcmcia_driver = {
        .driver = {
                .name = driver_name,
                .owner = THIS_MODULE,
 
 static int __init m8xx_init(void)
 {
-       return of_register_platform_driver(&m8xx_pcmcia_driver);
+       return platform_driver_register(&m8xx_pcmcia_driver);
 }
 
 static void __exit m8xx_exit(void)
 {
-       of_unregister_platform_driver(&m8xx_pcmcia_driver);
+       platform_driver_unregister(&m8xx_pcmcia_driver);
 }
 
 module_init(m8xx_init);
 
        .update_irq_enable = mpc5121_rtc_update_irq_enable,
 };
 
-static int __devinit mpc5121_rtc_probe(struct platform_device *op,
-                                       const struct of_device_id *match)
+static int __devinit mpc5121_rtc_probe(struct platform_device *op)
 {
        struct mpc5121_rtc_data *rtc;
        int err = 0;
        {},
 };
 
-static struct of_platform_driver mpc5121_rtc_driver = {
+static struct platform_driver mpc5121_rtc_driver = {
        .driver = {
                .name = "mpc5121-rtc",
                .owner = THIS_MODULE,
 
 static int __init mpc5121_rtc_init(void)
 {
-       return of_register_platform_driver(&mpc5121_rtc_driver);
+       return platform_driver_register(&mpc5121_rtc_driver);
 }
 module_init(mpc5121_rtc_init);
 
 static void __exit mpc5121_rtc_exit(void)
 {
-       of_unregister_platform_driver(&mpc5121_rtc_driver);
+       platform_driver_unregister(&mpc5121_rtc_driver);
 }
 module_exit(mpc5121_rtc_exit);
 
 
        .llseek =               no_llseek,
 };
 
-static int __devinit cpwd_probe(struct platform_device *op,
-                               const struct of_device_id *match)
+static int __devinit cpwd_probe(struct platform_device *op)
 {
        struct device_node *options;
        const char *str_prop;
 };
 MODULE_DEVICE_TABLE(of, cpwd_match);
 
-static struct of_platform_driver cpwd_driver = {
+static struct platform_driver cpwd_driver = {
        .driver = {
                .name = DRIVER_NAME,
                .owner = THIS_MODULE,
 
 static int __init cpwd_init(void)
 {
-       return of_register_platform_driver(&cpwd_driver);
+       return platform_driver_register(&cpwd_driver);
 }
 
 static void __exit cpwd_exit(void)
 {
-       of_unregister_platform_driver(&cpwd_driver);
+       platform_driver_unregister(&cpwd_driver);
 }
 
 module_init(cpwd_init);
 
 };
 
 
-static int __devinit gef_wdt_probe(struct platform_device *dev,
-       const struct of_device_id *match)
+static int __devinit gef_wdt_probe(struct platform_device *dev)
 {
        int timeout = 10;
        u32 freq;
        {},
 };
 
-static struct of_platform_driver gef_wdt_driver = {
+static struct platform_driver gef_wdt_driver = {
        .driver = {
                .name = "gef_wdt",
                .owner = THIS_MODULE,
 static int __init gef_wdt_init(void)
 {
        printk(KERN_INFO "GE watchdog driver\n");
-       return of_register_platform_driver(&gef_wdt_driver);
+       return platform_driver_register(&gef_wdt_driver);
 }
 
 static void __exit gef_wdt_exit(void)
 {
-       of_unregister_platform_driver(&gef_wdt_driver);
+       platform_driver_unregister(&gef_wdt_driver);
 }
 
 module_init(gef_wdt_init);
 
        .fops   = &mpc8xxx_wdt_fops,
 };
 
-static int __devinit mpc8xxx_wdt_probe(struct platform_device *ofdev,
-                                      const struct of_device_id *match)
+static int __devinit mpc8xxx_wdt_probe(struct platform_device *ofdev)
 {
        int ret;
        struct device_node *np = ofdev->dev.of_node;
-       struct mpc8xxx_wdt_type *wdt_type = match->data;
+       struct mpc8xxx_wdt_type *wdt_type;
        u32 freq = fsl_get_sys_freq();
        bool enabled;
 
+       if (!ofdev->dev.of_match)
+               return -EINVAL;
+       wdt_type = match->data;
+
        if (!freq || freq == -1)
                return -EINVAL;
 
 };
 MODULE_DEVICE_TABLE(of, mpc8xxx_wdt_match);
 
-static struct of_platform_driver mpc8xxx_wdt_driver = {
+static struct platform_driver mpc8xxx_wdt_driver = {
        .probe          = mpc8xxx_wdt_probe,
        .remove         = __devexit_p(mpc8xxx_wdt_remove),
        .driver = {
 
 static int __init mpc8xxx_wdt_init(void)
 {
-       return of_register_platform_driver(&mpc8xxx_wdt_driver);
+       return platform_driver_register(&mpc8xxx_wdt_driver);
 }
 arch_initcall(mpc8xxx_wdt_init);
 
 static void __exit mpc8xxx_wdt_exit(void)
 {
-       of_unregister_platform_driver(&mpc8xxx_wdt_driver);
+       platform_driver_unregister(&mpc8xxx_wdt_driver);
 }
 module_exit(mpc8xxx_wdt_exit);
 
 
        .fops   = &riowd_fops
 };
 
-static int __devinit riowd_probe(struct platform_device *op,
-                                const struct of_device_id *match)
+static int __devinit riowd_probe(struct platform_device *op)
 {
        struct riowd *p;
        int err = -EINVAL;
 };
 MODULE_DEVICE_TABLE(of, riowd_match);
 
-static struct of_platform_driver riowd_driver = {
+static struct platform_driver riowd_driver = {
        .driver = {
                .name = DRIVER_NAME,
                .owner = THIS_MODULE,
 
 static int __init riowd_init(void)
 {
-       return of_register_platform_driver(&riowd_driver);
+       return platform_driver_register(&riowd_driver);
 }
 
 static void __exit riowd_exit(void)
 {
-       of_unregister_platform_driver(&riowd_driver);
+       platform_driver_unregister(&riowd_driver);
 }
 
 module_init(riowd_init);