Files
system76-embedded-controller/src/kbc.c
2019-09-28 20:43:22 -06:00

32 lines
609 B
C

#include "include/kbc.h"
__code struct Kbc KBC = {
.control = &KBHICR,
.irq = &KBIRQR,
.status = &KBHISR,
.keyboard_out = &KBHIKDOR,
.mouse_out = &KBHIMDOR,
.data_in = &KBHIDIR,
};
void kbc_init(void) {
*(KBC.irq) = 0;
*(KBC.control) = 0x48;
}
unsigned char kbc_status(struct Kbc * kbc) {
return *(kbc->status);
}
unsigned char kbc_read(struct Kbc * kbc) {
return *(kbc->data_in);
}
void kbc_keyboard(struct Kbc * kbc, unsigned char data) {
*(kbc->keyboard_out) = data;
}
void kbc_mouse(struct Kbc * kbc, unsigned char data) {
*(kbc->mouse_out) = data;
}