aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWilba <Jason.S.Williams@gmail.com>2019-07-21 21:46:22 +1000
committerDanny <nooges@users.noreply.github.com>2019-07-21 07:46:22 -0400
commitbffbb4b42d3167125f54b5aeb7a30fef44ff5dbe (patch)
tree679ba294b68488b74e54300a435654057f09af81 /drivers
parentd686c0ea43d6a9db7768da64ee54c3ba25c018f7 (diff)
downloadqmk_firmware-bffbb4b42d3167125f54b5aeb7a30fef44ff5dbe.tar.gz
qmk_firmware-bffbb4b42d3167125f54b5aeb7a30fef44ff5dbe.zip
Refactoring wilba.tech PCBs, updating Rama Works U80-A (#6272)
* Added WT65-B, WT75-B, minor fixes * Update keyboards/wilba_tech/wt65_b/config.h Co-Authored-By: Drashna Jaelre <drashna@live.com> * Update keyboards/wilba_tech/wt65_b/readme.md Co-Authored-By: fauxpark <fauxpark@gmail.com> * Update keyboards/wilba_tech/wt75_b/config.h Co-Authored-By: Drashna Jaelre <drashna@live.com> * Change DEBOUNCING_DELAY to DEBOUNCE * Change DEBOUNCING_DELAY to DEBOUNCE * Move Zeal60/Zeal65 files to keyboards/wilba_tech * Change DEBOUNCING_DELAY to DEBOUNCE * Refactoring zeal60 code to wilba_tech * Moved Rama Works PCBs to wilba_tech * Rename Rama Works files * Cleanup info.json * Cleanup readme.md * Cleanup USB device strings * U80-A RGB matrix, IS31FL3731 driver changes * Fixed #include from keyboards/zeal60
Diffstat (limited to 'drivers')
-rw-r--r--drivers/issi/is31fl3731.c36
-rw-r--r--drivers/issi/is31fl3731.h4
2 files changed, 19 insertions, 21 deletions
diff --git a/drivers/issi/is31fl3731.c b/drivers/issi/is31fl3731.c
index c9155f5a3..30c7dd053 100644
--- a/drivers/issi/is31fl3731.c
+++ b/drivers/issi/is31fl3731.c
@@ -71,10 +71,10 @@ uint8_t g_twi_transfer_buffer[20];
71// buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's 71// buffers and the transfers in IS31FL3731_write_pwm_buffer() but it's
72// probably not worth the extra complexity. 72// probably not worth the extra complexity.
73uint8_t g_pwm_buffer[DRIVER_COUNT][144]; 73uint8_t g_pwm_buffer[DRIVER_COUNT][144];
74bool g_pwm_buffer_update_required = false; 74bool g_pwm_buffer_update_required[DRIVER_COUNT] = { false };
75 75
76uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } }; 76uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } };
77bool g_led_control_registers_update_required = false; 77bool g_led_control_registers_update_required[DRIVER_COUNT] = { false };
78 78
79// This is the bit pattern in the LED control registers 79// This is the bit pattern in the LED control registers
80// (for matrix A, add one to register for matrix B) 80// (for matrix A, add one to register for matrix B)
@@ -204,7 +204,7 @@ void IS31FL3731_set_color( int index, uint8_t red, uint8_t green, uint8_t blue )
204 g_pwm_buffer[led.driver][led.r - 0x24] = red; 204 g_pwm_buffer[led.driver][led.r - 0x24] = red;
205 g_pwm_buffer[led.driver][led.g - 0x24] = green; 205 g_pwm_buffer[led.driver][led.g - 0x24] = green;
206 g_pwm_buffer[led.driver][led.b - 0x24] = blue; 206 g_pwm_buffer[led.driver][led.b - 0x24] = blue;
207 g_pwm_buffer_update_required = true; 207 g_pwm_buffer_update_required[led.driver] = true;
208 } 208 }
209} 209}
210 210
@@ -220,12 +220,12 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b
220{ 220{
221 is31_led led = g_is31_leds[index]; 221 is31_led led = g_is31_leds[index];
222 222
223 uint8_t control_register_r = (led.r - 0x24) / 8; 223 uint8_t control_register_r = (led.r - 0x24) / 8;
224 uint8_t control_register_g = (led.g - 0x24) / 8; 224 uint8_t control_register_g = (led.g - 0x24) / 8;
225 uint8_t control_register_b = (led.b - 0x24) / 8; 225 uint8_t control_register_b = (led.b - 0x24) / 8;
226 uint8_t bit_r = (led.r - 0x24) % 8; 226 uint8_t bit_r = (led.r - 0x24) % 8;
227 uint8_t bit_g = (led.g - 0x24) % 8; 227 uint8_t bit_g = (led.g - 0x24) % 8;
228 uint8_t bit_b = (led.b - 0x24) % 8; 228 uint8_t bit_b = (led.b - 0x24) % 8;
229 229
230 if ( red ) { 230 if ( red ) {
231 g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); 231 g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r);
@@ -243,28 +243,26 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b
243 g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); 243 g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
244 } 244 }
245 245
246 g_led_control_registers_update_required = true; 246 g_led_control_registers_update_required[led.driver] = true;
247 247
248} 248}
249 249
250void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ) 250void IS31FL3731_update_pwm_buffers( uint8_t addr, uint8_t index )
251{ 251{
252 if ( g_pwm_buffer_update_required ) 252 if ( g_pwm_buffer_update_required[index] )
253 { 253 {
254 IS31FL3731_write_pwm_buffer( addr1, g_pwm_buffer[0] ); 254 IS31FL3731_write_pwm_buffer( addr, g_pwm_buffer[index] );
255 IS31FL3731_write_pwm_buffer( addr2, g_pwm_buffer[1] );
256 } 255 }
257 g_pwm_buffer_update_required = false; 256 g_pwm_buffer_update_required[index] = false;
258} 257}
259 258
260void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ) 259void IS31FL3731_update_led_control_registers( uint8_t addr, uint8_t index )
261{ 260{
262 if ( g_led_control_registers_update_required ) 261 if ( g_led_control_registers_update_required[index] )
263 { 262 {
264 for ( int i=0; i<18; i++ ) 263 for ( int i=0; i<18; i++ )
265 { 264 {
266 IS31FL3731_write_register(addr1, i, g_led_control_registers[0][i] ); 265 IS31FL3731_write_register( addr, i, g_led_control_registers[index][i] );
267 IS31FL3731_write_register(addr2, i, g_led_control_registers[1][i] );
268 } 266 }
269 } 267 }
270} 268}
diff --git a/drivers/issi/is31fl3731.h b/drivers/issi/is31fl3731.h
index f354a12db..968638f86 100644
--- a/drivers/issi/is31fl3731.h
+++ b/drivers/issi/is31fl3731.h
@@ -44,8 +44,8 @@ void IS31FL3731_set_led_control_register( uint8_t index, bool red, bool green, b
44// (eg. from a timer interrupt). 44// (eg. from a timer interrupt).
45// Call this while idle (in between matrix scans). 45// Call this while idle (in between matrix scans).
46// If the buffer is dirty, it will update the driver with the buffer. 46// If the buffer is dirty, it will update the driver with the buffer.
47void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ); 47void IS31FL3731_update_pwm_buffers( uint8_t addr, uint8_t index );
48void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ); 48void IS31FL3731_update_led_control_registers( uint8_t addr, uint8_t index );
49 49
50#define C1_1 0x24 50#define C1_1 0x24
51#define C1_2 0x25 51#define C1_2 0x25