282e916d86a5d353b7cbdfef3afad3c7b011eb14
- Author
- Joel Challis <git@zvecr.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md
2index d96199a3c70b60616cfbd4a049cef7ec2b99680a..dfd63503f2d5a49919648f11dce16903da283db6 100644
3--- a/docs/feature_led_matrix.md
4+++ b/docs/feature_led_matrix.md
5@@ -54,7 +54,7 @@ For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either
6 Define these arrays listing all the LEDs in your `<keyboard>.c`:
7
8 ```c
9-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
10+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
11 /* Refer to IS31 manual for these locations
12 * driver
13 * | LED address
14diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
15index d3d740c1b913c7167b3cbc733d7189367ad6f1fa..d07c02e18481548c0b87fdca60f7902707bd3f1b 100644
16--- a/docs/feature_rgb_matrix.md
17+++ b/docs/feature_rgb_matrix.md
18@@ -55,7 +55,7 @@ For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either
19 Define these arrays listing all the LEDs in your `<keyboard>.c`:
20
21 ```c
22-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
23+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
24 /* Refer to IS31 manual for these locations
25 * driver
26 * | R location
27@@ -140,7 +140,7 @@ Currently only 4 drivers are supported, but it would be trivial to support all 8
28 Define these arrays listing all the LEDs in your `<keyboard>.c`:
29
30 ```c
31-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
32+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
33 /* Refer to IS31 manual for these locations
34 * driver
35 * | R location
36@@ -218,7 +218,7 @@ Currently only 2 drivers are supported, but it would be trivial to support all 4
37 Define these arrays listing all the LEDs in your `<keyboard>.c`:
38
39 ```c
40-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
41+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
42 /* Refer to IS31 manual for these locations
43 * driver
44 * | R location
45@@ -319,7 +319,7 @@ Here is an example using 2 drivers.
46 Define these arrays listing all the LEDs in your `<keyboard>.c`:
47
48 ```c
49-const aw_led __flash g_aw_leds[DRIVER_LED_TOTAL] = {
50+const aw_led PROGMEM g_aw_leds[DRIVER_LED_TOTAL] = {
51 /* Each AW20216 channel is controlled by a register at some offset between 0x00
52 * and 0xD7 inclusive.
53 * See drivers/awinic/aw20216.h for the mapping between register offsets and
54diff --git a/docs/ja/feature_led_matrix.md b/docs/ja/feature_led_matrix.md
55index 6511b282493c9afe4611d6add403e61cfcebbb41..2b1979ec68baeedaca21ba35499219d822c68572 100644
56--- a/docs/ja/feature_led_matrix.md
57+++ b/docs/ja/feature_led_matrix.md
58@@ -52,7 +52,7 @@ I2C IS31FL3731 RGB コントローラを使ったアドレス指定可能な LED
59
60 `<keyboard>.c` に全ての LED を列挙する配列を定義します:
61
62- const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
63+ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
64 /* これらの位置については IS31 マニュアルを参照してください
65 * driver
66 * | LED address
67diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c
68index c608c0ab446bda9425f5f23117be25196d29a462..2c7ff8f0889878bd0e11b2855f656f98758c1075 100644
69--- a/drivers/led/aw20216.c
70+++ b/drivers/led/aw20216.c
71@@ -119,7 +119,8 @@ void AW20216_init(pin_t cs_pin, pin_t en_pin) {
72 }
73
74 void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
75- aw_led led = g_aw_leds[index];
76+ aw_led led;
77+ memcpy_P(&led, (&g_aw_leds[index]), sizeof(led));
78
79 g_pwm_buffer[led.driver][led.r] = red;
80 g_pwm_buffer[led.driver][led.g] = green;
81diff --git a/drivers/led/aw20216.h b/drivers/led/aw20216.h
82index 97ac6dc5bf0189e149588a56b221494d4d1515d1..0a17050fed818bbefd9f48e1cdf67c2da747f99c 100644
83--- a/drivers/led/aw20216.h
84+++ b/drivers/led/aw20216.h
85@@ -28,7 +28,7 @@ typedef struct aw_led {
86 uint8_t b;
87 } aw_led;
88
89-extern const aw_led __flash g_aw_leds[DRIVER_LED_TOTAL];
90+extern const aw_led PROGMEM g_aw_leds[DRIVER_LED_TOTAL];
91
92 void AW20216_init(pin_t cs_pin, pin_t en_pin);
93 void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
94diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c
95index 6307303437d56f40980ef43ae00567735d9d4f47..990e50cb606624802054313f422ed7c7321d7eae 100644
96--- a/drivers/led/ckled2001.c
97+++ b/drivers/led/ckled2001.c
98@@ -141,8 +141,9 @@ void CKLED2001_init(uint8_t addr) {
99 }
100
101 void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
102+ ckled2001_led led;
103 if (index >= 0 && index < DRIVER_LED_TOTAL) {
104- ckled2001_led led = g_ckled2001_leds[index];
105+ memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
106
107 g_pwm_buffer[led.driver][led.r] = red;
108 g_pwm_buffer[led.driver][led.g] = green;
109@@ -158,7 +159,8 @@ void CKLED2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
110 }
111
112 void CKLED2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
113- ckled2001_led led = g_ckled2001_leds[index];
114+ ckled2001_led led;
115+ memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
116
117 uint8_t control_register_r = led.r / 8;
118 uint8_t control_register_g = led.g / 8;
119diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h
120index efe399690a8453f111d58837e8a05fc1fbecac7d..1967961d205fd85296f1bc1b93e4c34ac86a8a99 100644
121--- a/drivers/led/ckled2001.h
122+++ b/drivers/led/ckled2001.h
123@@ -27,7 +27,7 @@ typedef struct ckled2001_led {
124 uint8_t b;
125 } __attribute__((packed)) ckled2001_led;
126
127-extern const ckled2001_led __flash g_ckled2001_leds[DRIVER_LED_TOTAL];
128+extern const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL];
129
130 void CKLED2001_init(uint8_t addr);
131 bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data);
132diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c
133index 9d28ea91d077bb9e8bd693cdb5f6dce025a594e7..f51e2e38aff8f221055e3f575cc644b7d97dcdb1 100644
134--- a/drivers/led/issi/is31fl3731-simple.c
135+++ b/drivers/led/issi/is31fl3731-simple.c
136@@ -193,8 +193,9 @@ void IS31FL3731_init(uint8_t addr) {
137 }
138
139 void IS31FL3731_set_value(int index, uint8_t value) {
140+ is31_led led;
141 if (index >= 0 && index < DRIVER_LED_TOTAL) {
142- is31_led led = g_is31_leds[index];
143+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
144
145 // Subtract 0x24 to get the second index of g_pwm_buffer
146 g_pwm_buffer[led.driver][led.v - 0x24] = value;
147@@ -209,7 +210,8 @@ void IS31FL3731_set_value_all(uint8_t value) {
148 }
149
150 void IS31FL3731_set_led_control_register(uint8_t index, bool value) {
151- is31_led led = g_is31_leds[index];
152+ is31_led led;
153+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
154
155 uint8_t control_register = (led.v - 0x24) / 8;
156 uint8_t bit_value = (led.v - 0x24) % 8;
157diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h
158index ecde31eed5ed1ed02554b85d6ccfeedb1dc88b72..ded94b0470dd18b88f736e99f0d044fcc5e8c425 100644
159--- a/drivers/led/issi/is31fl3731-simple.h
160+++ b/drivers/led/issi/is31fl3731-simple.h
161@@ -27,7 +27,7 @@ typedef struct is31_led {
162 uint8_t v;
163 } __attribute__((packed)) is31_led;
164
165-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
166+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
167
168 void IS31FL3731_init(uint8_t addr);
169 void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
170diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c
171index fbf24c30fbd4605dbd879b207029889465bb2dc1..e6190a6b908265aee29e79a517a334424f775f11 100644
172--- a/drivers/led/issi/is31fl3731.c
173+++ b/drivers/led/issi/is31fl3731.c
174@@ -181,8 +181,9 @@ void IS31FL3731_init(uint8_t addr) {
175 }
176
177 void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
178+ is31_led led;
179 if (index >= 0 && index < DRIVER_LED_TOTAL) {
180- is31_led led = g_is31_leds[index];
181+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
182
183 // Subtract 0x24 to get the second index of g_pwm_buffer
184 g_pwm_buffer[led.driver][led.r - 0x24] = red;
185@@ -199,7 +200,8 @@ void IS31FL3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
186 }
187
188 void IS31FL3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
189- is31_led led = g_is31_leds[index];
190+ is31_led led;
191+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
192
193 uint8_t control_register_r = (led.r - 0x24) / 8;
194 uint8_t control_register_g = (led.g - 0x24) / 8;
195diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h
196index 803ea3ea12fd60a8e9c7c42407c77b48cfd36dbc..6647119ebaeae15452b48cb5b8632c328b9c8c82 100644
197--- a/drivers/led/issi/is31fl3731.h
198+++ b/drivers/led/issi/is31fl3731.h
199@@ -28,7 +28,7 @@ typedef struct is31_led {
200 uint8_t b;
201 } __attribute__((packed)) is31_led;
202
203-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
204+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
205
206 void IS31FL3731_init(uint8_t addr);
207 void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
208diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c
209index 371010fd819b160bc8aa8b104f5c0f4402cd4847..696491d0706ad2692909e46142b0e7a7dd06f2be 100644
210--- a/drivers/led/issi/is31fl3733.c
211+++ b/drivers/led/issi/is31fl3733.c
212@@ -181,8 +181,9 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) {
213 }
214
215 void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
216+ is31_led led;
217 if (index >= 0 && index < DRIVER_LED_TOTAL) {
218- is31_led led = g_is31_leds[index];
219+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
220
221 g_pwm_buffer[led.driver][led.r] = red;
222 g_pwm_buffer[led.driver][led.g] = green;
223@@ -198,7 +199,8 @@ void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
224 }
225
226 void IS31FL3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
227- is31_led led = g_is31_leds[index];
228+ is31_led led;
229+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
230
231 uint8_t control_register_r = led.r / 8;
232 uint8_t control_register_g = led.g / 8;
233diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h
234index daa226b41a11173247a7af866b422cae0b1cd3a2..c5d62fed851725aa4b1876b84e7357295d8571be 100644
235--- a/drivers/led/issi/is31fl3733.h
236+++ b/drivers/led/issi/is31fl3733.h
237@@ -30,7 +30,7 @@ typedef struct is31_led {
238 uint8_t b;
239 } __attribute__((packed)) is31_led;
240
241-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
242+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
243
244 void IS31FL3733_init(uint8_t addr, uint8_t sync);
245 bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
246diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c
247index dcaabba2ef68899bb30f17c8a9925525889ed880..c9a871118d2b17cb2d93ead2022b097816b11042 100644
248--- a/drivers/led/issi/is31fl3736.c
249+++ b/drivers/led/issi/is31fl3736.c
250@@ -163,8 +163,9 @@ void IS31FL3736_init(uint8_t addr) {
251 }
252
253 void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
254+ is31_led led;
255 if (index >= 0 && index < DRIVER_LED_TOTAL) {
256- is31_led led = g_is31_leds[index];
257+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
258
259 g_pwm_buffer[led.driver][led.r] = red;
260 g_pwm_buffer[led.driver][led.g] = green;
261@@ -180,7 +181,8 @@ void IS31FL3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
262 }
263
264 void IS31FL3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
265- is31_led led = g_is31_leds[index];
266+ is31_led led;
267+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
268
269 // IS31FL3733
270 // The PWM register for a matrix position (0x00 to 0xBF) can be
271diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h
272index a30be90556aab53441a5f96134bceb43bc3acc58..9fbe1cc577cb927f0920f22946b707d5e0995a32 100644
273--- a/drivers/led/issi/is31fl3736.h
274+++ b/drivers/led/issi/is31fl3736.h
275@@ -39,7 +39,7 @@ typedef struct is31_led {
276 uint8_t b;
277 } __attribute__((packed)) is31_led;
278
279-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
280+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
281
282 void IS31FL3736_init(uint8_t addr);
283 void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
284diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c
285index 62862e0d41f594a721e6193f117f6d11f5e3087e..0722e18869f6ab6cb039d1a8a64994c7e5ccbd4c 100644
286--- a/drivers/led/issi/is31fl3737.c
287+++ b/drivers/led/issi/is31fl3737.c
288@@ -166,8 +166,9 @@ void IS31FL3737_init(uint8_t addr) {
289 }
290
291 void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
292+ is31_led led;
293 if (index >= 0 && index < DRIVER_LED_TOTAL) {
294- is31_led led = g_is31_leds[index];
295+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
296
297 g_pwm_buffer[led.driver][led.r] = red;
298 g_pwm_buffer[led.driver][led.g] = green;
299@@ -183,7 +184,8 @@ void IS31FL3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
300 }
301
302 void IS31FL3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
303- is31_led led = g_is31_leds[index];
304+ is31_led led;
305+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
306
307 uint8_t control_register_r = led.r / 8;
308 uint8_t control_register_g = led.g / 8;
309diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h
310index 97917f1d4ffce98e8f23028c3d2e7659db8c9ebd..31b1a222677266689040e0b3f11b46a97ca49696 100644
311--- a/drivers/led/issi/is31fl3737.h
312+++ b/drivers/led/issi/is31fl3737.h
313@@ -30,7 +30,7 @@ typedef struct is31_led {
314 uint8_t b;
315 } __attribute__((packed)) is31_led;
316
317-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
318+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
319
320 void IS31FL3737_init(uint8_t addr);
321 void IS31FL3737_write_register(uint8_t addr, uint8_t reg, uint8_t data);
322diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c
323index 5084f3b9fce6542972e243ffcb1214314e6f5c40..8d347a5e607aed72280df105df9e8452b6ec23bb 100644
324--- a/drivers/led/issi/is31fl3741.c
325+++ b/drivers/led/issi/is31fl3741.c
326@@ -174,8 +174,9 @@ void IS31FL3741_init(uint8_t addr) {
327 }
328
329 void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
330+ is31_led led;
331 if (index >= 0 && index < DRIVER_LED_TOTAL) {
332- is31_led led = g_is31_leds[index];
333+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
334
335 g_pwm_buffer[led.driver][led.r] = red;
336 g_pwm_buffer[led.driver][led.g] = green;
337@@ -191,7 +192,8 @@ void IS31FL3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
338 }
339
340 void IS31FL3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
341- is31_led led = g_is31_leds[index];
342+ is31_led led;
343+ memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
344
345 if (red) {
346 g_scaling_registers[led.driver][led.r] = 0xFF;
347diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h
348index 563022b9b0c493dbdcd18a29d7a5d0e6d38d0774..8154f8be702fa07b16d62242bbd99f10b1a5eab5 100644
349--- a/drivers/led/issi/is31fl3741.h
350+++ b/drivers/led/issi/is31fl3741.h
351@@ -30,7 +30,7 @@ typedef struct is31_led {
352 uint32_t b : 10;
353 } __attribute__((packed)) is31_led;
354
355-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
356+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
357
358 void IS31FL3741_init(uint8_t addr);
359 void IS31FL3741_write_register(uint8_t addr, uint8_t reg, uint8_t data);
360diff --git a/keyboards/canary/canary60rgb/canary60rgb.c b/keyboards/canary/canary60rgb/canary60rgb.c
361index b01af5f294c2f8a4d1684a3900da3b4cbc99a5e3..b37a88b32f0608c50937195c24e20715aa32182c 100644
362--- a/keyboards/canary/canary60rgb/canary60rgb.c
363+++ b/keyboards/canary/canary60rgb/canary60rgb.c
364@@ -16,7 +16,7 @@
365 #include "canary60rgb.h"
366
367 #ifdef RGB_MATRIX_ENABLE
368-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
369+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
370 { 0, J_14, K_14, L_14 },
371 { 0, J_13, K_13, L_13 },
372 { 0, J_12, K_12, L_12 },
373diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c
374index 8e3db70d07187f81add71bffd0a18f95a0698a01..66c40731ec8127cb64522b26c0c2864928cd3849 100644
375--- a/keyboards/clueboard/66_hotswap/gen1/gen1.c
376+++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c
377@@ -16,7 +16,7 @@
378 #include "gen1.h"
379
380 #ifdef LED_MATRIX_ENABLE
381-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
382+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
383 /* Refer to IS31 manual for these locations
384 * driver
385 * | LED address
386diff --git a/keyboards/dp60/dp60.c b/keyboards/dp60/dp60.c
387index 87543b2a1c41871adda33312e67fc0db60fe8d80..16aac75fa5ed21f32f7e448d731c61ed4f98839a 100644
388--- a/keyboards/dp60/dp60.c
389+++ b/keyboards/dp60/dp60.c
390@@ -17,7 +17,7 @@
391 #include "dp60.h"
392
393 #ifdef RGB_MATRIX_ENABLE
394-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
395+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
396 /* Refer to IS31 manual for these locations
397 * driver
398 * | R location
399diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c
400index 5f793ed85bff3c77cf2031262837f88d9ca9788a..86aef1bced99daf77cf43cfd2688db031d2539d8 100644
401--- a/keyboards/durgod/dgk6x/galaxy/galaxy.c
402+++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c
403@@ -18,7 +18,7 @@
404
405 #ifdef RGB_MATRIX_ENABLE
406
407-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
408+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
409 /* Refer to IS31 manual for these locations
410 * driver
411 * | R location
412diff --git a/keyboards/durgod/dgk6x/hades/hades.c b/keyboards/durgod/dgk6x/hades/hades.c
413index 3e235683f1c80524cc3317316571380b84f04b39..2f2f9e650f5872b15fdaddf438d15221b3a408a3 100644
414--- a/keyboards/durgod/dgk6x/hades/hades.c
415+++ b/keyboards/durgod/dgk6x/hades/hades.c
416@@ -19,7 +19,7 @@
417 #ifdef RGB_MATRIX_ENABLE
418
419
420-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
421+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
422 /* Refer to IS31 manual for these locations
423 * driver
424 * | R location
425diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus/venus.c
426index 3398acb19dfb52506ec56c856231d4db415b5df7..0b7fbd12f3d5d468a674ab5e667e6c516b011955 100644
427--- a/keyboards/durgod/dgk6x/venus/venus.c
428+++ b/keyboards/durgod/dgk6x/venus/venus.c
429@@ -18,7 +18,7 @@
430
431 #ifdef RGB_MATRIX_ENABLE
432
433-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
434+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
435 /* Refer to IS31 manual for these locations
436 * driver
437 * | R location
438diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c
439index a7fc3dbc5cecbf4e386f2600d4a188c1a83b3340..81f4846c2c80216cd73d849abcc7fb391bad6caf 100644
440--- a/keyboards/dztech/dz60rgb/dz60rgb.c
441+++ b/keyboards/dztech/dz60rgb/dz60rgb.c
442@@ -1,7 +1,7 @@
443 #include "dz60rgb.h"
444
445 #ifdef RGB_MATRIX_ENABLE
446-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
447+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
448 { 0, K_14, J_14, L_14 },
449 { 0, K_13, J_13, L_13 },
450 { 0, K_12, J_12, L_12 },
451diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
452index ab2441091284cdb4e70e7e7e66e6e7013bf83fea..0929ddbf477296536bad145a26c62b91454757ab 100644
453--- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
454+++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
455@@ -1,7 +1,7 @@
456 #include "dz60rgb_ansi.h"
457
458 #ifdef RGB_MATRIX_ENABLE
459-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
460+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
461 { 0, K_14, J_14, L_14 },
462 { 0, K_13, J_13, L_13 },
463 { 0, K_12, J_12, L_12 },
464diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
465index 455624471dfb7a9a774c850eceb29c813c11c4d7..83feb584562cac33d660032649a9d4bb087d7e16 100644
466--- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
467+++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
468@@ -1,7 +1,7 @@
469 #include "dz60rgb_wkl.h"
470
471 #ifdef RGB_MATRIX_ENABLE
472-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
473+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
474 { 0, H_15, G_15, I_15 },
475 { 0, K_14, J_14, L_14 },
476 { 0, K_13, J_13, L_13 },
477diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c
478index aabe41c31324a25f0ffd93c381b684400b963272..8caced800b4deef7fab998de3bf7e69942c90c6b 100644
479--- a/keyboards/dztech/dz65rgb/v1/v1.c
480+++ b/keyboards/dztech/dz65rgb/v1/v1.c
481@@ -16,7 +16,7 @@
482 #include "v1.h"
483
484 #ifdef RGB_MATRIX_ENABLE
485-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
486+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
487 { 0, C8_8, C7_8, C6_8 },
488 { 0, C9_8, C7_7, C6_7 },
489 { 0, C9_7, C8_7, C6_6 },
490diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c
491index dce167c73f550bd1a235ed8b362e447f4fcb091b..db8e968cc4d2e186321f76420eeba80c641269da 100644
492--- a/keyboards/dztech/dz65rgb/v2/v2.c
493+++ b/keyboards/dztech/dz65rgb/v2/v2.c
494@@ -16,7 +16,7 @@
495 #include "v2.h"
496
497 #ifdef RGB_MATRIX_ENABLE
498-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
499+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
500 { 0, C8_8, C7_8, C6_8 },
501 { 0, C9_8, C7_7, C6_7 },
502 { 0, C9_7, C8_7, C6_6 },
503diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c
504index c3719bfa518fa5288c18b4809a024f1917ef5985..18f87dc00b6f85920d5a38f44c9c89a512ceb750 100755
505--- a/keyboards/dztech/dz65rgb/v3/v3.c
506+++ b/keyboards/dztech/dz65rgb/v3/v3.c
507@@ -18,7 +18,7 @@
508
509 #ifdef RGB_MATRIX_ENABLE
510
511-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
512+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
513 {0, CS21_SW1, CS20_SW1, CS19_SW1},
514 {0, CS21_SW2, CS20_SW2, CS19_SW2},
515 {0, CS21_SW3, CS20_SW3, CS19_SW3},
516diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
517index 7af76cb62446f3e3886866e0e2000f20ccf096fe..49f690fa70a3a7607fdfceec1b8d76f6df32f500 100644
518--- a/keyboards/ergodox_ez/ergodox_ez.c
519+++ b/keyboards/ergodox_ez/ergodox_ez.c
520@@ -243,7 +243,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
521
522 #ifdef RGB_MATRIX_ENABLE
523 // clang-format off
524-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
525+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
526 /* driver
527 * | R location
528 * | | G location
529diff --git a/keyboards/ergodox_infinity/ergodox_infinity.c b/keyboards/ergodox_infinity/ergodox_infinity.c
530index 88028d3638967728227a796dcadb32ba0f6f2695..e6ac2c4559c6c95f7dca25c3e7813faca91944f3 100644
531--- a/keyboards/ergodox_infinity/ergodox_infinity.c
532+++ b/keyboards/ergodox_infinity/ergodox_infinity.c
533@@ -174,7 +174,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
534 #endif
535
536 #ifdef LED_MATRIX_ENABLE
537-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
538+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
539 // The numbers in the comments are the led numbers DXX on the PCB
540 /* Refer to IS31 manual for these locations
541 * driver
542diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c
543index ea0208706a321927b49ea387d668a76fa4f072c9..f972b78867c82d0c4c21e037698a8005db2fe1d4 100644
544--- a/keyboards/evyd13/atom47/rev5/rev5.c
545+++ b/keyboards/evyd13/atom47/rev5/rev5.c
546@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
547
548 #include "rev5.h"
549
550-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
551+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
552 /* Refer to IS31 manual for these locations
553 * driver
554 * | R location
555diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c
556index e0d313f835c44f47bb013c25bbc63602f88642c3..11d313e9a3bd85c4f6bd8d7c91441d756aac3ab5 100644
557--- a/keyboards/exclusive/e6_rgb/e6_rgb.c
558+++ b/keyboards/exclusive/e6_rgb/e6_rgb.c
559@@ -11,7 +11,7 @@ void matrix_init_kb(void) {
560 matrix_init_user();
561 }
562
563-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
564+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
565 /* Refer to IS31 manual for these locations
566 * driver
567 * | R location
568diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c
569index dcf1b4de070e33945f9b44f3cf0e1944ca31c9d4..c577bc9a8a5c4cc34691d383889e9a4367c5850c 100755
570--- a/keyboards/fallacy/indicators.c
571+++ b/keyboards/fallacy/indicators.c
572@@ -54,7 +54,7 @@ void set_fallacy_led(int index, bool state) {
573
574 /* define LED matrix
575 */
576-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
577+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
578 {0, C1_1},
579 {0, C2_1},
580 {0, C3_1},
581diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c
582index 532df7a531025d988bb81fbe6cc94297121bb1be..70865c461f4e81a9b6bac4c8b5a655a6a8e14bef 100644
583--- a/keyboards/geekboards/tester/tester.c
584+++ b/keyboards/geekboards/tester/tester.c
585@@ -1,5 +1,5 @@
586 #include "tester.h"
587-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
588+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
589 /* Refer to IS31 manual for these locations
590 * driver
591 * | R location
592diff --git a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c
593index b09af297b869ea0c8b875a74fde40e425d1ba502..52c9dfdf9913603ae7086d05cde89928541fbf3f 100644
594--- a/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c
595+++ b/keyboards/gmmk/pro/ansi/keymaps/mattgauf/ansi.c
596@@ -18,7 +18,7 @@
597 #include "ansi.h"
598
599 #ifdef RGB_MATRIX_ENABLE
600-led_config_t __flash g_led_config = {{
601+led_config_t PROGMEM g_led_config = {{
602 { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
603 { 8, 2, 9, 0, 10, 75, 1, 7 },
604 { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
605diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c
606index d2bb8011f1876f91d24cbf3243809baf37a02a72..f96eb7c320e6bdfd00e2751586e62a2f14607969 100644
607--- a/keyboards/hs60/v1/v1.c
608+++ b/keyboards/hs60/v1/v1.c
609@@ -91,7 +91,7 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
610
611 #ifdef HS60_ANSI
612
613-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
614+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
615 /* Refer to IS31 manual for these locations
616 * driver
617 * | R location
618@@ -199,7 +199,7 @@ led_config_t g_led_config = { {
619
620 #else
621
622-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
623+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
624 /* Refer to IS31 manual for these locations
625 * driver
626 * | R location
627diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c
628index 5b3c8df8225c909bfb5d50e38da2f21ce40c9186..c8e7d87846e76a8a33a307eb917726ee6cb2584f 100644
629--- a/keyboards/inett_studio/sqx/hotswap/hotswap.c
630+++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c
631@@ -20,7 +20,7 @@
632 #include "hotswap.h"
633
634 #ifdef RGB_MATRIX_ENABLE
635-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
636+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
637 /* Refer to IS31 manual for these locations
638 * driver
639 * | R location
640diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c
641index dd431a7f45f24fd142f58414533ccf17b0a769f4..06cfbd36542548576e3609ff05f52462a589fd64 100644
642--- a/keyboards/inett_studio/sqx/universal/universal.c
643+++ b/keyboards/inett_studio/sqx/universal/universal.c
644@@ -20,7 +20,7 @@
645 #include "universal.h"
646
647 #ifdef RGB_MATRIX_ENABLE
648-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
649+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
650 /* Refer to IS31 manual for these locations
651 * driver
652 * | R location
653diff --git a/keyboards/k_type/is31fl3733-dual.h b/keyboards/k_type/is31fl3733-dual.h
654index aab170a3fdd15cd94a26690be6b9c07a0c1304d7..ea45a7086758a86103bcb2888beefc6ea3f7b876 100644
655--- a/keyboards/k_type/is31fl3733-dual.h
656+++ b/keyboards/k_type/is31fl3733-dual.h
657@@ -28,7 +28,7 @@ typedef struct is31_led {
658 uint8_t b;
659 } __attribute__((packed)) is31_led;
660
661-extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL];
662+extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL];
663
664 void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync);
665 bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data);
666diff --git a/keyboards/k_type/k_type.c b/keyboards/k_type/k_type.c
667index 924862277f0fa2fd1b21b5eaf03dcbfccb877d36..29e7fa57b21919eb6722ca92d57c83406a9d33f0 100644
668--- a/keyboards/k_type/k_type.c
669+++ b/keyboards/k_type/k_type.c
670@@ -23,7 +23,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
671 #include "is31fl3733-dual.h"
672
673
674-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
675+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
676 { 0, B_1, A_1, C_1 },
677 { 0, B_2, A_2, C_2 },
678 { 0, B_3, A_3, C_3 },
679diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c
680index 17cf992146fcaa463d7df74e3bdf8669b0f27e0c..4353cae1bed4385e0b60f11410e54cb9624a6df7 100644
681--- a/keyboards/kbdfans/bella/rgb/rgb.c
682+++ b/keyboards/kbdfans/bella/rgb/rgb.c
683@@ -15,7 +15,7 @@
684 */
685 #include "rgb.h"
686 #ifdef RGB_MATRIX_ENABLE
687-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
688+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
689 {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */
690 {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */
691 {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */
692diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
693index 0c431b1543446df7a9a8782a67922c22898a02cf..072501045ac1b3a9c052fc42a37530dd9f3c325b 100644
694--- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
695+++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
696@@ -15,7 +15,7 @@
697 */
698 #include "rgb_iso.h"
699 #ifdef RGB_MATRIX_ENABLE
700-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
701+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
702 {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */
703 {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */
704 {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */
705diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c
706index 5682ee28949ac427c747a57a4d94a98cdb92c250..3e9c66f45723c0e9ebab777a01fb60118ac8a512 100644
707--- a/keyboards/kbdfans/boop65/rgb/rgb.c
708+++ b/keyboards/kbdfans/boop65/rgb/rgb.c
709@@ -18,7 +18,7 @@
710
711 #ifdef RGB_MATRIX_ENABLE
712
713-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
714+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
715 {0, CS21_SW1, CS20_SW1, CS19_SW1},
716 {0, CS21_SW2, CS20_SW2, CS19_SW2},
717 {0, CS21_SW3, CS20_SW3, CS19_SW3},
718diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
719index 53b57dc73d2607a3fed28c02396949610da9a9ac..f0036738711d1b44218c4fe3e1b97680bef4304a 100644
720--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
721+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
722@@ -16,7 +16,7 @@
723
724 #include "v1.h"
725 #ifdef RGB_MATRIX_ENABLE
726-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
727+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
728
729 {0, C8_8, C7_8, C6_8}, // LA17
730 {0, C9_8, C7_7, C6_7}, // LA16
731diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
732index 562b9c4543eeee9767112936ef06318021de0f1a..37972c2500be31ac71861eaa872f074f8e466646 100644
733--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
734+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
735@@ -16,7 +16,7 @@
736
737 #include "v2.h"
738 #ifdef RGB_MATRIX_ENABLE
739-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
740+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
741
742 {0, C8_8, C7_8, C6_8}, // LA17
743 {0, C9_8, C7_7, C6_7}, // LA16
744diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
745index 6e368a5c775a6b05f17ddc1278b7b34effc9738c..85806aff51aba16f39562664bfbe585dcb44af8b 100755
746--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
747+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
748@@ -18,7 +18,7 @@
749
750 #ifdef RGB_MATRIX_ENABLE
751
752-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
753+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
754 {0, CS21_SW1, CS20_SW1, CS19_SW1},
755 {0, CS21_SW2, CS20_SW2, CS19_SW2},
756 {0, CS21_SW3, CS20_SW3, CS19_SW3},
757diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c
758index 799803c6faa37baee4048096f142738d729139d1..03c0096c708538a7af3fc92cf712ea7bdfbbfd03 100644
759--- a/keyboards/kbdfans/kbdmini/kbdmini.c
760+++ b/keyboards/kbdfans/kbdmini/kbdmini.c
761@@ -1,6 +1,6 @@
762 #include "kbdmini.h"
763
764-const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
765+const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = {
766 { 0, B_9, A_9, C_9 }, //LA33
767 { 0, B_10, A_10, C_10 }, //LA37
768 { 0, B_11, A_11, C_11 }, //LA41