return IRQ_HANDLED;
 }
 
-static int __init omap_ts_probe(struct device *dev)
+static int __init omap_ts_probe(struct platform_device *pdev)
 {
        int i;
        int status = -ENODEV;
 
        init_input_dev(&(ts_omap.inputdevice));
        ts_omap.inputdevice.name = OMAP_TS_NAME;
-       ts_omap.inputdevice.dev = dev;
+       ts_omap.inputdevice.dev = &pdev->dev;
        ts_omap.inputdevice.evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
        ts_omap.inputdevice.keybit[LONG(BTN_TOUCH)] |= BIT(BTN_TOUCH);
        ts_omap.inputdevice.absbit[0] =
        return 0;
 }
 
-static int __exit omap_ts_remove(struct device *dev)
+static int omap_ts_remove(struct platform_device *pdev)
 {
        ts_omap.dev->disable();
        input_unregister_device(&ts_omap.inputdevice);
        return 0;
 }
 
-static int omap_ts_suspend(struct device *dev, pm_message_t state)
+static int omap_ts_suspend(struct platform_device *pdev, pm_message_t state)
 {
        ts_omap.dev->disable();
        return 0;
 }
 
-static int omap_ts_resume(struct device *dev)
+static int omap_ts_resume(struct platform_device *pdev)
 {
        ts_omap.dev->enable();
        return 0;
 {
        /* Nothing */
 }
-
-static struct device_driver omap_ts_driver = {
-       .name           = OMAP_TS_NAME,
-       .bus            = &platform_bus_type,
+static struct platform_driver omap_ts_driver = {
        .probe          = omap_ts_probe,
-       .remove         = __exit_p(omap_ts_remove),
+       .remove         = omap_ts_remove,
        .suspend        = omap_ts_suspend,
        .resume         = omap_ts_resume,
+       .driver {
+               .name   = OMAP_TS_NAME,
+       },
 };
 
 static struct platform_device omap_ts_device = {
        if (ret != 0)
                return -ENODEV;
 
-       ret = driver_register(&omap_ts_driver);
+       ret = platform_driver_register(&omap_ts_driver);
        if (ret != 0) {
                platform_device_unregister(&omap_ts_device);
                return -ENODEV;
 
 static void __exit omap_ts_exit(void)
 {
-       driver_unregister(&omap_ts_driver);
+       platform_driver_unregister(&omap_ts_driver);
        platform_device_unregister(&omap_ts_device);
 }