summary refs log tree commit diff
path: root/quantum/led_matrix
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2021-10-11 10:57:49 +1100
committerGitHub <noreply@github.com>2021-10-10 16:57:49 -0700
commitb487e10753c26204146ef8f1e71d18ff503675d2 (patch)
treee207c357d2b6733ff9c0ea64e78b14498051976a /quantum/led_matrix
parenta7810db7ba35c5354708891ad3da317937e953d3 (diff)
Clean up LED/RGB Matrix driver config (#14760)
Diffstat (limited to 'quantum/led_matrix')
-rw-r--r--quantum/led_matrix/led_matrix_drivers.c135
1 files changed, 65 insertions, 70 deletions
diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c
index 1d46b2c506..efe0082dcb 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,
-    .flush = flush,
-#    ifdef IS31FL3731
-    .set_value     = IS31FL3731_set_value,
-    .set_value_all = IS31FL3731_set_value_all,
-#    else
-    .set_value = IS31FL3733_set_value,
+    .init          = init,
+    .flush         = flush,
+    .set_value     = IS31FL3733_set_value,
     .set_value_all = IS31FL3733_set_value_all,
-#    endif
 };
-
 #endif