diff --git a/src/board/system76/galp3-c/acpi.c b/src/board/system76/galp3-c/acpi.c index 151489a..cdde06a 100644 --- a/src/board/system76/galp3-c/acpi.c +++ b/src/board/system76/galp3-c/acpi.c @@ -1,15 +1,18 @@ -#include - #include +#include uint8_t acpi_read(uint8_t addr) { uint8_t data = 0; - //TODO - printf("acpi_read %02X = %02X\n", addr, data); + DEBUG("acpi_read %02X = %02X\n", addr, data); + switch (addr) { + //TODO + } return data; } void acpi_write(uint8_t addr, uint8_t data) { - //TODO - printf("acpi_write %02X = %02X\n", addr, data); + DEBUG("acpi_write %02X = %02X\n", addr, data); + switch (addr) { + //TODO + } } diff --git a/src/board/system76/galp3-c/battery.c b/src/board/system76/galp3-c/battery.c index 1e0e9dc..6d7e5c7 100644 --- a/src/board/system76/galp3-c/battery.c +++ b/src/board/system76/galp3-c/battery.c @@ -1,5 +1,4 @@ -#include - +#include #include int smbus_read(uint8_t address, uint8_t command, uint16_t * data) { @@ -46,22 +45,22 @@ void battery_debug(void) { int res = 0; #define command(N, A, V) { \ - printf(#N ": "); \ + DEBUG(#N ": "); \ res = smbus_read(A, V, &data); \ if (res < 0) { \ - printf("ERROR %04X\n", -res); \ + DEBUG("ERROR %04X\n", -res); \ } else { \ - printf("%04X\n", data); \ + DEBUG("%04X\n", data); \ } \ } - printf("Battery:\n"); + DEBUG("Battery:\n"); command(Temperature, 0x0B, 0x08); command(Voltage, 0x0B, 0x09); command(Current, 0x0B, 0x0A); command(Charge, 0x0B, 0x0D); - printf("Charger:\n"); + DEBUG("Charger:\n"); command(ChargeOption0, 0x09, 0x12); command(ChargeOption1, 0x09, 0x3B); command(ChargeOption2, 0x09, 0x38); diff --git a/src/board/system76/galp3-c/board.mk b/src/board/system76/galp3-c/board.mk index 55b3b29..e0521b2 100644 --- a/src/board/system76/galp3-c/board.mk +++ b/src/board/system76/galp3-c/board.mk @@ -1 +1,4 @@ EC=it8587e + +# Set debug level to debug +CFLAGS+=-DLEVEL=4 diff --git a/src/board/system76/galp3-c/gpio.c b/src/board/system76/galp3-c/gpio.c index a569254..25bf96f 100644 --- a/src/board/system76/galp3-c/gpio.c +++ b/src/board/system76/galp3-c/gpio.c @@ -1,6 +1,5 @@ -#include - #include +#include void gpio_init() { // Enable LPC reset on GPD2 @@ -117,7 +116,7 @@ void gpio_debug_bank( volatile uint8_t * control ) { for(char i = 0; i < 8; i++) { - printf( + DEBUG( "%s%d:\n\tdata %d\n\tmirror %d\n\tpot %d\n\tcontrol %02X\n", bank, i, diff --git a/src/board/system76/galp3-c/kbc.c b/src/board/system76/galp3-c/kbc.c index 361e163..2ddf9f4 100644 --- a/src/board/system76/galp3-c/kbc.c +++ b/src/board/system76/galp3-c/kbc.c @@ -1,8 +1,7 @@ -#include - #include #include #include +#include #include void kbc_init(void) { @@ -31,7 +30,7 @@ bool kbc_scancode(struct Kbc * kbc, uint16_t key, bool pressed) { if (!key) return true; switch (key & 0xFF00) { case K_E0: - printf(" E0\n"); + DEBUG(" E0\n"); if (!kbc_keyboard(kbc, 0xE0, KBC_TIMEOUT)) return false; key &= 0xFF; // Fall through @@ -40,11 +39,11 @@ bool kbc_scancode(struct Kbc * kbc, uint16_t key, bool pressed) { if (kbc_translate) { key |= 0x80; } else { - printf(" F0\n"); + DEBUG(" F0\n"); if (!kbc_keyboard(kbc, 0xF0, KBC_TIMEOUT)) return false; } } - printf(" %02X\n", key); + DEBUG(" %02X\n", key); if (!kbc_keyboard(kbc, (uint8_t)key, KBC_TIMEOUT)) return false; break; } @@ -70,12 +69,12 @@ void kbc_event(struct Kbc * kbc) { if (sts & KBC_STS_IBF) { uint8_t data = kbc_read(kbc); if (sts & KBC_STS_CMD) { - printf("kbc cmd: %02X\n", data); + DEBUG("kbc cmd: %02X\n", data); state = KBC_STATE_NORMAL; switch (data) { case 0x20: - printf(" read configuration byte\n"); + DEBUG(" read configuration byte\n"); uint8_t config = *kbc->control & 0x03; if (kbc_system) { config |= (1 << 2); @@ -92,81 +91,81 @@ void kbc_event(struct Kbc * kbc) { kbc_keyboard(kbc, config, KBC_TIMEOUT); break; case 0x60: - printf(" write configuration byte\n"); + DEBUG(" write configuration byte\n"); state = KBC_STATE_WRITE_CONFIG; break; case 0xA7: - printf(" disable second port\n"); + DEBUG(" disable second port\n"); kbc_second = false; break; case 0xA8: - printf(" enable second port\n"); + DEBUG(" enable second port\n"); kbc_second = true; break; case 0xA9: - printf(" test second port\n"); + DEBUG(" test second port\n"); // TODO: communicate with touchpad? kbc_keyboard(kbc, 0x00, KBC_TIMEOUT); break; case 0xAA: - printf(" test controller\n"); + DEBUG(" test controller\n"); // Why not pass the test? kbc_keyboard(kbc, 0x55, KBC_TIMEOUT); break; case 0xAB: - printf(" test first port\n"); + DEBUG(" test first port\n"); // We _ARE_ the keyboard, so everything is good. kbc_keyboard(kbc, 0x00, KBC_TIMEOUT); break; case 0xAD: - printf(" disable first port\n"); + DEBUG(" disable first port\n"); kbc_first = false; break; case 0xAE: - printf(" enable first port\n"); + DEBUG(" enable first port\n"); kbc_first = true; break; case 0xD1: - printf(" write port byte\n"); + DEBUG(" write port byte\n"); state = KBC_STATE_WRITE_PORT; break; case 0xD2: - printf(" write first port output\n"); + DEBUG(" write first port output\n"); state = KBC_STATE_FIRST_PORT_OUTPUT; break; case 0xD3: - printf(" write second port output\n"); + DEBUG(" write second port output\n"); state = KBC_STATE_SECOND_PORT_OUTPUT; break; case 0xD4: - printf(" write second port input\n"); + DEBUG(" write second port input\n"); state = KBC_STATE_SECOND_PORT_INPUT; break; } } else { - printf("kbc data: %02X\n", data); + DEBUG("kbc data: %02X\n", data); switch (state) { case KBC_STATE_NORMAL: - printf(" keyboard command\n"); + DEBUG(" keyboard command\n"); switch (data) { case 0xED: - printf(" set leds\n"); + DEBUG(" set leds\n"); state = KBC_STATE_SET_LEDS; kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case 0xEE: - printf(" echo\n"); + DEBUG(" echo\n"); // Hey, this is easy. I like easy commands kbc_keyboard(kbc, 0xEE, KBC_TIMEOUT); break; case 0xF0: - printf(" get/set scancode\n"); + DEBUG(" get/set scancode\n"); state = KBC_STATE_SCANCODE; kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case 0xF2: - printf(" identify keyboard\n"); + DEBUG(" identify keyboard\n"); if (kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT)) { if (kbc_keyboard(kbc, 0xAB, KBC_TIMEOUT)) { kbc_keyboard(kbc, 0x83, KBC_TIMEOUT); @@ -174,17 +173,17 @@ void kbc_event(struct Kbc * kbc) { } break; case 0xF4: - printf(" enable scanning\n"); + DEBUG(" enable scanning\n"); kbscan_enabled = true; kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case 0xF5: - printf(" disable scanning\n"); + DEBUG(" disable scanning\n"); kbscan_enabled = false; kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case 0xFF: - printf(" self test\n"); + DEBUG(" self test\n"); if (kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT)) { // Yep, everything is still good, I promise kbc_keyboard(kbc, 0xAA, KBC_TIMEOUT); @@ -193,7 +192,7 @@ void kbc_event(struct Kbc * kbc) { } break; case KBC_STATE_WRITE_CONFIG: - printf(" write configuration byte\n"); + DEBUG(" write configuration byte\n"); state = KBC_STATE_NORMAL; uint8_t control = *kbc->control; if (data & 1) { @@ -213,36 +212,36 @@ void kbc_event(struct Kbc * kbc) { *kbc->control = control; break; case KBC_STATE_SET_LEDS: - printf(" set leds\n"); + DEBUG(" set leds\n"); state = KBC_STATE_NORMAL; kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case KBC_STATE_SCANCODE: - printf(" get/set scancode\n"); + DEBUG(" get/set scancode\n"); state = KBC_STATE_NORMAL; switch (data) { case 0x02: - printf(" set scancode set 2\n"); + DEBUG(" set scancode set 2\n"); break; } kbc_keyboard(kbc, 0xFA, KBC_TIMEOUT); break; case KBC_STATE_WRITE_PORT: - printf(" write port byte\n"); + DEBUG(" write port byte\n"); state = KBC_STATE_NORMAL; break; case KBC_STATE_FIRST_PORT_OUTPUT: - printf(" write first port output\n"); + DEBUG(" write first port output\n"); state = KBC_STATE_NORMAL; kbc_keyboard(kbc, data, KBC_TIMEOUT); break; case KBC_STATE_SECOND_PORT_OUTPUT: - printf(" write second port output\n"); + DEBUG(" write second port output\n"); state = KBC_STATE_NORMAL; kbc_mouse(kbc, data, KBC_TIMEOUT); break; case KBC_STATE_SECOND_PORT_INPUT: - printf(" write second port input\n"); + DEBUG(" write second port input\n"); state = KBC_STATE_NORMAL; ps2_write(&PS2_3, &data, 1); break; diff --git a/src/board/system76/galp3-c/kbscan.c b/src/board/system76/galp3-c/kbscan.c index e3452a9..474e998 100644 --- a/src/board/system76/galp3-c/kbscan.c +++ b/src/board/system76/galp3-c/kbscan.c @@ -1,9 +1,8 @@ -#include - #include #include #include #include +#include bool kbscan_enabled = false; @@ -50,7 +49,7 @@ void kbscan_event(void) { bool last_b = last & (1 << j); if (new_b != last_b) { uint16_t key = keymap(i, j, kbscan_layer); - printf("KB %d, %d, %d = 0x%04X, %d\n", i, j, kbscan_layer, key, new_b); + TRACE("KB %d, %d, %d = 0x%04X, %d\n", i, j, kbscan_layer, key, new_b); if (kbscan_enabled && key) { kbc_scancode(&KBC, key, new_b); } diff --git a/src/board/system76/galp3-c/keymap.c b/src/board/system76/galp3-c/keymap.c index 0507317..71bd024 100644 --- a/src/board/system76/galp3-c/keymap.c +++ b/src/board/system76/galp3-c/keymap.c @@ -1,6 +1,5 @@ -#include - #include +#include uint16_t __code KEYMAP[KM_OUT][KM_IN][KM_LAY] = { { // 0 @@ -282,7 +281,7 @@ uint16_t keymap_translate(uint16_t key) { case K_RIGHT: return (K_E0 | 0x4D); default: - printf("keymap_translate: unknown %02X\n", key); + WARN("keymap_translate: unknown %02X\n", key); return 0; } } diff --git a/src/board/system76/galp3-c/main.c b/src/board/system76/galp3-c/main.c index baaaec1..547388b 100644 --- a/src/board/system76/galp3-c/main.c +++ b/src/board/system76/galp3-c/main.c @@ -12,30 +12,31 @@ #include #include #include +#include #include void external_0(void) __interrupt(0) { - printf("external_0\n"); + TRACE("external_0\n"); } void timer_0(void) __interrupt(1) { - printf("timer_0\n"); + TRACE("timer_0\n"); } void external_1(void) __interrupt(2) { - printf("external_1\n"); + TRACE("external_1\n"); } void timer_1(void) __interrupt(3) { - printf("timer_1\n"); + TRACE("timer_1\n"); } void serial(void) __interrupt(4) { - printf("serial\n"); + TRACE("serial\n"); } void timer_2(void) __interrupt(5) { - printf("timer_2\n"); + TRACE("timer_2\n"); } void init(void) { @@ -122,7 +123,7 @@ void peci_event(void) { if (duty != DCR2) { DCR2 = duty; - printf("PECI offset=%d, temp=%d = %d\n", offset, temp, duty); + DEBUG("PECI offset=%d, temp=%d = %d\n", offset, temp, duty); } } else { // Default to 50% if there is an error @@ -143,12 +144,12 @@ void ac_adapter() { // If there has been a change, print if (new != last) { - printf("Power adapter "); + DEBUG("Power adapter "); if (new) { - printf("unplugged\n"); + DEBUG("unplugged\n"); battery_charger_disable(); } else { - printf("plugged in\n"); + DEBUG("plugged in\n"); battery_charger_enable(); } battery_debug(); @@ -178,7 +179,11 @@ void pnp_write(uint8_t reg, uint8_t data) { } void pnp_enable() { - printf("Enable PNP devices\n"); + DEBUG("Enable PNP devices\n"); + + // Enable PMC + pnp_write(0x07, 0x11); + pnp_write(0x30, 0x01); // Enable KBC keyboard pnp_write(0x07, 0x06); @@ -223,65 +228,61 @@ void power_button() { // Ensure press is not spurious delay_ms(100); if (gpio_get(&PWR_SW_N) != new) { - printf("Spurious press\n"); + DEBUG("Spurious press\n"); return; } - printf("Power switch press\n"); + DEBUG("Power switch press\n"); power = !power; if (power) { - printf("Enabling S5 power\n"); + DEBUG("Enabling S5 power\n"); // We assume that VCCRTC has already been stable, RTCRST# is // already set, and VCCDSW_3P3 is stable - // Enable battery charger - also provides correct power levels for - // system boot sourced from the AC adapter - // battery_charger_enable(); - // Make sure VCCDSW is stable for at least 10 ms (tPCH02) delay_ms(10 + 5); // Assert DSW_PWROK - printf("PCH_DPWROK_EC: %d\n", power); + TRACE("PCH_DPWROK_EC: %d\n", power); gpio_set(&PCH_DPWROK_EC, power); // Wait for SLP_SUS# (tPCH32) delay_ms(95); for (;;) { bool value = gpio_get(&SLP_SUS_N); - printf("SLP_SUS_N: %d\n", value); + TRACE("SLP_SUS_N: %d\n", value); if (value) break; delay_ms(1); } // Enable VCCPRIM_* planes - must be enabled prior to USB power // in order to avoid leakage - printf("VA_EC_EN: %d\n", power); + TRACE("VA_EC_EN: %d\n", power); gpio_set(&VA_EC_EN, power); // Make sure VCCPRIM_* is stable for at least 10 ms (tPCH03) delay_ms(10 + 5); // Enable VDD5 - printf("DD_ON: %d\n", power); + TRACE("DD_ON: %d\n", power); gpio_set(&DD_ON, power); // Assert RSMRST# - printf("EC_RSMRST_N: %d\n", power); + TRACE("EC_RSMRST_N: %d\n", power); gpio_set(&EC_RSMRST_N, power); // Allow processor to control SUSB# and SUSC# - printf("EC_EN: %d\n", power); + TRACE("EC_EN: %d\n", power); gpio_set(&EC_EN, power); // Assert SUS_ACK# - printf("SUS_PWR_ACK: %d\n", power); + TRACE("SUS_PWR_ACK: %d\n", power); gpio_set(&SUS_PWR_ACK, power); - // printf("VR_ON: %d\n", power); + // DEBUG("VR_ON: %d\n", power); // gpio_set(&VR_ON, power); } } @@ -291,35 +292,35 @@ void power_button() { if (!new && last) { if (power) { - printf("Enabling S0 power\n"); + DEBUG("Enabling S0 power\n"); // Wait for ALL_SYS_PWRGD for (;;) { bool value = gpio_get(&ALL_SYS_PWRGD); - printf("ALL_SYS_PWRGD: %d\n", value); + TRACE("ALL_SYS_PWRGD: %d\n", value); if (value) break; delay_ms(1); } // Assert VR_ON - printf("VR_ON: %d\n", power); + TRACE("VR_ON: %d\n", power); gpio_set(&VR_ON, power); // Assert PM_PWEROK, PCH_PWROK will be asserted when H_VR_READY is - printf("PM_PWROK: %d\n", power); + TRACE("PM_PWROK: %d\n", power); gpio_set(&PM_PWROK, power); // OEM defined delay from ALL_SYS_PWRGD to SYS_PWROK - TODO delay_ms(10); // Assert PCH_PWEROK_EC, SYS_PWEROK will be asserted - printf("PCH_PWROK_EC: %d\n", power); + TRACE("PCH_PWROK_EC: %d\n", power); gpio_set(&PCH_PWROK_EC, power); // Wait for PLT_RST# for (;;) { bool value = gpio_get(&BUF_PLT_RST_N); - printf("BUF_PLT_RST_N: %d\n", value); + TRACE("BUF_PLT_RST_N: %d\n", value); if (value) break; delay_ms(1); } @@ -327,66 +328,61 @@ void power_button() { // enable pnp devices pnp_enable(); } else { - printf("Disabling power\n"); + DEBUG("Disabling power\n"); // De-assert SUS_ACK# - printf("SUS_PWR_ACK: %d\n", power); + TRACE("SUS_PWR_ACK: %d\n", power); gpio_set(&SUS_PWR_ACK, power); // De-assert PCH_PWEROK_EC, SYS_PWEROK will be de-asserted - printf("PCH_PWROK_EC: %d\n", power); + TRACE("PCH_PWROK_EC: %d\n", power); gpio_set(&PCH_PWROK_EC, power); // De-assert PM_PWEROK, PCH_PWROK will be de-asserted - printf("PM_PWROK: %d\n", power); + TRACE("PM_PWROK: %d\n", power); gpio_set(&PM_PWROK, power); // De-assert VR_ON - printf("VR_ON: %d\n", power); + TRACE("VR_ON: %d\n", power); gpio_set(&VR_ON, power); // Block processor from controlling SUSB# and SUSC# - printf("EC_EN: %d\n", power); + TRACE("EC_EN: %d\n", power); gpio_set(&EC_EN, power); // De-assert RSMRST# - printf("EC_RSMRST_N: %d\n", power); + TRACE("EC_RSMRST_N: %d\n", power); gpio_set(&EC_RSMRST_N, power); // Disable VDD5 - printf("DD_ON: %d\n", power); + TRACE("DD_ON: %d\n", power); gpio_set(&DD_ON, power); // Wait a minimum of 400 ns (tPCH12) delay_ms(1); // Disable VCCPRIM_* planes - printf("VA_EC_EN: %d\n", power); + TRACE("VA_EC_EN: %d\n", power); gpio_set(&VA_EC_EN, power); // De-assert DSW_PWROK - printf("PCH_DPWROK_EC: %d\n", power); + TRACE("PCH_DPWROK_EC: %d\n", power); gpio_set(&PCH_DPWROK_EC, power); // Wait a minimum of 400 ns (tPCH14) delay_ms(1); - - // Disable battery charger - // battery_charger_disable(); } - printf("LED_PWR: %d\n", power); + TRACE("LED_PWR: %d\n", power); gpio_set(&LED_PWR, power); } else if (new && !last) { - printf("Power switch release\n"); + DEBUG("Power switch release\n"); - printf("SUSWARN_N: %d\n", gpio_get(&SUSWARN_N)); - printf("SUSC_N_PCH: %d\n", gpio_get(&SUSC_N_PCH)); - printf("SUSB_N_PCH: %d\n", gpio_get(&SUSB_N_PCH)); - printf("ALL_SYS_PWRGD: %d\n", gpio_get(&ALL_SYS_PWRGD)); - printf("BUF_PLT_RST_N: %d\n", gpio_get(&BUF_PLT_RST_N)); - - // battery_debug(); + TRACE("SUSWARN_N: %d\n", gpio_get(&SUSWARN_N)); + TRACE("SUSC_N_PCH: %d\n", gpio_get(&SUSC_N_PCH)); + TRACE("SUSB_N_PCH: %d\n", gpio_get(&SUSB_N_PCH)); + TRACE("ALL_SYS_PWRGD: %d\n", gpio_get(&ALL_SYS_PWRGD)); + TRACE("BUF_PLT_RST_N: %d\n", gpio_get(&BUF_PLT_RST_N)); } last = new; @@ -403,7 +399,7 @@ void touchpad_event(struct Ps2 * ps2) { *(ps2->status) = status; if (status & (1 << 3)) { uint8_t data = *(ps2->data); - //printf("touchpad: %02X\n", data); + TRACE("touchpad: %02X\n", data); kbc_mouse(&KBC, data, 1000); } } @@ -414,7 +410,7 @@ struct Gpio __code LED_AIRPLANE_N = GPIO(G, 6); void main(void) { init(); - printf("\n"); + INFO("\n"); static struct Gpio __code LED_BAT_CHG = GPIO(A, 5); static struct Gpio __code LED_BAT_FULL = GPIO(A, 6); @@ -450,13 +446,13 @@ void main(void) { // Set the battery full LED (to know our firmware is loaded) gpio_set(&LED_BAT_FULL, true); - printf("Hello from System76 EC for %s!\n", xstr(__BOARD__)); + INFO("Hello from System76 EC for %s!\n", xstr(__BOARD__)); for(;;) { peci_event(); ac_adapter(); power_button(); - kbscan_event(); + //kbscan_event(); touchpad_event(&PS2_3); kbc_event(&KBC); pmc_event(&PMC_1); diff --git a/src/common/include/common/debug.h b/src/common/include/common/debug.h new file mode 100644 index 0000000..76449c4 --- /dev/null +++ b/src/common/include/common/debug.h @@ -0,0 +1,48 @@ +#ifndef _COMMON_DEBUG_H +#define _COMMON_DEBUG_H + +#include + +#define LEVEL_TRACE 5 +#define LEVEL_DEBUG 4 +#define LEVEL_INFO 3 +#define LEVEL_WARN 2 +#define LEVEL_ERROR 1 +#define LEVEL_NONE 0 + +// This is the user-configurable log level +#ifndef LEVEL + #define LEVEL LEVEL_INFO +#endif + +#if LEVEL >= LEVEL_TRACE + #define TRACE(...) printf(__VA_ARGS__) +#else + #define TRACE(...) +#endif + +#if LEVEL >= LEVEL_DEBUG + #define DEBUG(...) printf(__VA_ARGS__) +#else + #define DEBUG(...) +#endif + +#if LEVEL >= LEVEL_INFO + #define INFO(...) printf(__VA_ARGS__) +#else + #define INFO(...) +#endif + +#if LEVEL >= LEVEL_WARN + #define WARN(...) printf(__VA_ARGS__) +#else + #define WARN(...) +#endif + +#if LEVEL >= LEVEL_ERROR + #define ERROR(...) printf(__VA_ARGS__) +#else + #define ERROR(...) +#endif + +#endif // _COMMON_DEBUG_H diff --git a/src/ec/it8587e/pmc.c b/src/ec/it8587e/pmc.c index 3b17cf6..6c22922 100644 --- a/src/ec/it8587e/pmc.c +++ b/src/ec/it8587e/pmc.c @@ -1,6 +1,5 @@ -#include - #include +#include #include #define PMC(NUM) { \ @@ -52,7 +51,7 @@ void pmc_event(struct Pmc * pmc) { if (sts & PMC_STS_IBF) { uint8_t data = pmc_read(pmc); if (sts & PMC_STS_CMD) { - printf("pmc cmd: %02X\n", data); + DEBUG("pmc cmd: %02X\n", data); state = PMC_STATE_DEFAULT; switch (data) { @@ -63,22 +62,22 @@ void pmc_event(struct Pmc * pmc) { state = PMC_STATE_ACPI_WRITE; break; case 0x82: - printf(" burst enable\n"); + DEBUG(" burst enable\n"); // TODO: figure out what burst is pmc_write(pmc, 0x90, PMC_TIMEOUT); break; case 0x83: - printf(" burst disable\n"); + DEBUG(" burst disable\n"); // TODO: figure out what burst is break; case 0x84: - printf(" SCI queue\n"); + DEBUG(" SCI queue\n"); // TODO: queue is always empty pmc_write(pmc, 0, PMC_TIMEOUT); break; } } else { - printf("pmc data: %02X\n", data); + DEBUG("pmc data: %02X\n", data); switch (state) { case PMC_STATE_ACPI_READ: