]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/ergodox_ez/ergodox_ez.c
refactor, non-working
[qmk_firmware.git] / keyboards / ergodox_ez / ergodox_ez.c
index 21854ef77e9b59d0be3a189d3e94266bff116bb0..65671b38fe3fd2367e82d6549db50a6d7a2f0408 100644 (file)
@@ -1,6 +1,4 @@
 #include QMK_KEYBOARD_H
-#include "i2cmaster.h"
-
 
 extern inline void ergodox_board_led_on(void);
 extern inline void ergodox_right_led_1_on(void);
@@ -26,7 +24,7 @@ extern inline void ergodox_led_all_set(uint8_t n);
 
 
 bool i2c_initialized = 0;
-uint8_t mcp23018_status = 0x20;
+i2c_status_t mcp23018_status = 0x20;
 
 void matrix_init_kb(void) {
    // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md")
@@ -114,33 +112,36 @@ uint8_t init_mcp23018(void) {
     // uint8_t sreg_prev;
     // sreg_prev=SREG;
     // cli();
+
     if (i2c_initialized == 0) {
         i2c_init();  // on pins D(1,0)
         i2c_initialized = true;
         _delay_ms(1000);
     }
+    // i2c_init(); // on pins D(1,0)
+    // _delay_ms(1000);
 
     // set pin direction
     // - unused  : input  : 1
     // - input   : input  : 1
     // - driving : output : 0
-    mcp23018_status = i2c_start(I2C_ADDR_WRITE);    if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(IODIRA);            if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(0b00000000);        if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(0b00111111);        if (mcp23018_status) goto out;
-    i2c_stop();
+    mcp23018_status = i2c_start(I2C_ADDR_WRITE, 0);    if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(IODIRA, 0);            if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(0b00000000, 0);        if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(0b00111111, 0);        if (mcp23018_status) goto out;
+    i2c_stop(0);
 
     // set pull-up
     // - unused  : on  : 1
     // - input   : on  : 1
     // - driving : off : 0
-    mcp23018_status = i2c_start(I2C_ADDR_WRITE);    if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(GPPUA);             if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(0b00000000);        if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(0b00111111);        if (mcp23018_status) goto out;
+    mcp23018_status = i2c_start(I2C_ADDR_WRITE, 0);    if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(GPPUA, 0);             if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(0b00000000, 0);        if (mcp23018_status) goto out;
+    mcp23018_status = i2c_write(0b00111111, 0);        if (mcp23018_status) goto out;
 
 out:
-    i2c_stop();
+    i2c_stop(0);
 
 #ifdef LEFT_LEDS
     if (!mcp23018_status) mcp23018_status = ergodox_left_leds_update();
@@ -164,22 +165,22 @@ uint8_t ergodox_left_leds_update(void) {
     // - unused  : hi-Z : 1
     // - input   : hi-Z : 1
     // - driving : hi-Z : 1
-    mcp23018_status = i2c_start(I2C_ADDR_WRITE);
+    mcp23018_status = i2c_start(I2C_ADDR_WRITE, 0);
     if (mcp23018_status) goto out;
-    mcp23018_status = i2c_write(OLATA);
+    mcp23018_status = i2c_write(OLATA, 0);
     if (mcp23018_status) goto out;
     mcp23018_status = i2c_write(0b11111111
-                                & ~(ergodox_left_led_3<<LEFT_LED_3_SHIFT)
-                                );
+                                & ~(ergodox_left_led_3<<LEFT_LED_3_SHIFT),
+                                0);
     if (mcp23018_status) goto out;
     mcp23018_status = i2c_write(0b11111111
                                 & ~(ergodox_left_led_2<<LEFT_LED_2_SHIFT)
-                                & ~(ergodox_left_led_1<<LEFT_LED_1_SHIFT)
-                                );
+                                & ~(ergodox_left_led_1<<LEFT_LED_1_SHIFT),
+                                0);
     if (mcp23018_status) goto out;
 
  out:
-    i2c_stop();
+    i2c_stop(0);
     return mcp23018_status;
 }
 #endif
@@ -329,7 +330,7 @@ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
     {{3|(9<<4)},   {24.9*0, 16*2}, 0}, // LED 20
 
     {{4|(6<<4)},   {24.9*3, 16*2}, 0}, // LED 21
-    {{4|(7<<4)},   {24.9*3, 16*2}, 0}, // LED 22
+    {{4|(7<<4)},   {24.9*2, 16*2}, 0}, // LED 22
     {{4|(8<<4)},   {24.9*1, 16*2}, 0}, // LED 23
     {{4|(9<<4)},   {24.9*0, 16*2}, 0}, // LED 24
 };