diff options
Diffstat (limited to 'quantum/led_matrix/led_matrix_drivers.c')
| -rw-r--r-- | quantum/led_matrix/led_matrix_drivers.c | 133 | 
1 files changed, 64 insertions, 69 deletions
| diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 1d46b2c506..2157619a0b 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -26,128 +26,123 @@   */  #if defined(IS31FL3731) || defined(IS31FL3733) -  #    include "i2c_master.h"  static void init(void) {      i2c_init(); -#    ifdef IS31FL3731 -#        ifdef LED_DRIVER_ADDR_1 + +#    if defined(IS31FL3731)      IS31FL3731_init(LED_DRIVER_ADDR_1); -#        endif -#        ifdef LED_DRIVER_ADDR_2 +#        if defined(LED_DRIVER_ADDR_2)      IS31FL3731_init(LED_DRIVER_ADDR_2); -#        endif -#        ifdef LED_DRIVER_ADDR_3 +#            if defined(LED_DRIVER_ADDR_3)      IS31FL3731_init(LED_DRIVER_ADDR_3); -#        endif -#        ifdef LED_DRIVER_ADDR_4 +#                if defined(LED_DRIVER_ADDR_4)      IS31FL3731_init(LED_DRIVER_ADDR_4); -#        endif -#    else -#        ifdef LED_DRIVER_ADDR_1 -#            ifndef LED_DRIVER_SYNC_1 -#                define LED_DRIVER_SYNC_1 0 +#                endif  #            endif -    IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1);  #        endif -#        ifdef LED_DRIVER_ADDR_2 -#            ifndef LED_DRIVER_SYNC_2 + +#    elif defined(IS31FL3733) +#        if !defined(LED_DRIVER_SYNC_1) +#            define LED_DRIVER_SYNC_1 0 +#        endif +    IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1); +#        if defined(LED_DRIVER_ADDR_2) +#            if !defined(LED_DRIVER_SYNC_2)  #                define LED_DRIVER_SYNC_2 0  #            endif      IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); -#        endif -#        ifdef LED_DRIVER_ADDR_3 -#            ifndef LED_DRIVER_SYNC_3 -#                define LED_DRIVER_SYNC_3 0 -#            endif +#            if defined(LED_DRIVER_ADDR_3) +#                if !defined(LED_DRIVER_SYNC_3) +#                    define LED_DRIVER_SYNC_3 0 +#                endif      IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); -#        endif -#        ifdef LED_DRIVER_ADDR_4 -#            ifndef LED_DRIVER_SYNC_4 -#                define LED_DRIVER_SYNC_4 0 -#            endif +#                if defined(LED_DRIVER_ADDR_4) +#                    if !defined(LED_DRIVER_SYNC_4) +#                        define LED_DRIVER_SYNC_4 0 +#                    endif      IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); +#                endif +#            endif  #        endif  #    endif      for (int index = 0; index < DRIVER_LED_TOTAL; index++) { -#    ifdef IS31FL3731 +#    if defined(IS31FL3731)          IS31FL3731_set_led_control_register(index, true); -#    else +#    elif defined(IS31FL3733)          IS31FL3733_set_led_control_register(index, true);  #    endif      } +  // This actually updates the LED drivers -#    ifdef IS31FL3731 -#        ifdef LED_DRIVER_ADDR_1 +#    if defined(IS31FL3731)      IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -#        endif -#        ifdef LED_DRIVER_ADDR_2 +#        if defined(LED_DRIVER_ADDR_2)      IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -#        endif -#        ifdef LED_DRIVER_ADDR_3 +#            if defined(LED_DRIVER_ADDR_3)      IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -#        endif -#        ifdef LED_DRIVER_ADDR_4 +#                if defined(LED_DRIVER_ADDR_4)      IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); +#                endif +#            endif  #        endif -#    else -#        ifdef LED_DRIVER_ADDR_1 + +#    elif defined(IS31FL3733)      IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); -#        endif -#        ifdef LED_DRIVER_ADDR_2 +#        if defined(LED_DRIVER_ADDR_2)      IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); -#        endif -#        ifdef LED_DRIVER_ADDR_3 +#            if defined(LED_DRIVER_ADDR_3)      IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); -#        endif -#        ifdef LED_DRIVER_ADDR_4 +#                if defined(LED_DRIVER_ADDR_4)      IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); +#                endif +#            endif  #        endif  #    endif  } +#    if defined(IS31FL3731)  static void flush(void) { -#    ifdef IS31FL3731 -#        ifdef LED_DRIVER_ADDR_1      IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -#        endif -#        ifdef LED_DRIVER_ADDR_2 +#        if defined(LED_DRIVER_ADDR_2)      IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -#        endif -#        ifdef LED_DRIVER_ADDR_3 +#            if defined(LED_DRIVER_ADDR_3)      IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -#        endif -#        ifdef LED_DRIVER_ADDR_4 +#                if defined(LED_DRIVER_ADDR_4)      IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); +#                endif +#            endif  #        endif -#    else -#        ifdef LED_DRIVER_ADDR_1 +} + +const led_matrix_driver_t led_matrix_driver = { +    .init          = init, +    .flush         = flush, +    .set_value     = IS31FL3731_set_value, +    .set_value_all = IS31FL3731_set_value_all, +}; + +#    elif defined(IS31FL3733) +static void flush(void) {      IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); -#        endif -#        ifdef LED_DRIVER_ADDR_2 +#        if defined(LED_DRIVER_ADDR_2)      IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); -#        endif -#        ifdef LED_DRIVER_ADDR_3 +#            if defined(LED_DRIVER_ADDR_3)      IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); -#        endif -#        ifdef LED_DRIVER_ADDR_4 +#                if defined(LED_DRIVER_ADDR_4)      IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); +#                endif +#            endif  #        endif -#    endif  }  const led_matrix_driver_t led_matrix_driver = { -    .init  = init, +    .init = init,      .flush = flush, -#    ifdef IS31FL3731 -    .set_value     = IS31FL3731_set_value, -    .set_value_all = IS31FL3731_set_value_all, -#    else      .set_value = IS31FL3733_set_value,      .set_value_all = IS31FL3733_set_value_all, -#    endif  }; - +#    endif  #endif | 
