diff options
| author | Wilba <Jason.S.Williams@gmail.com> | 2019-07-21 21:46:22 +1000 |
|---|---|---|
| committer | Danny <nooges@users.noreply.github.com> | 2019-07-21 07:46:22 -0400 |
| commit | bffbb4b42d3167125f54b5aeb7a30fef44ff5dbe (patch) | |
| tree | 679ba294b68488b74e54300a435654057f09af81 /drivers | |
| parent | d686c0ea43d6a9db7768da64ee54c3ba25c018f7 (diff) | |
| download | qmk_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.c | 36 | ||||
| -rw-r--r-- | drivers/issi/is31fl3731.h | 4 |
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. |
| 73 | uint8_t g_pwm_buffer[DRIVER_COUNT][144]; | 73 | uint8_t g_pwm_buffer[DRIVER_COUNT][144]; |
| 74 | bool g_pwm_buffer_update_required = false; | 74 | bool g_pwm_buffer_update_required[DRIVER_COUNT] = { false }; |
| 75 | 75 | ||
| 76 | uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } }; | 76 | uint8_t g_led_control_registers[DRIVER_COUNT][18] = { { 0 }, { 0 } }; |
| 77 | bool g_led_control_registers_update_required = false; | 77 | bool 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 | ||
| 250 | void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ) | 250 | void 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 | ||
| 260 | void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ) | 259 | void 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. |
| 47 | void IS31FL3731_update_pwm_buffers( uint8_t addr1, uint8_t addr2 ); | 47 | void IS31FL3731_update_pwm_buffers( uint8_t addr, uint8_t index ); |
| 48 | void IS31FL3731_update_led_control_registers( uint8_t addr1, uint8_t addr2 ); | 48 | void 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 |
