Index: h4300_kbd.c
===================================================================
--- h4300_kbd.c	(revision 176)
+++ h4300_kbd.c	(working copy)
@@ -212,7 +212,7 @@
 	asic3_write_register(a3, 0x400, 0xa104);
 }
 
-static int __init h4300_kbd_probe(struct platform_device * pdev)
+static int __init h4300_kbd_probe(struct device * pdev)
 {
 	int i, base_irq = asic3_irq_base(a3);
 
@@ -249,7 +249,7 @@
 	return 0;
 }
 
-static int h4300_kbd_remove(struct platform_device * pdev)
+static int h4300_kbd_remove(struct device * pdev)
 {       
 	int irq_base = asic3_irq_base(a3);
 
@@ -261,7 +261,7 @@
 	return 0;
 }
 
-void h4300_kbd_shutdown(struct platform_device * pdev)
+void h4300_kbd_shutdown(struct device * pdev)
 {
 	ipaq_asic3_set_gpio_dir_b(a3, GPIOB_KEYBOARD_IRQ, GPIOB_KEYBOARD_IRQ);
 	ipaq_asic3_set_gpio_out_b(a3,
@@ -269,27 +269,27 @@
 	ipaq_asic3_set_gpio_dir_c(a3,GPIOC_KEY_RXD,GPIOC_KEY_RXD);
 }
 
-static struct platform_driver h4300_kbd_driver = {
+static struct device_driver h4300_kbd_driver = {
 	.probe    = h4300_kbd_probe,
 	.remove   = h4300_kbd_remove,
 	.shutdown = h4300_kbd_shutdown,
 	.suspend  = NULL,
 	.resume   = NULL,
-	.driver   = {
-	    .name = "h4300_kbd",
-	},
+        .bus      = &platform_bus_type,
+	.name	  = "h4300_kbd",
 };
 
 static int __init h4300_kbd_init(void)
 {
-	return platform_driver_register(&h4300_kbd_driver);
+	return driver_register(&h4300_kbd_driver);
 }
 
 static void __exit h4300_kbd_exit(void)
 {
-	platform_driver_unregister(&h4300_kbd_driver);
+	driver_unregister(&h4300_kbd_driver);
 }
 
 module_init(h4300_kbd_init);
 module_exit(h4300_kbd_exit);
 
+MODULE_LICENSE("GPL");
