Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4250 → Rev 4251

/trunk/kernel/genarch/include/drivers/i8042/i8042.h
53,6 → 53,7
} i8042_instance_t;
 
extern indev_t *i8042_init(i8042_t *, inr_t);
extern void i8042_cpu_reset(i8042_t *);
 
#endif
 
/trunk/kernel/genarch/src/drivers/i8042/i8042.c
50,6 → 50,7
 
#define i8042_SET_COMMAND 0x60
#define i8042_COMMAND 0x69
#define i8042_CPU_RESET 0xfe
 
#define i8042_BUFFER_FULL_MASK 0x01
#define i8042_WAIT_MASK 0x02
97,9 → 98,7
instance->irq.instance = instance;
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);
106,5 → 105,18
return &instance->kbrdin;
}
 
/* 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);
}
 
/** @}
*/