diff -ru linux-2.6.1-vanilla/drivers/input/keyboard/newtonkbd.c linux-2.6.1/drivers/input/keyboard/newtonkbd.c
--- linux-2.6.1-vanilla/drivers/input/keyboard/newtonkbd.c	2004-01-29 17:00:48.000000000 -0200
+++ linux-2.6.1/drivers/input/keyboard/newtonkbd.c	2004-02-02 18:46:40.000000000 -0200
@@ -138,10 +138,17 @@
 	kfree(nkbd);
 }
 
+static struct serio_device_id newton_ids[] = {
+	{ SERIO_RS232 | SERIO_NEWTON | SERIO_ID | SERIO_EXTRA },
+	{ 0 },
+};
+MODULE_DEVICE_TABLE(serio, newton_ids);
+
 struct serio_dev nkbd_dev = {
 	.interrupt =	nkbd_interrupt,
 	.connect =	nkbd_connect,
-	.disconnect =	nkbd_disconnect
+	.disconnect =	nkbd_disconnect,
+	.id_table =	newton_ids,
 };
 
 int __init nkbd_init(void)
