summary refs log tree commit diff
path: root/quantum
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
parenta7810db7ba35c5354708891ad3da317937e953d3 (diff)
Clean up LED/RGB Matrix driver config (#14760)
Diffstat (limited to 'quantum')
-rw-r--r--quantum/led_matrix/led_matrix_drivers.c135
-rw-r--r--quantum/rgb_matrix/rgb_matrix_drivers.c127
2 files changed, 139 insertions, 123 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
diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c
index 2cec162e22..4335088eb8 100644
--- a/quantum/rgb_matrix/rgb_matrix_drivers.c
+++ b/quantum/rgb_matrix/rgb_matrix_drivers.c
@@ -24,110 +24,126 @@
  */
 
 #if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741)
-
 #    include "i2c_master.h"
 
+// TODO: Remove this at some later date
+#    if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2)
+#        if DRIVER_ADDR_1 == DRIVER_ADDR_2
+#            error "Setting DRIVER_ADDR_2 == DRIVER_ADDR_1 is obsolete. If you are only using one ISSI driver, set DRIVER_COUNT to 1 and remove DRIVER_ADDR_2"
+#        endif
+#    endif
+
 static void init(void) {
     i2c_init();
-#    ifdef IS31FL3731
+
+#    if defined(IS31FL3731)
     IS31FL3731_init(DRIVER_ADDR_1);
-#        ifdef DRIVER_ADDR_2
+#        if defined(DRIVER_ADDR_2)
     IS31FL3731_init(DRIVER_ADDR_2);
-#        endif
-#        ifdef DRIVER_ADDR_3
+#            if defined(DRIVER_ADDR_3)
     IS31FL3731_init(DRIVER_ADDR_3);
-#        endif
-#        ifdef DRIVER_ADDR_4
+#                if defined(DRIVER_ADDR_4)
     IS31FL3731_init(DRIVER_ADDR_4);
+#                endif
+#            endif
 #        endif
+
 #    elif defined(IS31FL3733)
-#        ifndef DRIVER_SYNC_1
+#        if !defined(DRIVER_SYNC_1)
 #            define DRIVER_SYNC_1 0
 #        endif
     IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1);
-#        if defined DRIVER_ADDR_2 && (DRIVER_ADDR_1 != DRIVER_ADDR_2)
-#            ifndef DRIVER_SYNC_2
+#        if defined(DRIVER_ADDR_2)
+#            if !defined(DRIVER_SYNC_2)
 #                define DRIVER_SYNC_2 0
 #            endif
     IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2);
-#        endif
-#        ifdef DRIVER_ADDR_3
-#            ifndef DRIVER_SYNC_3
-#                define DRIVER_SYNC_3 0
-#            endif
+#            if defined(DRIVER_ADDR_3)
+#                if !defined(DRIVER_SYNC_3)
+#                    define DRIVER_SYNC_3 0
+#                endif
     IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3);
-#        endif
-#        ifdef DRIVER_ADDR_4
-#            ifndef DRIVER_SYNC_4
-#                define DRIVER_SYNC_4 0
-#            endif
+#                if defined(DRIVER_ADDR_4)
+#                    if !defined(DRIVER_SYNC_4)
+#                        define DRIVER_SYNC_4 0
+#                    endif
     IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4);
+#                endif
+#            endif
 #        endif
+
 #    elif defined(IS31FL3737)
     IS31FL3737_init(DRIVER_ADDR_1);
-#        if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1)  // provides backward compatibility
+#        if defined(DRIVER_ADDR_2)
     IS31FL3737_init(DRIVER_ADDR_2);
 #        endif
-#    else
+
+#    elif defined(IS31FL3741)
     IS31FL3741_init(DRIVER_ADDR_1);
 #    endif
+
     for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
         bool enabled = true;
+
         // This only caches it for later
-#    ifdef IS31FL3731
+#    if defined(IS31FL3731)
         IS31FL3731_set_led_control_register(index, enabled, enabled, enabled);
 #    elif defined(IS31FL3733)
         IS31FL3733_set_led_control_register(index, enabled, enabled, enabled);
 #    elif defined(IS31FL3737)
         IS31FL3737_set_led_control_register(index, enabled, enabled, enabled);
-#    else
+#    elif defined(IS31FL3741)
         IS31FL3741_set_led_control_register(index, enabled, enabled, enabled);
 #    endif
     }
+
     // This actually updates the LED drivers
