diff options
Diffstat (limited to 'keyboards/wilba_tech/wt_rgb_backlight.c')
-rw-r--r-- | keyboards/wilba_tech/wt_rgb_backlight.c | 91 |
1 files changed, 44 insertions, 47 deletions
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 6c57416622..1c865deecf 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -64,7 +64,7 @@ #if defined(RGB_BACKLIGHT_DAWN60) #include "ws2812.h" -LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL]; +rgb_led_t g_ws2812_leds[WS2812_LED_TOTAL]; #endif #include "progmem.h" @@ -155,13 +155,9 @@ uint8_t g_key_hit[BACKLIGHT_LED_COUNT]; uint32_t g_any_key_hit = 0; #if defined(RGB_BACKLIGHT_HS60) +#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// ADDR_2 is not needed. it is here as a dummy -#define ISSI_ADDR_1 0x50 - -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -235,14 +231,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) +#define ISSI_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND +#define ISSI_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_SDA -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -// ADDR_2 is not needed. it is here as a dummy -#define ISSI_ADDR_1 0x50 -#define ISSI_ADDR_2 0x52 - -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -381,11 +373,9 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_NEBULA12) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -411,13 +401,12 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_U80_A) - // U80-A prototype uses 3 ISSI drivers -#define ISSI_ADDR_1 0x74 // 11101[00] <- GND -#define ISSI_ADDR_2 0x76 // 11101[10] <- SDA -#define ISSI_ADDR_3 0x75 // 11101[01] <- SCL +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA +#define ISSI_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -539,12 +528,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {2, C8_16, C7_16, C6_16}, // LF17 }; #elif defined(RGB_BACKLIGHT_DAWN60) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x76 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -620,12 +607,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, C9_16, C7_15, C6_15} //D16 }; #elif defined(RGB_BACKLIGHT_PORTICO) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x77 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -706,12 +691,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_PORTICO75) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x30 +#define ISSI_ADDR_1 IS31FL3741_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -834,14 +817,19 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { }; #elif defined(RGB_BACKLIGHT_M6_B) - // Driver has fixed mapping of index to the red, green and blue LEDs +const is31fl3218_led_t PROGMEM g_is31fl3218_leds[RGB_MATRIX_LED_COUNT] = { + {OUT1, OUT2, OUT3}, + {OUT4, OUT5, OUT6}, + {OUT7, OUT8, OUT9}, + {OUT10, OUT11, OUT12}, + {OUT13, OUT14, OUT15}, + {OUT16, OUT17, OUT18} +}; #elif defined(RGB_BACKLIGHT_M10_C) -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_9, C3_10, C4_10}, // LB1 {0, C1_10, C2_10, C4_11}, // LB2 {0, C1_11, C2_11, C3_11}, // LB3 @@ -856,12 +844,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C9_16, C7_15, C6_15} // LB16 }; #else -// This is a 7-bit address, that gets left-shifted and bit 0 -// set to 0 for write, 1 for read (as per I2C protocol) -#define ISSI_ADDR_1 0x74 -#define ISSI_ADDR_2 0x76 +#define ISSI_ADDR_1 IS31FL3731_I2C_ADDRESS_GND +#define ISSI_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -2915,6 +2901,17 @@ void backlight_init_drivers(void) #if defined(RGB_BACKLIGHT_M6_B) is31fl3218_init(); + + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) + { + bool enabled = true; + + // This only caches it for later + is31fl3218_set_led_control_register( index, enabled, enabled, enabled ); + } + + // This actually updates the LED drivers + is31fl3218_update_led_control_registers(); #elif defined(RGB_BACKLIGHT_HS60) is31fl3733_init( ISSI_ADDR_1, 0 ); |