implement ergodox_left_leds_update in ergodox_ez Previously, this code was implemented in keymap.c, but I'm unaware of someone with a different implementation of this particular hack. [If someone has it, we can add another #ifdef in the future.]
1 files changed, 34 insertions(+), 0 deletions(-) M keyboards/ergodox_ez/ergodox_ez.c
M keyboards/ergodox_ez/ergodox_ez.c => keyboards/ergodox_ez/ergodox_ez.c +34 -0
@@ 151,6 151,40 @@ out: return mcp23018_status; } #ifdef LEFT_LEDS uint8_t ergodox_left_leds_update(void) { if (mcp23018_status) { // if there was an error return mcp23018_status; } #define LEFT_LED_1_SHIFT 7 // in MCP23018 port B #define LEFT_LED_2_SHIFT 6 // in MCP23018 port B #define LEFT_LED_3_SHIFT 7 // in MCP23018 port A // set logical value (doesn't matter on inputs) // - unused : hi-Z : 1 // - input : hi-Z : 1 // - driving : hi-Z : 1 mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; mcp23018_status = i2c_write(OLATA); if (mcp23018_status) goto out; mcp23018_status = i2c_write(0b11111111 & ~(ergodox_left_led_3<<LEFT_LED_3_SHIFT) ); 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) ); if (mcp23018_status) goto out; out: i2c_stop(); return mcp23018_status; } #endif #ifdef ONEHAND_ENABLE __attribute__ ((weak)) // swap-hands action needs a matrix to define the swap