diff options
Diffstat (limited to 'quantum/rgb_matrix_drivers.c')
| -rw-r--r-- | quantum/rgb_matrix_drivers.c | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/quantum/rgb_matrix_drivers.c b/quantum/rgb_matrix_drivers.c index 2978e7bed..a4db86d19 100644 --- a/quantum/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix_drivers.c | |||
| @@ -41,7 +41,28 @@ static void init(void) { | |||
| 41 | IS31FL3731_init(DRIVER_ADDR_4); | 41 | IS31FL3731_init(DRIVER_ADDR_4); |
| 42 | # endif | 42 | # endif |
| 43 | # elif defined(IS31FL3733) | 43 | # elif defined(IS31FL3733) |
| 44 | IS31FL3733_init(DRIVER_ADDR_1, 0); | 44 | # ifndef DRIVER_SYNC_1 |
| 45 | # define DRIVER_SYNC_1 0 | ||
| 46 | # endif | ||
| 47 | IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1); | ||
| 48 | # if defined DRIVER_ADDR_2 && (DRIVER_ADDR_1 != DRIVER_ADDR_2) | ||
| 49 | # ifndef DRIVER_SYNC_2 | ||
| 50 | # define DRIVER_SYNC_2 0 | ||
| 51 | # endif | ||
| 52 | IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2); | ||
| 53 | # endif | ||
| 54 | # ifdef DRIVER_ADDR_3 | ||
| 55 | # ifndef DRIVER_SYNC_3 | ||
| 56 | # define DRIVER_SYNC_3 0 | ||
| 57 | # endif | ||
| 58 | IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3); | ||
| 59 | # endif | ||
| 60 | # ifdef DRIVER_ADDR_4 | ||
| 61 | # ifndef DRIVER_SYNC_4 | ||
| 62 | # define DRIVER_SYNC_4 0 | ||
| 63 | # endif | ||
| 64 | IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4); | ||
| 65 | # endif | ||
| 45 | # elif defined(IS31FL3737) | 66 | # elif defined(IS31FL3737) |
| 46 | IS31FL3737_init(DRIVER_ADDR_1); | 67 | IS31FL3737_init(DRIVER_ADDR_1); |
| 47 | # else | 68 | # else |
| @@ -74,7 +95,15 @@ static void init(void) { | |||
| 74 | # endif | 95 | # endif |
| 75 | # elif defined(IS31FL3733) | 96 | # elif defined(IS31FL3733) |
| 76 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); | 97 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); |
| 98 | # ifdef DRIVER_ADDR_2 | ||
| 77 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); | 99 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); |
| 100 | # endif | ||
| 101 | # ifdef DRIVER_ADDR_3 | ||
| 102 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2); | ||
| 103 | # endif | ||
| 104 | # ifdef DRIVER_ADDR_4 | ||
| 105 | IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3); | ||
| 106 | # endif | ||
| 78 | # elif defined(IS31FL3737) | 107 | # elif defined(IS31FL3737) |
| 79 | IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, DRIVER_ADDR_2); | 108 | IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, DRIVER_ADDR_2); |
| 80 | # else | 109 | # else |
| @@ -105,13 +134,21 @@ const rgb_matrix_driver_t rgb_matrix_driver = { | |||
| 105 | # elif defined(IS31FL3733) | 134 | # elif defined(IS31FL3733) |
| 106 | static void flush(void) { | 135 | static void flush(void) { |
| 107 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); | 136 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); |
| 137 | # ifdef DRIVER_ADDR_2 | ||
| 108 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1); | 138 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1); |
| 139 | # endif | ||
| 140 | # ifdef DRIVER_ADDR_3 | ||
| 141 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2); | ||
| 142 | # endif | ||
| 143 | # ifdef DRIVER_ADDR_4 | ||
| 144 | IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3); | ||
| 145 | # endif | ||
| 109 | } | 146 | } |
| 110 | 147 | ||
| 111 | const rgb_matrix_driver_t rgb_matrix_driver = { | 148 | const rgb_matrix_driver_t rgb_matrix_driver = { |
| 112 | .init = init, | 149 | .init = init, |
| 113 | .flush = flush, | 150 | .flush = flush, |
| 114 | .set_color = IS31FL3733_set_color, | 151 | .set_color = IS31FL3733_set_color, |
| 115 | .set_color_all = IS31FL3733_set_color_all, | 152 | .set_color_all = IS31FL3733_set_color_all, |
| 116 | }; | 153 | }; |
| 117 | # elif defined(IS31FL3737) | 154 | # elif defined(IS31FL3737) |