-#    ifdef IS31FL3731
+#    if defined(IS31FL3731)
     IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0);
-#        ifdef DRIVER_ADDR_2
+#        if defined(DRIVER_ADDR_2)
     IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1);
-#        endif
-#        ifdef DRIVER_ADDR_3
+#            if defined(DRIVER_ADDR_3)
     IS31FL3731_update_led_control_registers(DRIVER_ADDR_3, 2);
-#        endif
-#        ifdef DRIVER_ADDR_4
+#                if defined(DRIVER_ADDR_4)
     IS31FL3731_update_led_control_registers(DRIVER_ADDR_4, 3);
+#                endif
+#            endif
 #        endif
+
 #    elif defined(IS31FL3733)
     IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0);
-#        ifdef DRIVER_ADDR_2
+#        if defined(DRIVER_ADDR_2)
     IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1);
-#        endif
-#        ifdef DRIVER_ADDR_3
+#            if defined(DRIVER_ADDR_3)
     IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2);
-#        endif
-#        ifdef DRIVER_ADDR_4
+#                if defined(DRIVER_ADDR_4)
     IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3);
+#                endif
+#            endif
 #        endif
+
 #    elif defined(IS31FL3737)
     IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, 0);
-#        if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1)  // provides backward compatibility
+#        if defined(DRIVER_ADDR_2)
     IS31FL3737_update_led_control_registers(DRIVER_ADDR_2, 1);
 #        endif
-#    else
+
+#    elif defined(IS31FL3741)
     IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0);
 #    endif
 }
 
-#    ifdef IS31FL3731
+#    if defined(IS31FL3731)
 static void flush(void) {
     IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#        ifdef DRIVER_ADDR_2
+#        if defined(DRIVER_ADDR_2)
     IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
-#        endif
-#        ifdef DRIVER_ADDR_3
+#            if defined(DRIVER_ADDR_3)
     IS31FL3731_update_pwm_buffers(DRIVER_ADDR_3, 2);
-#        endif
-#        ifdef DRIVER_ADDR_4
+#                if defined(DRIVER_ADDR_4)
     IS31FL3731_update_pwm_buffers(DRIVER_ADDR_4, 3);
+#                endif
+#            endif
 #        endif
 }
 
@@ -137,17 +153,18 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
     .set_color     = IS31FL3731_set_color,
     .set_color_all = IS31FL3731_set_color_all,
 };
+
 #    elif defined(IS31FL3733)
 static void flush(void) {
     IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#        ifdef DRIVER_ADDR_2
+#        if defined(DRIVER_ADDR_2)
     IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
-#        endif
-#        ifdef DRIVER_ADDR_3
+#            if defined(DRIVER_ADDR_3)
     IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2);
-#        endif
-#        ifdef DRIVER_ADDR_4
+#                if defined(DRIVER_ADDR_4)
     IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3);
+#                endif
+#            endif
 #        endif
 }
 
@@ -157,10 +174,11 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
     .set_color = IS31FL3733_set_color,
     .set_color_all = IS31FL3733_set_color_all,
 };
+
 #    elif defined(IS31FL3737)
 static void flush(void) {
     IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#        if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1)  // provides backward compatibility
+#        if defined(DRIVER_ADDR_2)
     IS31FL3737_update_pwm_buffers(DRIVER_ADDR_2, 1);
 #        endif
 }
@@ -171,10 +189,11 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
     .set_color = IS31FL3737_set_color,
     .set_color_all = IS31FL3737_set_color_all,
 };
-#    else
+
+#    elif defined(IS31FL3741)
 static void flush(void) {
     IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#        if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1)  // provides backward compatibility
+#        if defined(DRIVER_ADDR_2)
     IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1);
 #        endif
 }
@@ -189,17 +208,19 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
 
 #elif defined(AW20216)
 #    include "spi_master.h"
+
 static void init(void) {
     spi_init();
+
     AW20216_init(DRIVER_1_CS, DRIVER_1_EN);
-#    ifdef DRIVER_2_CS
+#    if defined(DRIVER_2_CS)
     AW20216_init(DRIVER_2_CS, DRIVER_2_EN);
 #    endif
 }
 
 static void flush(void) {
     AW20216_update_pwm_buffers(DRIVER_1_CS, 0);
-#    ifdef DRIVER_2_CS
+#    if defined(DRIVER_2_CS)
     AW20216_update_pwm_buffers(DRIVER_2_CS, 1);
 #    endif
 }