Index: kernel/genarch/src/drivers/i8042/i8042.c
===================================================================
--- kernel/genarch/src/drivers/i8042/i8042.c	(revision c8bf88d737f715dd3bf256ec6f8bf31e0d3be7e1)
+++ kernel/genarch/src/drivers/i8042/i8042.c	(revision 6071a8f795d4bd0c92c2ca86cdda3afe37e0de79)
@@ -51,4 +51,5 @@
 #define i8042_SET_COMMAND  0x60
 #define i8042_COMMAND      0x69
+#define i8042_CPU_RESET    0xfe
 
 #define i8042_BUFFER_FULL_MASK  0x01
@@ -98,7 +99,5 @@
 	irq_register(&instance->irq);
 	
-	/*
-	 * Clear input buffer.
-	 */
+	/* Clear input buffer */
 	while (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK)
 		(void) pio_read_8(&dev->data);
@@ -107,4 +106,17 @@
 }
 
+/* Reset CPU by pulsing pin 0 */
+void i8042_cpu_reset(i8042_t *dev)
+{
+	interrupts_disable();
+	
+	/* Clear input buffer */
+	while (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK)
+		(void) pio_read_8(&dev->data);
+	
+	/* Reset CPU */
+	pio_write_8(&dev->status, i8042_CPU_RESET);
+}
+
 /** @}
  */
