aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2021-09-15 10:07:08 -0700
committerGitHub <noreply@github.com>2021-09-15 10:07:08 -0700
commit169d5bd21d9381843914b4c23cbca1b447e905c6 (patch)
tree4609eacc9383b3dbce347005a0bd6974f6f46cfe /drivers
parent7e36a8138379cab2d27a9db407850b67e46e0d0b (diff)
downloadqmk_firmware-169d5bd21d9381843914b4c23cbca1b447e905c6.tar.gz
qmk_firmware-169d5bd21d9381843914b4c23cbca1b447e905c6.zip
[Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)
Co-authored-by: Joel Challis <git@zvecr.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/led/issi/is31fl3741.c20
-rw-r--r--drivers/led/issi/is31fl3741.h4
2 files changed, 12 insertions, 12 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.
75uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS]; 75uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS];
76bool g_pwm_buffer_update_required = false; 76bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
77bool g_scaling_registers_update_required[DRIVER_COUNT] = {false}; 77bool g_scaling_registers_update_required[DRIVER_COUNT] = {false};
78 78
79uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS]; 79uint8_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
209void IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2) { 209void 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
217void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) { 217void 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
225void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index) { 225void 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.
48void IS31FL3741_update_pwm_buffers(uint8_t addr1, uint8_t addr2); 48void IS31FL3741_update_pwm_buffers(uint8_t addr, uint8_t index);
49void IS31FL3741_update_led_control_registers(uint8_t addr1, uint8_t addr2); 49void IS31FL3741_update_led_control_registers(uint8_t addr, uint8_t index);
50void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); 50void IS31FL3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue);
51 51
52void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue); 52void IS31FL3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue);