]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - keyboard/ergodox/ergodox.c
Bugfix: wrong order during init
[tmk_firmware.git] / keyboard / ergodox / ergodox.c
index 8aed78ecb72688df7ab2d9345292f25358d46d93..c6a831487f781a1b901aa007b0b78b44ecb3b0a6 100644 (file)
@@ -62,8 +62,10 @@ void init_ergodox(void)
     PORTC |=  (1<<7);
     PORTD |=  (1<<7 | 1<<5 | 1<<4);
     PORTE |=  (1<<6);
+}
 
-    // blink leds
+void ergodox_blink_all_leds(void)
+{
     ergodox_led_all_off();
     ergodox_led_all_set(LED_BRIGHTNESS_HI);
     ergodox_led_all_on();
@@ -90,6 +92,7 @@ uint8_t init_mcp23018(void) {
     err = i2c_write(0b00000000);        if (err) goto out;
     err = i2c_write(0b00111111);        if (err) goto out;
     i2c_stop();
+
     // set pull-up
     // - unused  : on  : 1
     // - input   : on  : 1
@@ -98,8 +101,18 @@ uint8_t init_mcp23018(void) {
     err = i2c_write(GPPUA);             if (err) goto out;
     err = i2c_write(0b00000000);        if (err) goto out;
     err = i2c_write(0b00111111);        if (err) goto out;
+
+out:
     i2c_stop();
 
+    if (!err) err = ergodox_left_leds_update();
+
+    return err;
+}
+
+uint8_t ergodox_left_leds_update(void) {
+    uint8_t err = 0x20;
+
     // set logical value (doesn't matter on inputs)
     // - unused  : hi-Z : 1
     // - input   : hi-Z : 1