aboutsummaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
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 1d46b2c50..efe0082dc 100644
--- a/quantum/led_matrix/led_matrix_drivers.c
+++ b/quantum/led_matrix/led_matrix_drivers.c
@@ -26,128 +26,123 @@
26 */ 26 */
27 27
28#if defined(IS31FL3731) || defined(IS31FL3733) 28#if defined(IS31FL3731) || defined(IS31FL3733)
29
30# include "i2c_master.h" 29# include "i2c_master.h"
31 30
32static void init(void) { 31static void init(void) {
33 i2c_init(); 32 i2c_init();
34# ifdef IS31FL3731 33
35# ifdef LED_DRIVER_ADDR_1 34# if defined(IS31FL3731)
36 IS31FL3731_init(LED_DRIVER_ADDR_1); 35 IS31FL3731_init(LED_DRIVER_ADDR_1);
37# endif 36# if defined(LED_DRIVER_ADDR_2)
38# ifdef LED_DRIVER_ADDR_2
39 IS31FL3731_init(LED_DRIVER_ADDR_2); 37 IS31FL3731_init(LED_DRIVER_ADDR_2);
40# endif 38# if defined(LED_DRIVER_ADDR_3)
41# ifdef LED_DRIVER_ADDR_3
42 IS31FL3731_init(LED_DRIVER_ADDR_3); 39 IS31FL3731_init(LED_DRIVER_ADDR_3);
43# endif 40# if defined(LED_DRIVER_ADDR_4)
44# ifdef LED_DRIVER_ADDR_4
45 IS31FL3731_init(LED_DRIVER_ADDR_4); 41 IS31FL3731_init(LED_DRIVER_ADDR_4);
46# endif 42# endif
47# else
48# ifdef LED_DRIVER_ADDR_1
49# ifndef LED_DRIVER_SYNC_1
50# define LED_DRIVER_SYNC_1 0
51# endif 43# endif
52 IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1);
53# endif 44# endif
54# ifdef LED_DRIVER_ADDR_2 45
55# ifndef LED_DRIVER_SYNC_2 46# elif defined(IS31FL3733)
47# if !defined(LED_DRIVER_SYNC_1)
48# define LED_DRIVER_SYNC_1 0
49# endif
50 IS31FL3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1);
51# if defined(LED_DRIVER_ADDR_2)
52# if !defined(LED_DRIVER_SYNC_2)
56# define LED_DRIVER_SYNC_2 0 53# define LED_DRIVER_SYNC_2 0
57# endif 54# endif
58 IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2); 55 IS31FL3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2);
59# endif 56# if defined(LED_DRIVER_ADDR_3)
60# ifdef LED_DRIVER_ADDR_3 57# if !defined(LED_DRIVER_SYNC_3)
61# ifndef LED_DRIVER_SYNC_3 58# define LED_DRIVER_SYNC_3 0
62# define LED_DRIVER_SYNC_3 0 59# endif
63# endif
64 IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3); 60 IS31FL3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3);
65# endif 61# if defined(LED_DRIVER_ADDR_4)
66# ifdef LED_DRIVER_ADDR_4 62# if !defined(LED_DRIVER_SYNC_4)
67# ifndef LED_DRIVER_SYNC_4 63# define LED_DRIVER_SYNC_4 0
68# define LED_DRIVER_SYNC_4 0 64# endif
69# endif
70 IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4); 65 IS31FL3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4);
66# endif
67# endif
71# endif 68# endif
72# endif 69# endif
73 70
74 for (int index = 0; index < DRIVER_LED_TOTAL; index++) { 71 for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
75# ifdef IS31FL3731 72# if defined(IS31FL3731)
76 IS31FL3731_set_led_control_register(index, true); 73 IS31FL3731_set_led_control_register(index, true);
77# else 74# elif defined(IS31FL3733)
78 IS31FL3733_set_led_control_register(index, true); 75 IS31FL3733_set_led_control_register(index, true);
79# endif 76# endif
80 } 77 }
78
81// This actually updates the LED drivers 79// This actually updates the LED drivers
82# ifdef IS31FL3731 80# if defined(IS31FL3731)
83# ifdef LED_DRIVER_ADDR_1
84 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0); 81 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
85# endif 82# if defined(LED_DRIVER_ADDR_2)
86# ifdef LED_DRIVER_ADDR_2
87 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1); 83 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
88# endif 84# if defined(LED_DRIVER_ADDR_3)
89# ifdef LED_DRIVER_ADDR_3
90 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2); 85 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
91# endif 86# if defined(LED_DRIVER_ADDR_4)
92# ifdef LED_DRIVER_ADDR_4
93 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3); 87 IS31FL3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
88# endif
89# endif
94# endif 90# endif
95# else 91
96# ifdef LED_DRIVER_ADDR_1 92# elif defined(IS31FL3733)
97 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0); 93 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
98# endif 94# if defined(LED_DRIVER_ADDR_2)
99# ifdef LED_DRIVER_ADDR_2
100 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1); 95 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
101# endif 96# if defined(LED_DRIVER_ADDR_3)
102# ifdef LED_DRIVER_ADDR_3
103 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2); 97 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
104# endif 98# if defined(LED_DRIVER_ADDR_4)
105# ifdef LED_DRIVER_ADDR_4
106 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3); 99 IS31FL3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
100# endif
101# endif
107# endif 102# endif
108# endif 103# endif
109} 104}
110 105
106# if defined(IS31FL3731)
111static void flush(void) { 107static void flush(void) {
112# ifdef IS31FL3731
113# ifdef LED_DRIVER_ADDR_1
114 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); 108 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
115# endif 109# if defined(LED_DRIVER_ADDR_2)
116# ifdef LED_DRIVER_ADDR_2
117 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); 110 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
118# endif 111# if defined(LED_DRIVER_ADDR_3)
119# ifdef LED_DRIVER_ADDR_3
120 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); 112 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
121# endif 113# if defined(LED_DRIVER_ADDR_4)
122# ifdef LED_DRIVER_ADDR_4
123 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); 114 IS31FL3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
115# endif
116# endif
124# endif 117# endif
125# else 118}
126# ifdef LED_DRIVER_ADDR_1 119
120const led_matrix_driver_t led_matrix_driver = {
121 .init = init,
122 .flush = flush,
123 .set_value = IS31FL3731_set_value,
124 .set_value_all = IS31FL3731_set_value_all,
125};
126
127# elif defined(IS31FL3733)
128static void flush(void) {
127 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0); 129 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
128# endif 130# if defined(LED_DRIVER_ADDR_2)
129# ifdef LED_DRIVER_ADDR_2
130 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1); 131 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
131# endif 132# if defined(LED_DRIVER_ADDR_3)
132# ifdef LED_DRIVER_ADDR_3
133 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2); 133 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
134# endif 134# if defined(LED_DRIVER_ADDR_4)
135# ifdef LED_DRIVER_ADDR_4
136 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3); 135 IS31FL3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
136# endif
137# endif
137# endif 138# endif
138# endif 139# endif
139} 140}
140 141
141const led_matrix_driver_t led_matrix_driver = { 142const led_matrix_driver_t led_matrix_driver = {
142 .init = init, 143 .init = init,
143 .flush = flush, 144 .flush = flush,
144# ifdef IS31FL3731 145 .set_value = IS31FL3733_set_value,
145 .set_value = IS31FL3731_set_value,
146 .set_value_all = IS31FL3731_set_value_all,
147# else
148 .set_value = IS31FL3733_set_value,
149 .set_value_all = IS31FL3733_set_value_all, 146 .set_value_all = IS31FL3733_set_value_all,
150# endif
151}; 147};
152
153#endif 148#endif
diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c
index 2cec162e2..4335088eb 100644
--- a/quantum/rgb_matrix/rgb_matrix_drivers.c
+++ b/quantum/rgb_matrix/rgb_matrix_drivers.c
@@ -24,110 +24,126 @@
24 */ 24 */
25 25
26#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741) 26#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3737) || defined(IS31FL3741)
27
28# include "i2c_master.h" 27# include "i2c_master.h"
29 28
29// TODO: Remove this at some later date
30# if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2)
31# if DRIVER_ADDR_1 == DRIVER_ADDR_2
32# 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"
33# endif
34# endif
35
30static void init(void) { 36static void init(void) {
31 i2c_init(); 37 i2c_init();
32# ifdef IS31FL3731 38
39# if defined(IS31FL3731)
33 IS31FL3731_init(DRIVER_ADDR_1); 40 IS31FL3731_init(DRIVER_ADDR_1);
34# ifdef DRIVER_ADDR_2 41# if defined(DRIVER_ADDR_2)
35 IS31FL3731_init(DRIVER_ADDR_2); 42 IS31FL3731_init(DRIVER_ADDR_2);
36# endif 43# if defined(DRIVER_ADDR_3)
37# ifdef DRIVER_ADDR_3
38 IS31FL3731_init(DRIVER_ADDR_3); 44 IS31FL3731_init(DRIVER_ADDR_3);
39# endif 45# if defined(DRIVER_ADDR_4)
40# ifdef DRIVER_ADDR_4
41 IS31FL3731_init(DRIVER_ADDR_4); 46 IS31FL3731_init(DRIVER_ADDR_4);
47# endif
48# endif
42# endif 49# endif
50
43# elif defined(IS31FL3733) 51# elif defined(IS31FL3733)
44# ifndef DRIVER_SYNC_1 52# if !defined(DRIVER_SYNC_1)
45# define DRIVER_SYNC_1 0 53# define DRIVER_SYNC_1 0
46# endif 54# endif
47 IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1); 55 IS31FL3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1);
48# if defined DRIVER_ADDR_2 && (DRIVER_ADDR_1 != DRIVER_ADDR_2) 56# if defined(DRIVER_ADDR_2)
49# ifndef DRIVER_SYNC_2 57# if !defined(DRIVER_SYNC_2)
50# define DRIVER_SYNC_2 0 58# define DRIVER_SYNC_2 0
51# endif 59# endif
52 IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2); 60 IS31FL3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2);
53# endif 61# if defined(DRIVER_ADDR_3)
54# ifdef DRIVER_ADDR_3 62# if !defined(DRIVER_SYNC_3)
55# ifndef DRIVER_SYNC_3 63# define DRIVER_SYNC_3 0
56# define DRIVER_SYNC_3 0 64# endif
57# endif
58 IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3); 65 IS31FL3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3);
59# endif 66# if defined(DRIVER_ADDR_4)
60# ifdef DRIVER_ADDR_4 67# if !defined(DRIVER_SYNC_4)
61# ifndef DRIVER_SYNC_4 68# define DRIVER_SYNC_4 0
62# define DRIVER_SYNC_4 0 69# endif
63# endif
64 IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4); 70 IS31FL3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4);
71# endif
72# endif
65# endif 73# endif
74
66# elif defined(IS31FL3737) 75# elif defined(IS31FL3737)
67 IS31FL3737_init(DRIVER_ADDR_1); 76 IS31FL3737_init(DRIVER_ADDR_1);
68# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility 77# if defined(DRIVER_ADDR_2)
69 IS31FL3737_init(DRIVER_ADDR_2); 78 IS31FL3737_init(DRIVER_ADDR_2);
70# endif 79# endif
71# else 80
81# elif defined(IS31FL3741)
72 IS31FL3741_init(DRIVER_ADDR_1); 82 IS31FL3741_init(DRIVER_ADDR_1);
73# endif 83# endif
84
74 for (int index = 0; index < DRIVER_LED_TOTAL; index++) { 85 for (int index = 0; index < DRIVER_LED_TOTAL; index++) {
75 bool enabled = true; 86 bool enabled = true;
87
76 // This only caches it for later 88 // This only caches it for later
77# ifdef IS31FL3731 89# if defined(IS31FL3731)
78 IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); 90 IS31FL3731_set_led_control_register(index, enabled, enabled, enabled);
79# elif defined(IS31FL3733) 91# elif defined(IS31FL3733)
80 IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); 92 IS31FL3733_set_led_control_register(index, enabled, enabled, enabled);
81# elif defined(IS31FL3737) 93# elif defined(IS31FL3737)
82 IS31FL3737_set_led_control_register(index, enabled, enabled, enabled); 94 IS31FL3737_set_led_control_register(index, enabled, enabled, enabled);
83# else 95# elif defined(IS31FL3741)
84 IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); 96 IS31FL3741_set_led_control_register(index, enabled, enabled, enabled);
85# endif 97# endif
86 } 98 }
99
87 // This actually updates the LED drivers 100 // This actually updates the LED drivers
88# ifdef IS31FL3731 101# if defined(IS31FL3731)
89 IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); 102 IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0);
90# ifdef DRIVER_ADDR_2 103# if defined(DRIVER_ADDR_2)
91 IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1); 104 IS31FL3731_update_led_control_registers(DRIVER_ADDR_2, 1);
92# endif 105# if defined(DRIVER_ADDR_3)
93# ifdef DRIVER_ADDR_3
94 IS31FL3731_update_led_control_registers(DRIVER_ADDR_3, 2); 106 IS31FL3731_update_led_control_registers(DRIVER_ADDR_3, 2);
95# endif 107# if defined(DRIVER_ADDR_4)
96# ifdef DRIVER_ADDR_4
97 IS31FL3731_update_led_control_registers(DRIVER_ADDR_4, 3); 108 IS31FL3731_update_led_control_registers(DRIVER_ADDR_4, 3);
109# endif
110# endif
98# endif 111# endif
112
99# elif defined(IS31FL3733) 113# elif defined(IS31FL3733)
100 IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0); 114 IS31FL3733_update_led_control_registers(DRIVER_ADDR_1, 0);
101# ifdef DRIVER_ADDR_2 115# if defined(DRIVER_ADDR_2)
102 IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1); 116 IS31FL3733_update_led_control_registers(DRIVER_ADDR_2, 1);
103# endif 117# if defined(DRIVER_ADDR_3)
104# ifdef DRIVER_ADDR_3
105 IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2); 118 IS31FL3733_update_led_control_registers(DRIVER_ADDR_3, 2);
106# endif 119# if defined(DRIVER_ADDR_4)
107# ifdef DRIVER_ADDR_4
108 IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3); 120 IS31FL3733_update_led_control_registers(DRIVER_ADDR_4, 3);
121# endif
122# endif
109# endif 123# endif
124
110# elif defined(IS31FL3737) 125# elif defined(IS31FL3737)
111 IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, 0); 126 IS31FL3737_update_led_control_registers(DRIVER_ADDR_1, 0);
112# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility 127# if defined(DRIVER_ADDR_2)
113 IS31FL3737_update_led_control_registers(DRIVER_ADDR_2, 1); 128 IS31FL3737_update_led_control_registers(DRIVER_ADDR_2, 1);
114# endif 129# endif
115# else 130
131# elif defined(IS31FL3741)
116 IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); 132 IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0);
117# endif 133# endif
118} 134}
119 135
120# ifdef IS31FL3731 136# if defined(IS31FL3731)
121static void flush(void) { 137static void flush(void) {
122 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0); 138 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
123# ifdef DRIVER_ADDR_2 139# if defined(DRIVER_ADDR_2)
124 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1); 140 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
125# endif 141# if defined(DRIVER_ADDR_3)
126# ifdef DRIVER_ADDR_3
127 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_3, 2); 142 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_3, 2);
128# endif 143# if defined(DRIVER_ADDR_4)
129# ifdef DRIVER_ADDR_4
130 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_4, 3); 144 IS31FL3731_update_pwm_buffers(DRIVER_ADDR_4, 3);
145# endif
146# endif
131# endif 147# endif
132} 148}
133 149
@@ -137,17 +153,18 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
137 .set_color = IS31FL3731_set_color, 153 .set_color = IS31FL3731_set_color,
138 .set_color_all = IS31FL3731_set_color_all, 154 .set_color_all = IS31FL3731_set_color_all,
139}; 155};
156
140# elif defined(IS31FL3733) 157# elif defined(IS31FL3733)
141static void flush(void) { 158static void flush(void) {
142 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0); 159 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
143# ifdef DRIVER_ADDR_2 160# if defined(DRIVER_ADDR_2)
144 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1); 161 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
145# endif 162# if defined(DRIVER_ADDR_3)
146# ifdef DRIVER_ADDR_3
147 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2); 163 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_3, 2);
148# endif 164# if defined(DRIVER_ADDR_4)
149# ifdef DRIVER_ADDR_4
150 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3); 165 IS31FL3733_update_pwm_buffers(DRIVER_ADDR_4, 3);
166# endif
167# endif
151# endif 168# endif
152} 169}
153 170
@@ -157,10 +174,11 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
157 .set_color = IS31FL3733_set_color, 174 .set_color = IS31FL3733_set_color,
158 .set_color_all = IS31FL3733_set_color_all, 175 .set_color_all = IS31FL3733_set_color_all,
159}; 176};
177
160# elif defined(IS31FL3737) 178# elif defined(IS31FL3737)
161static void flush(void) { 179static void flush(void) {
162 IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, 0); 180 IS31FL3737_update_pwm_buffers(DRIVER_ADDR_1, 0);
163# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility 181# if defined(DRIVER_ADDR_2)
164 IS31FL3737_update_pwm_buffers(DRIVER_ADDR_2, 1); 182 IS31FL3737_update_pwm_buffers(DRIVER_ADDR_2, 1);
165# endif 183# endif
166} 184}
@@ -171,10 +189,11 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
171 .set_color = IS31FL3737_set_color, 189 .set_color = IS31FL3737_set_color,
172 .set_color_all = IS31FL3737_set_color_all, 190 .set_color_all = IS31FL3737_set_color_all,
173}; 191};
174# else 192
193# elif defined(IS31FL3741)
175static void flush(void) { 194static void flush(void) {
176 IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0); 195 IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
177# if defined(DRIVER_ADDR_2) && (DRIVER_ADDR_2 != DRIVER_ADDR_1) // provides backward compatibility 196# if defined(DRIVER_ADDR_2)
178 IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1); 197 IS31FL3741_update_pwm_buffers(DRIVER_ADDR_2, 1);
179# endif 198# endif
180} 199}
@@ -189,17 +208,19 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
189 208
190#elif defined(AW20216) 209#elif defined(AW20216)
191# include "spi_master.h" 210# include "spi_master.h"
211
192static void init(void) { 212static void init(void) {
193 spi_init(); 213 spi_init();
214
194 AW20216_init(DRIVER_1_CS, DRIVER_1_EN); 215 AW20216_init(DRIVER_1_CS, DRIVER_1_EN);
195# ifdef DRIVER_2_CS 216# if defined(DRIVER_2_CS)
196 AW20216_init(DRIVER_2_CS, DRIVER_2_EN); 217 AW20216_init(DRIVER_2_CS, DRIVER_2_EN);
197# endif 218# endif
198} 219}
199 220
200static void flush(void) { 221static void flush(void) {
201 AW20216_update_pwm_buffers(DRIVER_1_CS, 0); 222 AW20216_update_pwm_buffers(DRIVER_1_CS, 0);
202# ifdef DRIVER_2_CS 223# if defined(DRIVER_2_CS)
203 AW20216_update_pwm_buffers(DRIVER_2_CS, 1); 224 AW20216_update_pwm_buffers(DRIVER_2_CS, 1);
204# endif 225# endif
205} 226}