Organize into arch, board, and ec modules

This commit is contained in:
Jeremy Soller
2019-09-29 20:13:03 -06:00
parent 9d056547e6
commit ded5181926
47 changed files with 518 additions and 486 deletions

View File

@@ -1,45 +1,6 @@
#include <stdio.h>
#include "include/kbc.h"
__code struct Kbc KBC = {
.control = &KBHICR,
.irq = &KBIRQR,
.status = &KBHISR,
.keyboard_out = &KBHIKDOR,
.mouse_out = &KBHIMDOR,
.data_in = &KBHIDIR,
};
#include <board/kbc.h>
void kbc_init(void) {
*(KBC.irq) = 0;
*(KBC.control) = 0x48;
}
uint8_t kbc_status(struct Kbc * kbc) {
return *(kbc->status);
}
uint8_t kbc_read(struct Kbc * kbc) {
return *(kbc->data_in);
}
void kbc_keyboard(struct Kbc * kbc, uint8_t data) {
*(kbc->keyboard_out) = data;
}
void kbc_mouse(struct Kbc * kbc, uint8_t data) {
*(kbc->mouse_out) = data;
}
void kbc_event(struct Kbc * kbc) {
uint8_t sts = kbc_status(kbc);
if (sts & KBC_STS_IBF) {
uint8_t data = kbc_read(kbc);
if (sts & KBC_STS_CMD) {
printf("kbc cmd: %02X\n", data);
} else {
printf("kbc data: %02X\n", data);
}
}
}