diff options
-rw-r--r-- | drivers/led/issi/is31fl3741.c | 20 | ||||
-rw-r--r-- | drivers/led/issi/is31fl3741.h | 4 | ||||
-rw-r--r-- | keyboards/kbdfans/boop65/rgb/config.h | 13 | ||||
-rw-r--r-- | quantum/rgb_matrix/rgb_matrix_drivers.c | 7 |
4 files changed, 24 insertions, 20 deletions
diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index 1b533c9b6..24a273514 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c | |||
@@ -73,7 +73,7 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF}; | |||
73 | // buffers and the transfers in IS31FL3741_write_pwm_buffer() but it's | 73 | // buffers and the transfers in IS31FL3741_write_pwm_buffer() but it's |
74 | // probably not worth the extra complexity. | 74 | // probably not worth the extra complexity. |
75 | uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS]; | 75 | uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS]; |
76 | bool g_pwm_buffer_update_required = false; | 76 | bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false}; |
77 | bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; | 77 | bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; |
78 | 78 | ||
79 | uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; | 79 | uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; |
@@ -169,10 +169,10 @@ void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { | |||
169 | if (index >= 0 && index < DRIVER_LED_TOTAL) { | 169 | if (index >= 0 && index < DRIVER_LED_TOTAL) { |
170 | is31_led led = g_is31_leds[index]; | 170 | is31_led led = g_is31_leds[index]; |
171 | 171 | ||
172 | g_pwm_buffer[led.driver][led.r] = red; | 172 | g_pwm_buffer[led.driver][led.r] = red; |
173 | g_pwm_buffer[led.driver][led.g] = green; | 173 | g_pwm_buffer[led.driver][led.g] = green; |
174 | g_pwm_buffer[led.driver][led.b] = blue; | 174 | g_pwm_buffer[led.driver][led.b] = blue; |
175 | g_pwm_buffer_update_required = true; | 175 | g_pwm_buffer_update_required[led.driver] = true; |
176 | } | 176 | } |
177 | } | 177 | } |
178 | 178 | ||
@@ -206,12 +206,12 @@ void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bo | |||
206 | g_scaling_registers_update_required[led.driver] = true; | 206 | g_scaling_registers_update_required[led.driver] = true; |
207 | } | 207 | } |
208 | 208 | ||
209 | void IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2) { | 209 | void IS31FL3741_update_pwm_buffers(uint8_t addr, uint8_t index) { |
210 | if (g_pwm_buffer_update_required) { | 210 | if (g_pwm_buffer_update_required[index]) { |
211 | IS31FL3741_write_pwm_buffer(addr1, g_pwm_buffer[0]); | 211 | IS31FL3741_write_pwm_buffer(addr, g_pwm_buffer[index]); |
212 | } | 212 | } |
213 | 213 | ||
214 | g_pwm_buffer_update_required = false; | 214 | g_pwm_buffer_update_required[index] = false; |
215 | } | 215 | } |
216 | 216 | ||
217 | void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { | 217 | void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { |
@@ -219,7 +219,7 @@ void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, | |||
219 | g_pwm_buffer[pled->driver][pled->g] = green; | 219 | g_pwm_buffer[pled->driver][pled->g] = green; |
220 | g_pwm_buffer[pled->driver][pled->b] = blue; | 220 | g_pwm_buffer[pled->driver][pled->b] = blue; |
221 | 221 | ||
222 | g_pwm_buffer_update_required = true; | 222 | g_pwm_buffer_update_required[pled->driver] = true; |
223 | } | 223 | } |
224 | 224 | ||
225 | void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index) { | 225 | void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index) { |
diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index cea6761ca..163a03523 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h | |||
@@ -45,8 +45,8 @@ void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bo | |||
45 | // (eg. from a timer interrupt). | 45 | // (eg. from a timer interrupt). |
46 | // Call this while idle (in between matrix scans). | 46 | // Call this while idle (in between matrix scans). |
47 | // If the buffer is dirty, it will update the driver with the buffer. | 47 | // If the buffer is dirty, it will update the driver with the buffer. |
48 | void IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2); | 48 | void IS31FL3741_update_pwm_buffers(uint8_t addr, uint8_t index); |
49 | void IS31FL3741_update_led_control_registers(uint8_t addr1, uint8_t addr2); | 49 | void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index); |
50 | void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); | 50 | void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); |
51 | 51 | ||
52 | void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); | 52 | void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); |
diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index 1236b6bfb..71db0f8b5 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h | |||
@@ -52,12 +52,11 @@ | |||
52 | # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 | 52 | # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 |
53 | # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set | 53 | # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set |
54 | # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL | 54 | # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL |
55 | # define DRIVER_ADDR_1 0b0110000 | 55 | # define DRIVER_ADDR_1 0b0110000 |
56 | # define DRIVER_ADDR_2 0b0110000 | 56 | # define DRIVER_COUNT 1 |
57 | # define DRIVER_COUNT 1 | 57 | # define DRIVER_1_LED_TOTAL 83 |
58 | # define DRIVER_1_LED_TOTAL 83 | 58 | # define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL |
59 | # define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL | 59 | # define DRIVER_INDICATOR_LED_TOTAL 0 |
60 | # define DRIVER_INDICATOR_LED_TOTAL 0 | ||
61 | #endif | 60 | #endif |
62 | 61 | ||
63 | #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 | 62 | #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 \ No newline at end of file |
diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index bfaedaa4a..2cec162e2 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c | |||
@@ -172,7 +172,12 @@ const rgb_matrix_driver_t rgb_matrix_driver = { | |||
172 | .set_color_all = IS31FL3737_set_color_all, | 172 | .set_color_all = IS31FL3737_set_color_all, |
173 | }; | 173 | }; |
174 | # else | 174 | # else |
175 | static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); } | 175 | static void flush(void) { |
176 | IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); | ||
177 | # if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility | ||
178 | IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1); | ||
179 | # endif | ||
180 | } | ||
176 | 181 | ||
177 | const rgb_matrix_driver_t rgb_matrix_driver = { | 182 | const rgb_matrix_driver_t rgb_matrix_driver = { |
178 | .init = init, | 183 | .init = init, |