summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2024-03-03 04:16:47 +1100
committerGitHub <noreply@github.com>2024-03-02 17:16:47 +0000
commit569b0c70beceb1bbd2b2c5e9cc4f0ff9209995f3 (patch)
treeb2b280071523c452ca0771df3977e79de1165891
parent3bf1ce5cf80facc4136a8a2100e050d52cd3d029 (diff)
WS2812 PWM: prefix for DMA defines (#23111)
* WS2812 PWM: prefix for DMA defines * Add backward compatibility defines
-rw-r--r--docs/ws2812_driver.md6
-rw-r--r--keyboards/acheron/apollo/87h/delta/config.h4
-rw-r--r--keyboards/acheron/apollo/87htsc/config.h4
-rw-r--r--keyboards/acheron/apollo/88htsc/config.h4
-rw-r--r--keyboards/acheron/athena/alpha/config.h4
-rw-r--r--keyboards/acheron/athena/beta/config.h4
-rw-r--r--keyboards/acheron/shark/beta/config.h4
-rw-r--r--keyboards/acheron/themis/87h/config.h4
-rw-r--r--keyboards/acheron/themis/87htsc/config.h4
-rw-r--r--keyboards/acheron/themis/88htsc/config.h4
-rwxr-xr-xkeyboards/artifact/lvl/rev_hs01/config.h4
-rw-r--r--keyboards/aurora65/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/3x5/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h4
-rw-r--r--keyboards/bastardkb/scylla/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/scylla/v2/stemcell/config.h4
-rw-r--r--keyboards/bastardkb/skeletyl/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/skeletyl/v2/stemcell/config.h4
-rw-r--r--keyboards/bastardkb/tbkmini/blackpill/config.h4
-rw-r--r--keyboards/bastardkb/tbkmini/v2/stemcell/config.h4
-rw-r--r--keyboards/bestway/config.h4
-rw-r--r--keyboards/black_hellebore/config.h4
-rw-r--r--keyboards/crypt_macro/config.h4
-rw-r--r--keyboards/custommk/evo70_r2/config.h4
-rw-r--r--keyboards/ebastler/isometria_75/rev1/config.h4
-rw-r--r--keyboards/edi/hardlight/mk2/config.h4
-rw-r--r--keyboards/geekboards/macropad_v2/config.h4
-rw-r--r--keyboards/handwired/cyberstar/config.h4
-rw-r--r--keyboards/handwired/macroboard/config.h4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h4
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h4
-rw-r--r--keyboards/jacky_studio/piggy60/rev2/config.h4
-rw-r--r--keyboards/kabedon/kabedon98e/config.h4
-rw-r--r--keyboards/kprepublic/bm16a/v2/config.h4
-rw-r--r--keyboards/linworks/whale75/config.h4
-rw-r--r--keyboards/loki65/config.h4
-rw-r--r--keyboards/mariorion_v25/prod/config.h6
-rw-r--r--keyboards/mariorion_v25/proto/config.h6
-rw-r--r--keyboards/meetlab/kalice/config.h4
-rw-r--r--keyboards/meetlab/rena/config.h4
-rw-r--r--keyboards/misterknife/knife66/config.h4
-rw-r--r--keyboards/misterknife/knife66_iso/config.h4
-rw-r--r--keyboards/mode/m256wh/config.h4
-rw-r--r--keyboards/mode/m256ws/config.h4
-rw-r--r--keyboards/mode/m60h/config.h4
-rw-r--r--keyboards/mode/m60h_f/config.h4
-rw-r--r--keyboards/mode/m60s/config.h4
-rw-r--r--keyboards/mwstudio/mmk_3/config.h4
-rw-r--r--keyboards/mwstudio/mw660/config.h4
-rw-r--r--keyboards/novelkeys/nk20/config.h4
-rwxr-xr-xkeyboards/novelkeys/nk65b/config.h4
-rw-r--r--keyboards/novelkeys/nk87b/config.h4
-rw-r--r--keyboards/novelkeys/nk_plus/config.h4
-rw-r--r--keyboards/planck/ez/config.h4
-rw-r--r--keyboards/planck/rev6/config.h4
-rw-r--r--keyboards/planck/rev6_drop/config.h4
-rw-r--r--keyboards/planck/rev7/config.h4
-rw-r--r--keyboards/preonic/rev3/config.h4
-rw-r--r--keyboards/preonic/rev3_drop/config.h4
-rw-r--r--keyboards/protozoa/p01/config.h4
-rw-r--r--keyboards/rgbkb/mun/config.h4
-rw-r--r--keyboards/rgbkb/sol3/config.h4
-rw-r--r--keyboards/skyloong/dt40/config.h4
-rw-r--r--keyboards/smithrune/iron165r2/f411/config.h4
-rw-r--r--keyboards/smithrune/magnus/m75h/config.h4
-rw-r--r--keyboards/smithrune/magnus/m75s/config.h4
-rwxr-xr-xkeyboards/spaceholdings/nebula68/config.h4
-rw-r--r--keyboards/splitkb/kyria/rev1/config.h6
-rw-r--r--keyboards/splitkb/kyria/rev2/config.h6
-rw-r--r--keyboards/tg67/config.h4
-rw-r--r--keyboards/tkw/grandiceps/config.h4
-rw-r--r--keyboards/tkw/stoutgat/v2/config.h4
-rw-r--r--keyboards/tzarc/djinn/config.h6
-rw-r--r--keyboards/tzarc/ghoul/rev1/stm32/config.h4
-rw-r--r--keyboards/viendi8l/config.h4
-rw-r--r--keyboards/vinhcatba/uncertainty/config.h4
-rw-r--r--keyboards/xelus/ninjin/config.h4
-rw-r--r--keyboards/xelus/valor/rev2/config.h6
-rw-r--r--keyboards/yandrstudio/buff67v3/config.h4
-rw-r--r--keyboards/yandrstudio/eau_r2/config.h4
-rw-r--r--keyboards/yandrstudio/nightstar75/config.h4
-rw-r--r--keyboards/yandrstudio/nz64/config.h4
-rw-r--r--keyboards/yandrstudio/nz67v2/config.h4
-rw-r--r--keyboards/yandrstudio/tg67/config.h4
-rw-r--r--keyboards/yandrstudio/yr6095/config.h4
-rw-r--r--keyboards/yandrstudio/yr80/config.h4
-rw-r--r--keyboards/yanghu/unicorne/config.h4
-rw-r--r--keyboards/ymdk/id75/config.h4
-rw-r--r--keyboards/ymdk/ymd75/rev4/iso/config.h4
-rw-r--r--keyboards/zvecr/split_blackpill/config.h4
-rw-r--r--keyboards/zvecr/zv48/config.h4
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/config.h8
-rw-r--r--platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c18
-rw-r--r--platforms/chibios/drivers/ws2812_pwm.c60
98 files changed, 246 insertions, 234 deletions
diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md
index 244d39dbe0..006529cc8a 100644
--- a/docs/ws2812_driver.md
+++ b/docs/ws2812_driver.md
@@ -208,9 +208,9 @@ The following `#define`s apply only to the `pwm` driver:
208|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use | 208|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use |
209|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use | 209|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use |
210|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use | 210|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use |
211|`WS2812_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` | 211|`WS2812_PWM_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
212|`WS2812_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` | 212|`WS2812_PWM_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
213|`WS2812_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral| 213|`WS2812_PWM_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
214|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) | 214|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
215 215
216?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations. 216?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
diff --git a/keyboards/acheron/apollo/87h/delta/config.h b/keyboards/acheron/apollo/87h/delta/config.h
index 578a443e88..17c09f0f57 100644
--- a/keyboards/acheron/apollo/87h/delta/config.h
+++ b/keyboards/acheron/apollo/87h/delta/config.h
@@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define WS2812_PWM_DRIVER PWMD1 28#define WS2812_PWM_DRIVER PWMD1
29#define WS2812_PWM_CHANNEL 3 29#define WS2812_PWM_CHANNEL 3
30#define WS2812_PWM_PAL_MODE 1 30#define WS2812_PWM_PAL_MODE 1
31#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 31#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
32#define WS2812_DMA_CHANNEL 6 32#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/acheron/apollo/87htsc/config.h b/keyboards/acheron/apollo/87htsc/config.h
index 578a443e88..17c09f0f57 100644
--- a/keyboards/acheron/apollo/87htsc/config.h
+++ b/keyboards/acheron/apollo/87htsc/config.h
@@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define WS2812_PWM_DRIVER PWMD1 28#define WS2812_PWM_DRIVER PWMD1
29#define WS2812_PWM_CHANNEL 3 29#define WS2812_PWM_CHANNEL 3
30#define WS2812_PWM_PAL_MODE 1 30#define WS2812_PWM_PAL_MODE 1
31#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 31#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
32#define WS2812_DMA_CHANNEL 6 32#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/acheron/apollo/88htsc/config.h b/keyboards/acheron/apollo/88htsc/config.h
index 578a443e88..17c09f0f57 100644
--- a/keyboards/acheron/apollo/88htsc/config.h
+++ b/keyboards/acheron/apollo/88htsc/config.h
@@ -28,5 +28,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define WS2812_PWM_DRIVER PWMD1 28#define WS2812_PWM_DRIVER PWMD1
29#define WS2812_PWM_CHANNEL 3 29#define WS2812_PWM_CHANNEL 3
30#define WS2812_PWM_PAL_MODE 1 30#define WS2812_PWM_PAL_MODE 1
31#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 31#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
32#define WS2812_DMA_CHANNEL 6 32#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/acheron/athena/alpha/config.h b/keyboards/acheron/athena/alpha/config.h
index ba5c2dedf2..c9f1d29f24 100644
--- a/keyboards/acheron/athena/alpha/config.h
+++ b/keyboards/acheron/athena/alpha/config.h
@@ -27,8 +27,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define WS2812_PWM_DRIVER PWMD1 27#define WS2812_PWM_DRIVER PWMD1
28#define WS2812_PWM_CHANNEL 3 28#define WS2812_PWM_CHANNEL 3
29#define WS2812_PWM_PAL_MODE 1 29#define WS2812_PWM_PAL_MODE 1
30#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 30#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
31#define WS2812_DMA_CHANNEL 6 31#define WS2812_PWM_DMA_CHANNEL 6
32 32
33// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state. 33// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state.
34#define CAPSLOCK_INDICATOR 34#define CAPSLOCK_INDICATOR
diff --git a/keyboards/acheron/athena/beta/config.h b/keyboards/acheron/athena/beta/config.h
index 30c29fa686..b2a8d2edf8 100644
--- a/keyboards/acheron/athena/beta/config.h
+++ b/keyboards/acheron/athena/beta/config.h
@@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define WS2812_PWM_DRIVER PWMD1 28#define WS2812_PWM_DRIVER PWMD1
29#define WS2812_PWM_CHANNEL 3 29#define WS2812_PWM_CHANNEL 3
30#define WS2812_PWM_PAL_MODE 1 30#define WS2812_PWM_PAL_MODE 1
31#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 31#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
32#define WS2812_DMA_CHANNEL 6 32#define WS2812_PWM_DMA_CHANNEL 6
33 33
34// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state. 34// If this is defined, the caps lock LED will turn on and off according to the state of caps lock. If not, the LED will shine like all other LEDs despite the caps lock state.
35#define CAPSLOCK_INDICATOR 35#define CAPSLOCK_INDICATOR
diff --git a/keyboards/acheron/shark/beta/config.h b/keyboards/acheron/shark/beta/config.h
index d862fd016d..1182d39d3b 100644
--- a/keyboards/acheron/shark/beta/config.h
+++ b/keyboards/acheron/shark/beta/config.h
@@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define WS2812_PWM_DRIVER PWMD1 27#define WS2812_PWM_DRIVER PWMD1
28#define WS2812_PWM_CHANNEL 3 28#define WS2812_PWM_CHANNEL 3
29#define WS2812_PWM_PAL_MODE 1 29#define WS2812_PWM_PAL_MODE 1
30#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 30#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
31#define WS2812_DMA_CHANNEL 6 31#define WS2812_PWM_DMA_CHANNEL 6
32 32
33#define EEPROM_I2C_24LC256 33#define EEPROM_I2C_24LC256
diff --git a/keyboards/acheron/themis/87h/config.h b/keyboards/acheron/themis/87h/config.h
index ed1229c779..fb2a5e1ed7 100644
--- a/keyboards/acheron/themis/87h/config.h
+++ b/keyboards/acheron/themis/87h/config.h
@@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD1 24#define WS2812_PWM_DRIVER PWMD1
25#define WS2812_PWM_CHANNEL 3 25#define WS2812_PWM_CHANNEL 3
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 27#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
28#define WS2812_DMA_CHANNEL 6 28#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/acheron/themis/87htsc/config.h b/keyboards/acheron/themis/87htsc/config.h
index ed1229c779..fb2a5e1ed7 100644
--- a/keyboards/acheron/themis/87htsc/config.h
+++ b/keyboards/acheron/themis/87htsc/config.h
@@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD1 24#define WS2812_PWM_DRIVER PWMD1
25#define WS2812_PWM_CHANNEL 3 25#define WS2812_PWM_CHANNEL 3
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 27#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
28#define WS2812_DMA_CHANNEL 6 28#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/acheron/themis/88htsc/config.h b/keyboards/acheron/themis/88htsc/config.h
index ed1229c779..fb2a5e1ed7 100644
--- a/keyboards/acheron/themis/88htsc/config.h
+++ b/keyboards/acheron/themis/88htsc/config.h
@@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD1 24#define WS2812_PWM_DRIVER PWMD1
25#define WS2812_PWM_CHANNEL 3 25#define WS2812_PWM_CHANNEL 3
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 27#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
28#define WS2812_DMA_CHANNEL 6 28#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/artifact/lvl/rev_hs01/config.h b/keyboards/artifact/lvl/rev_hs01/config.h
index 674fb1110c..8dec2b56f2 100755
--- a/keyboards/artifact/lvl/rev_hs01/config.h
+++ b/keyboards/artifact/lvl/rev_hs01/config.h
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20/* RGB Light */ 20/* RGB Light */
21#define WS2812_PWM_DRIVER PWMD1 21#define WS2812_PWM_DRIVER PWMD1
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
23#define WS2812_DMA_CHANNEL 5 23#define WS2812_PWM_DMA_CHANNEL 5
24 24
25#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB 25#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
diff --git a/keyboards/aurora65/config.h b/keyboards/aurora65/config.h
index ec0853212c..1b51399c8d 100644
--- a/keyboards/aurora65/config.h
+++ b/keyboards/aurora65/config.h
@@ -22,6 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22#define WS2812_PWM_CHANNEL 3 22#define WS2812_PWM_CHANNEL 3
23#define WS2812_PWM_PAL_MODE 2 23#define WS2812_PWM_PAL_MODE 2
24#define WS2812_PWM_COMPLEMENTARY_OUTPUT 24#define WS2812_PWM_COMPLEMENTARY_OUTPUT
25#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 25#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
26#define WS2812_DMA_CHANNEL 5 26#define WS2812_PWM_DMA_CHANNEL 5
27#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB 27#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
index 68901305c4..0467a1261f 100644
--- a/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/3x5/blackpill/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 1 28#define WS2812_PWM_PAL_MODE 1
29#define WS2812_EXTERNAL_PULLUP 29#define WS2812_EXTERNAL_PULLUP
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
31#define WS2812_DMA_CHANNEL 3 31#define WS2812_PWM_DMA_CHANNEL 3
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34/* Serial configuration for split keyboard. */ 34/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h
index 6aa20712f6..7a2bdd0aa8 100644
--- a/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h
+++ b/keyboards/bastardkb/charybdis/3x5/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
index 985e79fabd..b41a1d3f57 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/config.h
@@ -25,8 +25,8 @@
25#define WS2812_PWM_CHANNEL 2 25#define WS2812_PWM_CHANNEL 2
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_EXTERNAL_PULLUP 27#define WS2812_EXTERNAL_PULLUP
28#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 28#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
29#define WS2812_DMA_CHANNEL 3 29#define WS2812_PWM_DMA_CHANNEL 3
30#define WS2812_PWM_TARGET_PERIOD 800000 30#define WS2812_PWM_TARGET_PERIOD 800000
31 31
32/* Serial configuration for split keyboard. */ 32/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h
index 6aa20712f6..7a2bdd0aa8 100644
--- a/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h
+++ b/keyboards/bastardkb/charybdis/3x6/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
index 68901305c4..0467a1261f 100644
--- a/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
+++ b/keyboards/bastardkb/charybdis/4x6/blackpill/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 1 28#define WS2812_PWM_PAL_MODE 1
29#define WS2812_EXTERNAL_PULLUP 29#define WS2812_EXTERNAL_PULLUP
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
31#define WS2812_DMA_CHANNEL 3 31#define WS2812_PWM_DMA_CHANNEL 3
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34/* Serial configuration for split keyboard. */ 34/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h
index 6aa20712f6..7a2bdd0aa8 100644
--- a/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h
+++ b/keyboards/bastardkb/charybdis/4x6/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bastardkb/scylla/blackpill/config.h b/keyboards/bastardkb/scylla/blackpill/config.h
index 0c40ed74bc..1d86b474ee 100644
--- a/keyboards/bastardkb/scylla/blackpill/config.h
+++ b/keyboards/bastardkb/scylla/blackpill/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 1 28#define WS2812_PWM_PAL_MODE 1
29#define WS2812_EXTERNAL_PULLUP 29#define WS2812_EXTERNAL_PULLUP
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
31#define WS2812_DMA_CHANNEL 3 31#define WS2812_PWM_DMA_CHANNEL 3
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34/* Serial configuration for split keyboard. */ 34/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/scylla/v2/stemcell/config.h b/keyboards/bastardkb/scylla/v2/stemcell/config.h
index 0bbfd39aee..ca1cc0f719 100644
--- a/keyboards/bastardkb/scylla/v2/stemcell/config.h
+++ b/keyboards/bastardkb/scylla/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bastardkb/skeletyl/blackpill/config.h b/keyboards/bastardkb/skeletyl/blackpill/config.h
index 0c40ed74bc..1d86b474ee 100644
--- a/keyboards/bastardkb/skeletyl/blackpill/config.h
+++ b/keyboards/bastardkb/skeletyl/blackpill/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 1 28#define WS2812_PWM_PAL_MODE 1
29#define WS2812_EXTERNAL_PULLUP 29#define WS2812_EXTERNAL_PULLUP
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
31#define WS2812_DMA_CHANNEL 3 31#define WS2812_PWM_DMA_CHANNEL 3
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34/* Serial configuration for split keyboard. */ 34/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/skeletyl/v2/stemcell/config.h b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h
index 0bbfd39aee..ca1cc0f719 100644
--- a/keyboards/bastardkb/skeletyl/v2/stemcell/config.h
+++ b/keyboards/bastardkb/skeletyl/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bastardkb/tbkmini/blackpill/config.h b/keyboards/bastardkb/tbkmini/blackpill/config.h
index 0c40ed74bc..1d86b474ee 100644
--- a/keyboards/bastardkb/tbkmini/blackpill/config.h
+++ b/keyboards/bastardkb/tbkmini/blackpill/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 1 28#define WS2812_PWM_PAL_MODE 1
29#define WS2812_EXTERNAL_PULLUP 29#define WS2812_EXTERNAL_PULLUP
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
31#define WS2812_DMA_CHANNEL 3 31#define WS2812_PWM_DMA_CHANNEL 3
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34/* Serial configuration for split keyboard. */ 34/* Serial configuration for split keyboard. */
diff --git a/keyboards/bastardkb/tbkmini/v2/stemcell/config.h b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h
index 0bbfd39aee..ca1cc0f719 100644
--- a/keyboards/bastardkb/tbkmini/v2/stemcell/config.h
+++ b/keyboards/bastardkb/tbkmini/v2/stemcell/config.h
@@ -30,8 +30,8 @@
30#define WS2812_PWM_DRIVER PWMD2 30#define WS2812_PWM_DRIVER PWMD2
31#define WS2812_PWM_CHANNEL 4 31#define WS2812_PWM_CHANNEL 4
32#define WS2812_PWM_PAL_MODE 1 32#define WS2812_PWM_PAL_MODE 1
33#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 33#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
34#define WS2812_DMA_CHANNEL 3 34#define WS2812_PWM_DMA_CHANNEL 3
35 35
36/* CRC. */ 36/* CRC. */
37#define CRC8_USE_TABLE 37#define CRC8_USE_TABLE
diff --git a/keyboards/bestway/config.h b/keyboards/bestway/config.h
index c63a25d9a6..1800a114a0 100644
--- a/keyboards/bestway/config.h
+++ b/keyboards/bestway/config.h
@@ -18,5 +18,5 @@
18 18
19#define WS2812_PWM_DRIVER PWMD2 19#define WS2812_PWM_DRIVER PWMD2
20#define WS2812_PWM_CHANNEL 4 20#define WS2812_PWM_CHANNEL 4
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
22#define WS2812_DMA_CHANNEL 2 22#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/black_hellebore/config.h b/keyboards/black_hellebore/config.h
index 53910fed09..e748b3d185 100644
--- a/keyboards/black_hellebore/config.h
+++ b/keyboards/black_hellebore/config.h
@@ -20,5 +20,5 @@
20#define WS2812_PWM_CHANNEL 1 20#define WS2812_PWM_CHANNEL 1
21#define WS2812_PWM_PAL_MODE 1 //TIM1_CH1N (AF1) 21#define WS2812_PWM_PAL_MODE 1 //TIM1_CH1N (AF1)
22#define WS2812_PWM_COMPLEMENTARY_OUTPUT 22#define WS2812_PWM_COMPLEMENTARY_OUTPUT
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
24#define WS2812_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298) 24#define WS2812_PWM_DMA_CHANNEL 7 //7 works, CxS[3:0] 0111 = TIM1_UP on Channel 6? (RM0394.pdf pg.298)
diff --git a/keyboards/crypt_macro/config.h b/keyboards/crypt_macro/config.h
index 4d9d9bf5c2..701ad8da86 100644
--- a/keyboards/crypt_macro/config.h
+++ b/keyboards/crypt_macro/config.h
@@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD3 24#define WS2812_PWM_DRIVER PWMD3
25#define WS2812_PWM_CHANNEL 1 25#define WS2812_PWM_CHANNEL 1
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 27#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
28#define WS2812_DMA_CHANNEL 3 28#define WS2812_PWM_DMA_CHANNEL 3
29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB 29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
diff --git a/keyboards/custommk/evo70_r2/config.h b/keyboards/custommk/evo70_r2/config.h
index 62606cf1ee..bd8744204c 100644
--- a/keyboards/custommk/evo70_r2/config.h
+++ b/keyboards/custommk/evo70_r2/config.h
@@ -78,8 +78,8 @@
78#define WS2812_PWM_DRIVER PWMD1 78#define WS2812_PWM_DRIVER PWMD1
79#define WS2812_PWM_CHANNEL 3 79#define WS2812_PWM_CHANNEL 3
80#define WS2812_PWM_PAL_MODE 1 80#define WS2812_PWM_PAL_MODE 1
81#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 81#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
82#define WS2812_DMA_CHANNEL 6 82#define WS2812_PWM_DMA_CHANNEL 6
83 83
84#define TAP_CODE_DELAY 10 84#define TAP_CODE_DELAY 10
85 85
diff --git a/keyboards/ebastler/isometria_75/rev1/config.h b/keyboards/ebastler/isometria_75/rev1/config.h
index 0fc8019a1d..19a79c9df6 100644
--- a/keyboards/ebastler/isometria_75/rev1/config.h
+++ b/keyboards/ebastler/isometria_75/rev1/config.h
@@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define WS2812_PWM_DRIVER PWMD2 26#define WS2812_PWM_DRIVER PWMD2
27#define WS2812_PWM_CHANNEL 2 27#define WS2812_PWM_CHANNEL 2
28#define WS2812_PWM_PAL_MODE 2 28#define WS2812_PWM_PAL_MODE 2
29#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 29#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
30#define WS2812_DMA_CHANNEL 2 30#define WS2812_PWM_DMA_CHANNEL 2
31 31
32/* ADC - will be used for battery monitoring once BT support is added */ 32/* ADC - will be used for battery monitoring once BT support is added */
33/* #define ADC_PIN B0 */ 33/* #define ADC_PIN B0 */
diff --git a/keyboards/edi/hardlight/mk2/config.h b/keyboards/edi/hardlight/mk2/config.h
index 73f4b2baae..52636c6484 100644
--- a/keyboards/edi/hardlight/mk2/config.h
+++ b/keyboards/edi/hardlight/mk2/config.h
@@ -28,8 +28,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define WS2812_PWM_DRIVER PWMD1 28#define WS2812_PWM_DRIVER PWMD1
29#define WS2812_PWM_CHANNEL 3 29#define WS2812_PWM_CHANNEL 3
30#define WS2812_PWM_PAL_MODE 2 30#define WS2812_PWM_PAL_MODE 2
31#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 31#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
32#define WS2812_DMA_CHANNEL 3 32#define WS2812_PWM_DMA_CHANNEL 3
33#define WS2812_EXTERNAL_PULLUP 33#define WS2812_EXTERNAL_PULLUP
34 34
35/* I2C driver overrides */ 35/* I2C driver overrides */
diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h
index 6aed50ec2f..dca98f0c95 100644
--- a/keyboards/geekboards/macropad_v2/config.h
+++ b/keyboards/geekboards/macropad_v2/config.h
@@ -19,7 +19,7 @@
19#define WS2812_PWM_DRIVER PWMD3 19#define WS2812_PWM_DRIVER PWMD3
20#define WS2812_PWM_CHANNEL 2 20#define WS2812_PWM_CHANNEL 2
21#define WS2812_PWM_PAL_MODE 1 21#define WS2812_PWM_PAL_MODE 1
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
23#define WS2812_DMA_CHANNEL 3 23#define WS2812_PWM_DMA_CHANNEL 3
24 24
25#define WAIT_FOR_USB 25#define WAIT_FOR_USB
diff --git a/keyboards/handwired/cyberstar/config.h b/keyboards/handwired/cyberstar/config.h
index 4d9d9bf5c2..701ad8da86 100644
--- a/keyboards/handwired/cyberstar/config.h
+++ b/keyboards/handwired/cyberstar/config.h
@@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD3 24#define WS2812_PWM_DRIVER PWMD3
25#define WS2812_PWM_CHANNEL 1 25#define WS2812_PWM_CHANNEL 1
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 27#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
28#define WS2812_DMA_CHANNEL 3 28#define WS2812_PWM_DMA_CHANNEL 3
29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB 29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
diff --git a/keyboards/handwired/macroboard/config.h b/keyboards/handwired/macroboard/config.h
index 95e7d9d1aa..b8e437bddf 100644
--- a/keyboards/handwired/macroboard/config.h
+++ b/keyboards/handwired/macroboard/config.h
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD4 20#define WS2812_PWM_DRIVER PWMD4
21#define WS2812_PWM_CHANNEL 4 21#define WS2812_PWM_CHANNEL 4
22#define WS2812_PWM_PAL_MODE 2 22#define WS2812_PWM_PAL_MODE 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
24#define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 24#define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
25#define WS2812_PWM_TARGET_PERIOD 800000 25#define WS2812_PWM_TARGET_PERIOD 800000
26 26
27/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 27/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h
index 3a7f97f8d2..a2818e7176 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/config.h
@@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define WS2812_PWM_CHANNEL 1 // default: 2 26#define WS2812_PWM_CHANNEL 1 // default: 2
27#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 27#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
28//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). 28//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
29// #define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 29// #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
30#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 30#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
31 31
32#define DEBUG_LED_PIN C13 32#define DEBUG_LED_PIN C13
33 33
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
index 2ad18267ad..87f830e175 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/config.h
@@ -27,8 +27,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 27#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
28#define WS2812_EXTERNAL_PULLUP 28#define WS2812_EXTERNAL_PULLUP
29//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). 29//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
31#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 31#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
32#define WS2812_PWM_TARGET_PERIOD 800000 32#define WS2812_PWM_TARGET_PERIOD 800000
33 33
34#define DEBUG_LED_PIN C13 34#define DEBUG_LED_PIN C13
diff --git a/keyboards/jacky_studio/piggy60/rev2/config.h b/keyboards/jacky_studio/piggy60/rev2/config.h
index 2747834991..8c9b292fb4 100644
--- a/keyboards/jacky_studio/piggy60/rev2/config.h
+++ b/keyboards/jacky_studio/piggy60/rev2/config.h
@@ -19,5 +19,5 @@
19#define WS2812_PWM_DRIVER PWMD4 19#define WS2812_PWM_DRIVER PWMD4
20#define WS2812_PWM_CHANNEL 4 20#define WS2812_PWM_CHANNEL 4
21#define WS2812_PWM_PAL_MODE 2 21#define WS2812_PWM_PAL_MODE 2
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
23#define WS2812_DMA_CHANNEL 7 23#define WS2812_PWM_DMA_CHANNEL 7
diff --git a/keyboards/kabedon/kabedon98e/config.h b/keyboards/kabedon/kabedon98e/config.h
index 514a1121b3..8eb549c134 100644
--- a/keyboards/kabedon/kabedon98e/config.h
+++ b/keyboards/kabedon/kabedon98e/config.h
@@ -17,8 +17,8 @@
17 17
18#define WS2812_PWM_DRIVER PWMD3 18#define WS2812_PWM_DRIVER PWMD3
19#define WS2812_PWM_CHANNEL 1 19#define WS2812_PWM_CHANNEL 1
20#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 20#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
21#define WS2812_DMA_CHANNEL 3 21#define WS2812_PWM_DMA_CHANNEL 3
22 22
23/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 23/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
24#define LOCKING_SUPPORT_ENABLE 24#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kprepublic/bm16a/v2/config.h b/keyboards/kprepublic/bm16a/v2/config.h
index 3ef55f3d42..8014b69a98 100644
--- a/keyboards/kprepublic/bm16a/v2/config.h
+++ b/keyboards/kprepublic/bm16a/v2/config.h
@@ -5,5 +5,5 @@
5 5
6#define WS2812_PWM_DRIVER PWMD4 6#define WS2812_PWM_DRIVER PWMD4
7#define WS2812_PWM_CHANNEL 4 7#define WS2812_PWM_CHANNEL 4
8#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 8#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
9#define WS2812_DMA_CHANNEL 7 9#define WS2812_PWM_DMA_CHANNEL 7
diff --git a/keyboards/linworks/whale75/config.h b/keyboards/linworks/whale75/config.h
index 629c1dcf70..84b3c45cd9 100644
--- a/keyboards/linworks/whale75/config.h
+++ b/keyboards/linworks/whale75/config.h
@@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD4 24#define WS2812_PWM_DRIVER PWMD4
25#define WS2812_PWM_CHANNEL 4 25#define WS2812_PWM_CHANNEL 4
26#define WS2812_PWM_PAL_MODE 2 26#define WS2812_PWM_PAL_MODE 2
27#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 27#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
28#define WS2812_DMA_CHANNEL 7 28#define WS2812_PWM_DMA_CHANNEL 7
diff --git a/keyboards/loki65/config.h b/keyboards/loki65/config.h
index 3627f4c7e6..ac6b9f5ceb 100644
--- a/keyboards/loki65/config.h
+++ b/keyboards/loki65/config.h
@@ -24,6 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD1 24#define WS2812_PWM_DRIVER PWMD1
25#define WS2812_PWM_CHANNEL 2 25#define WS2812_PWM_CHANNEL 2
26#define WS2812_PWM_PAL_MODE 2 26#define WS2812_PWM_PAL_MODE 2
27#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 27#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
28#define WS2812_DMA_CHANNEL 5 28#define WS2812_PWM_DMA_CHANNEL 5
29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB 29#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
diff --git a/keyboards/mariorion_v25/prod/config.h b/keyboards/mariorion_v25/prod/config.h
index 042f7662d8..8895d16ece 100644
--- a/keyboards/mariorion_v25/prod/config.h
+++ b/keyboards/mariorion_v25/prod/config.h
@@ -7,9 +7,9 @@
7 7
8#define WS2812_PWM_DRIVER PWMD17 8#define WS2812_PWM_DRIVER PWMD17
9#define WS2812_PWM_CHANNEL 1 9#define WS2812_PWM_CHANNEL 1
10#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 10#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
11#define WS2812_DMA_CHANNEL 1 11#define WS2812_PWM_DMA_CHANNEL 1
12// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP 12// #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
13 13
14#define INDICATOR_0 C9 14#define INDICATOR_0 C9
15#define INDICATOR_1 C8 15#define INDICATOR_1 C8
diff --git a/keyboards/mariorion_v25/proto/config.h b/keyboards/mariorion_v25/proto/config.h
index 6865f2dbb0..894b8fbf9e 100644
--- a/keyboards/mariorion_v25/proto/config.h
+++ b/keyboards/mariorion_v25/proto/config.h
@@ -7,9 +7,9 @@
7 7
8#define WS2812_PWM_DRIVER PWMD17 8#define WS2812_PWM_DRIVER PWMD17
9#define WS2812_PWM_CHANNEL 1 9#define WS2812_PWM_CHANNEL 1
10#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 10#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
11#define WS2812_DMA_CHANNEL 1 11#define WS2812_PWM_DMA_CHANNEL 1
12// #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM17_UP 12// #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM17_UP
13 13
14#define INDICATOR_0 C8 14#define INDICATOR_0 C8
15#define INDICATOR_1 C7 15#define INDICATOR_1 C7
diff --git a/keyboards/meetlab/kalice/config.h b/keyboards/meetlab/kalice/config.h
index 80bae79fd8..052bfa4bdf 100644
--- a/keyboards/meetlab/kalice/config.h
+++ b/keyboards/meetlab/kalice/config.h
@@ -19,5 +19,5 @@
19#define WS2812_PWM_DRIVER PWMD1 19#define WS2812_PWM_DRIVER PWMD1
20#define WS2812_PWM_CHANNEL 2 20#define WS2812_PWM_CHANNEL 2
21#define WS2812_PWM_COMPLEMENTARY_OUTPUT 21#define WS2812_PWM_COMPLEMENTARY_OUTPUT
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
23#define WS2812_DMA_CHANNEL 5 \ No newline at end of file 23#define WS2812_PWM_DMA_CHANNEL 5 \ No newline at end of file
diff --git a/keyboards/meetlab/rena/config.h b/keyboards/meetlab/rena/config.h
index ef8715e384..6a6a4a2cae 100644
--- a/keyboards/meetlab/rena/config.h
+++ b/keyboards/meetlab/rena/config.h
@@ -18,5 +18,5 @@
18 18
19#define WS2812_PWM_DRIVER PWMD2 19#define WS2812_PWM_DRIVER PWMD2
20#define WS2812_PWM_CHANNEL 3 20#define WS2812_PWM_CHANNEL 3
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
22#define WS2812_DMA_CHANNEL 2 22#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/misterknife/knife66/config.h b/keyboards/misterknife/knife66/config.h
index 7f7e117303..2b8d7b8b9f 100644
--- a/keyboards/misterknife/knife66/config.h
+++ b/keyboards/misterknife/knife66/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1 20#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1
21#define WS2812_PWM_CHANNEL 2 // default: 2 21#define WS2812_PWM_CHANNEL 2 // default: 2
22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
24#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 24#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/misterknife/knife66_iso/config.h b/keyboards/misterknife/knife66_iso/config.h
index cb847450ba..f9f0707ff1 100644
--- a/keyboards/misterknife/knife66_iso/config.h
+++ b/keyboards/misterknife/knife66_iso/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1 20#define WS2812_PWM_DRIVER PWMD1 // default: PWMD1
21#define WS2812_PWM_CHANNEL 2 // default: 2 21#define WS2812_PWM_CHANNEL 2 // default: 2
22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
24#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 24#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/mode/m256wh/config.h b/keyboards/mode/m256wh/config.h
index c976b6bcc5..06f1658ea5 100644
--- a/keyboards/mode/m256wh/config.h
+++ b/keyboards/mode/m256wh/config.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#define WS2812_PWM_DRIVER PWMD1 21#define WS2812_PWM_DRIVER PWMD1
22#define WS2812_PWM_CHANNEL 3 22#define WS2812_PWM_CHANNEL 3
23#define WS2812_PWM_PAL_MODE 1 23#define WS2812_PWM_PAL_MODE 1
24#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 24#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
25#define WS2812_DMA_CHANNEL 6 25#define WS2812_PWM_DMA_CHANNEL 6
26 26
27#define EECONFIG_KB_DATA_SIZE (1) 27#define EECONFIG_KB_DATA_SIZE (1)
diff --git a/keyboards/mode/m256ws/config.h b/keyboards/mode/m256ws/config.h
index c976b6bcc5..06f1658ea5 100644
--- a/keyboards/mode/m256ws/config.h
+++ b/keyboards/mode/m256ws/config.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#define WS2812_PWM_DRIVER PWMD1 21#define WS2812_PWM_DRIVER PWMD1
22#define WS2812_PWM_CHANNEL 3 22#define WS2812_PWM_CHANNEL 3
23#define WS2812_PWM_PAL_MODE 1 23#define WS2812_PWM_PAL_MODE 1
24#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 24#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
25#define WS2812_DMA_CHANNEL 6 25#define WS2812_PWM_DMA_CHANNEL 6
26 26
27#define EECONFIG_KB_DATA_SIZE (1) 27#define EECONFIG_KB_DATA_SIZE (1)
diff --git a/keyboards/mode/m60h/config.h b/keyboards/mode/m60h/config.h
index f984cf28de..cde4ffdbc6 100644
--- a/keyboards/mode/m60h/config.h
+++ b/keyboards/mode/m60h/config.h
@@ -5,6 +5,6 @@
5 5
6#define WS2812_PWM_DRIVER PWMD4 6#define WS2812_PWM_DRIVER PWMD4
7#define WS2812_PWM_CHANNEL 4 7#define WS2812_PWM_CHANNEL 4
8#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 8#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
9#define WS2812_DMA_CHANNEL 2 9#define WS2812_PWM_DMA_CHANNEL 2
10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file 10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file
diff --git a/keyboards/mode/m60h_f/config.h b/keyboards/mode/m60h_f/config.h
index f984cf28de..cde4ffdbc6 100644
--- a/keyboards/mode/m60h_f/config.h
+++ b/keyboards/mode/m60h_f/config.h
@@ -5,6 +5,6 @@
5 5
6#define WS2812_PWM_DRIVER PWMD4 6#define WS2812_PWM_DRIVER PWMD4
7#define WS2812_PWM_CHANNEL 4 7#define WS2812_PWM_CHANNEL 4
8#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 8#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
9#define WS2812_DMA_CHANNEL 2 9#define WS2812_PWM_DMA_CHANNEL 2
10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file 10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file
diff --git a/keyboards/mode/m60s/config.h b/keyboards/mode/m60s/config.h
index f984cf28de..cde4ffdbc6 100644
--- a/keyboards/mode/m60s/config.h
+++ b/keyboards/mode/m60s/config.h
@@ -5,6 +5,6 @@
5 5
6#define WS2812_PWM_DRIVER PWMD4 6#define WS2812_PWM_DRIVER PWMD4
7#define WS2812_PWM_CHANNEL 4 7#define WS2812_PWM_CHANNEL 4
8#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 8#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
9#define WS2812_DMA_CHANNEL 2 9#define WS2812_PWM_DMA_CHANNEL 2
10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file 10#define WS2812_PWM_TARGET_PERIOD 800000 \ No newline at end of file
diff --git a/keyboards/mwstudio/mmk_3/config.h b/keyboards/mwstudio/mmk_3/config.h
index 0265d3ed6e..f8916cddd0 100644
--- a/keyboards/mwstudio/mmk_3/config.h
+++ b/keyboards/mwstudio/mmk_3/config.h
@@ -22,5 +22,5 @@
22#define WS2812_PWM_DRIVER PWMD4 22#define WS2812_PWM_DRIVER PWMD4
23#define WS2812_PWM_CHANNEL 3 23#define WS2812_PWM_CHANNEL 3
24#define WS2812_PWM_PAL_MODE 1 24#define WS2812_PWM_PAL_MODE 1
25#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 25#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
26#define WS2812_DMA_CHANNEL 2 26#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/mwstudio/mw660/config.h b/keyboards/mwstudio/mw660/config.h
index 87659c1f67..58d0eee9e0 100644
--- a/keyboards/mwstudio/mw660/config.h
+++ b/keyboards/mwstudio/mw660/config.h
@@ -20,5 +20,5 @@
20#define WS2812_PWM_CHANNEL 3 // default: 2 20#define WS2812_PWM_CHANNEL 3 // default: 2
21//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). 21//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
22#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 22#define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
24#define WS2812_DMA_CHANNEL 2 \ No newline at end of file 24#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file
diff --git a/keyboards/novelkeys/nk20/config.h b/keyboards/novelkeys/nk20/config.h
index 317cc2c3e8..750a033568 100644
--- a/keyboards/novelkeys/nk20/config.h
+++ b/keyboards/novelkeys/nk20/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 2 21#define WS2812_PWM_CHANNEL 2
22#define WS2812_PWM_PAL_MODE 1 22#define WS2812_PWM_PAL_MODE 1
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/novelkeys/nk65b/config.h b/keyboards/novelkeys/nk65b/config.h
index 40e3b54053..eaddb87b82 100755
--- a/keyboards/novelkeys/nk65b/config.h
+++ b/keyboards/novelkeys/nk65b/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 1 21#define WS2812_PWM_CHANNEL 1
22#define WS2812_PWM_PAL_MODE 1 22#define WS2812_PWM_PAL_MODE 1
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/novelkeys/nk87b/config.h b/keyboards/novelkeys/nk87b/config.h
index a79137e7d9..933d4ed5c0 100644
--- a/keyboards/novelkeys/nk87b/config.h
+++ b/keyboards/novelkeys/nk87b/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 3 21#define WS2812_PWM_CHANNEL 3
22#define WS2812_PWM_PAL_MODE 1 22#define WS2812_PWM_PAL_MODE 1
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/novelkeys/nk_plus/config.h b/keyboards/novelkeys/nk_plus/config.h
index 40e3b54053..eaddb87b82 100644
--- a/keyboards/novelkeys/nk_plus/config.h
+++ b/keyboards/novelkeys/nk_plus/config.h
@@ -20,5 +20,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 1 21#define WS2812_PWM_CHANNEL 1
22#define WS2812_PWM_PAL_MODE 1 22#define WS2812_PWM_PAL_MODE 1
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h
index 74d8d21155..e4fa0924d3 100644
--- a/keyboards/planck/ez/config.h
+++ b/keyboards/planck/ez/config.h
@@ -46,8 +46,8 @@
46// #define WS2812_TIM_CH 2 46// #define WS2812_TIM_CH 2
47// #define PORT_WS2812 GPIOA 47// #define PORT_WS2812 GPIOA
48// #define PIN_WS2812 1 48// #define PIN_WS2812 1
49// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection) 49// #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection)
50//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP 50//#define WS2812_PWM_DMA_CHANNEL 7 // DMA channel for TIMx_UP
51//#define WS2812_EXTERNAL_PULLUP 51//#define WS2812_EXTERNAL_PULLUP
52 52
53#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND 53#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
index 7fec8be56b..0935fad358 100644
--- a/keyboards/planck/rev6/config.h
+++ b/keyboards/planck/rev6/config.h
@@ -46,5 +46,5 @@
46#define WS2812_PWM_DRIVER PWMD2 46#define WS2812_PWM_DRIVER PWMD2
47#define WS2812_PWM_CHANNEL 2 47#define WS2812_PWM_CHANNEL 2
48#define WS2812_PWM_PAL_MODE 1 48#define WS2812_PWM_PAL_MODE 1
49#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 49#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
50#define WS2812_DMA_CHANNEL 2 50#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h
index 7fec8be56b..0935fad358 100644
--- a/keyboards/planck/rev6_drop/config.h
+++ b/keyboards/planck/rev6_drop/config.h
@@ -46,5 +46,5 @@
46#define WS2812_PWM_DRIVER PWMD2 46#define WS2812_PWM_DRIVER PWMD2
47#define WS2812_PWM_CHANNEL 2 47#define WS2812_PWM_CHANNEL 2
48#define WS2812_PWM_PAL_MODE 1 48#define WS2812_PWM_PAL_MODE 1
49#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 49#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
50#define WS2812_DMA_CHANNEL 2 50#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/planck/rev7/config.h b/keyboards/planck/rev7/config.h
index a5e49c8a53..9ccbf4cc8a 100644
--- a/keyboards/planck/rev7/config.h
+++ b/keyboards/planck/rev7/config.h
@@ -27,8 +27,8 @@
27#define WS2812_PWM_DRIVER PWMD2 27#define WS2812_PWM_DRIVER PWMD2
28#define WS2812_PWM_CHANNEL 2 28#define WS2812_PWM_CHANNEL 2
29#define WS2812_PWM_PAL_MODE 1 29#define WS2812_PWM_PAL_MODE 1
30#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 30#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
31#define WS2812_DMA_CHANNEL 2 31#define WS2812_PWM_DMA_CHANNEL 2
32 32
33/* 33/*
34 * Feature disable options 34 * Feature disable options
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index 7800131a90..6a842105b2 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -44,5 +44,5 @@
44#define WS2812_PWM_DRIVER PWMD2 44#define WS2812_PWM_DRIVER PWMD2
45#define WS2812_PWM_CHANNEL 2 45#define WS2812_PWM_CHANNEL 2
46#define WS2812_PWM_PAL_MODE 1 46#define WS2812_PWM_PAL_MODE 1
47#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 47#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
48#define WS2812_DMA_CHANNEL 2 48#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h
index 7800131a90..6a842105b2 100644
--- a/keyboards/preonic/rev3_drop/config.h
+++ b/keyboards/preonic/rev3_drop/config.h
@@ -44,5 +44,5 @@
44#define WS2812_PWM_DRIVER PWMD2 44#define WS2812_PWM_DRIVER PWMD2
45#define WS2812_PWM_CHANNEL 2 45#define WS2812_PWM_CHANNEL 2
46#define WS2812_PWM_PAL_MODE 1 46#define WS2812_PWM_PAL_MODE 1
47#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 47#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
48#define WS2812_DMA_CHANNEL 2 48#define WS2812_PWM_DMA_CHANNEL 2
diff --git a/keyboards/protozoa/p01/config.h b/keyboards/protozoa/p01/config.h
index fd58bda912..3b14a164f6 100644
--- a/keyboards/protozoa/p01/config.h
+++ b/keyboards/protozoa/p01/config.h
@@ -21,5 +21,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#define WS2812_PWM_DRIVER PWMD1 21#define WS2812_PWM_DRIVER PWMD1
22#define WS2812_PWM_CHANNEL 2 22#define WS2812_PWM_CHANNEL 2
23#define WS2812_PWM_PAL_MODE 2 23#define WS2812_PWM_PAL_MODE 2
24#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 24#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
25#define WS2812_DMA_CHANNEL 5 25#define WS2812_PWM_DMA_CHANNEL 5
diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h
index b247fa91cd..74db14c061 100644
--- a/keyboards/rgbkb/mun/config.h
+++ b/keyboards/rgbkb/mun/config.h
@@ -54,8 +54,8 @@
54#define WS2812_PWM_DRIVER PWMD3 54#define WS2812_PWM_DRIVER PWMD3
55#define WS2812_PWM_CHANNEL 2 55#define WS2812_PWM_CHANNEL 2
56#define WS2812_PWM_PAL_MODE 2 56#define WS2812_PWM_PAL_MODE 2
57#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 57#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
58#define WS2812_DMA_CHANNEL 3 58#define WS2812_PWM_DMA_CHANNEL 3
59 59
60#define TOUCH_UPDATE_INTERVAL 33 60#define TOUCH_UPDATE_INTERVAL 33
61#define OLED_UPDATE_INTERVAL 33 61#define OLED_UPDATE_INTERVAL 33
diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h
index 2d3caeea4e..8348b44f96 100644
--- a/keyboards/rgbkb/sol3/config.h
+++ b/keyboards/rgbkb/sol3/config.h
@@ -46,8 +46,8 @@
46#define WS2812_PWM_DRIVER PWMD3 46#define WS2812_PWM_DRIVER PWMD3
47#define WS2812_PWM_CHANNEL 2 47#define WS2812_PWM_CHANNEL 2
48#define WS2812_PWM_PAL_MODE 2 48#define WS2812_PWM_PAL_MODE 2
49#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 49#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
50#define WS2812_DMA_CHANNEL 3 50#define WS2812_PWM_DMA_CHANNEL 3
51 51
52#define TOUCH_UPDATE_INTERVAL 33 52#define TOUCH_UPDATE_INTERVAL 33
53#define OLED_UPDATE_INTERVAL 33 53#define OLED_UPDATE_INTERVAL 33
diff --git a/keyboards/skyloong/dt40/config.h b/keyboards/skyloong/dt40/config.h
index b0aa978063..7e101addcb 100644
--- a/keyboards/skyloong/dt40/config.h
+++ b/keyboards/skyloong/dt40/config.h
@@ -24,5 +24,5 @@
24#define WS2812_PWM_DRIVER PWMD3 24#define WS2812_PWM_DRIVER PWMD3
25#define WS2812_PWM_CHANNEL 1 25#define WS2812_PWM_CHANNEL 1
26#define WS2812_PWM_PAL_MODE 2 26#define WS2812_PWM_PAL_MODE 2
27#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 27#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
28#define WS2812_DMA_CHANNEL 3 28#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/smithrune/iron165r2/f411/config.h b/keyboards/smithrune/iron165r2/f411/config.h
index 8ed73d3ff4..bcd506ade3 100644
--- a/keyboards/smithrune/iron165r2/f411/config.h
+++ b/keyboards/smithrune/iron165r2/f411/config.h
@@ -24,5 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#define WS2812_PWM_DRIVER PWMD1 24#define WS2812_PWM_DRIVER PWMD1
25#define WS2812_PWM_CHANNEL 3 25#define WS2812_PWM_CHANNEL 3
26#define WS2812_PWM_PAL_MODE 1 26#define WS2812_PWM_PAL_MODE 1
27#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 27#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
28#define WS2812_DMA_CHANNEL 6 28#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/smithrune/magnus/m75h/config.h b/keyboards/smithrune/magnus/m75h/config.h
index e72ba06969..18fd960d8f 100644
--- a/keyboards/smithrune/magnus/m75h/config.h
+++ b/keyboards/smithrune/magnus/m75h/config.h
@@ -25,5 +25,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25#define WS2812_PWM_DRIVER PWMD1 25#define WS2812_PWM_DRIVER PWMD1
26#define WS2812_PWM_CHANNEL 3 26#define WS2812_PWM_CHANNEL 3
27#define WS2812_PWM_PAL_MODE 1 27#define WS2812_PWM_PAL_MODE 1
28#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 28#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
29#define WS2812_DMA_CHANNEL 6 29#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/smithrune/magnus/m75s/config.h b/keyboards/smithrune/magnus/m75s/config.h
index 1e8874caa4..95fb2a420c 100644
--- a/keyboards/smithrune/magnus/m75s/config.h
+++ b/keyboards/smithrune/magnus/m75s/config.h
@@ -27,5 +27,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define WS2812_PWM_DRIVER PWMD1 27#define WS2812_PWM_DRIVER PWMD1
28#define WS2812_PWM_CHANNEL 3 28#define WS2812_PWM_CHANNEL 3
29#define WS2812_PWM_PAL_MODE 1 29#define WS2812_PWM_PAL_MODE 1
30#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 30#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
31#define WS2812_DMA_CHANNEL 6 31#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h
index 1b2441556b..85d3261dd1 100755
--- a/keyboards/spaceholdings/nebula68/config.h
+++ b/keyboards/spaceholdings/nebula68/config.h
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 20#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
21#define WS2812_PWM_CHANNEL 2 // default: 2 21#define WS2812_PWM_CHANNEL 2 // default: 2
22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 22#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
24#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 24#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
25 25
26/* Backlight options */ 26/* Backlight options */
27 27
diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h
index d666099135..4f130293e2 100644
--- a/keyboards/splitkb/kyria/rev1/config.h
+++ b/keyboards/splitkb/kyria/rev1/config.h
@@ -33,9 +33,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 33# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
34# define WS2812_PWM_CHANNEL 4 // default: 2 34# define WS2812_PWM_CHANNEL 4 // default: 2
35# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 35# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
36# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 36# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
37# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 37# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
38# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. 38# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
39#else 39#else
40# define WS2812_DI_PIN D3 40# define WS2812_DI_PIN D3
41# define SOFT_SERIAL_PIN D2 41# define SOFT_SERIAL_PIN D2
diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h
index 452e011f0a..54d8f0985a 100644
--- a/keyboards/splitkb/kyria/rev2/config.h
+++ b/keyboards/splitkb/kyria/rev2/config.h
@@ -38,9 +38,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
38# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2 38# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
39# define WS2812_PWM_CHANNEL 4 // default: 2 39# define WS2812_PWM_CHANNEL 4 // default: 2
40# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 40# define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
41# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 41# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
42# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 42# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
43# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU. 43# define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM2_UP // DMAMUX configuration for TIMx_UP -- only required if your MCU has a DMAMUX peripheral, see the respective reference manual for the appropriate values for your MCU.
44#else 44#else
45# define WS2812_DI_PIN D3 45# define WS2812_DI_PIN D3
46# define SOFT_SERIAL_PIN D2 46# define SOFT_SERIAL_PIN D2
diff --git a/keyboards/tg67/config.h b/keyboards/tg67/config.h
index 7ede76f551..0d54e925ae 100644
--- a/keyboards/tg67/config.h
+++ b/keyboards/tg67/config.h
@@ -19,5 +19,5 @@
19#define WS2812_PWM_DRIVER PWMD1 19#define WS2812_PWM_DRIVER PWMD1
20#define WS2812_PWM_CHANNEL 3 20#define WS2812_PWM_CHANNEL 3
21#define WS2812_PWM_COMPLEMENTARY_OUTPUT 21#define WS2812_PWM_COMPLEMENTARY_OUTPUT
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
23#define WS2812_DMA_CHANNEL 5 23#define WS2812_PWM_DMA_CHANNEL 5
diff --git a/keyboards/tkw/grandiceps/config.h b/keyboards/tkw/grandiceps/config.h
index a963fbfb51..a02e14f91f 100644
--- a/keyboards/tkw/grandiceps/config.h
+++ b/keyboards/tkw/grandiceps/config.h
@@ -20,5 +20,5 @@
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 4 21#define WS2812_PWM_CHANNEL 4
22#define WS2812_PWM_PAL_MODE 2 22#define WS2812_PWM_PAL_MODE 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
24#define WS2812_DMA_CHANNEL 5 24#define WS2812_PWM_DMA_CHANNEL 5
diff --git a/keyboards/tkw/stoutgat/v2/config.h b/keyboards/tkw/stoutgat/v2/config.h
index bf68edcfae..79f47b9bb3 100644
--- a/keyboards/tkw/stoutgat/v2/config.h
+++ b/keyboards/tkw/stoutgat/v2/config.h
@@ -18,8 +18,8 @@
18#define WS2812_PWM_DRIVER PWMD3 18#define WS2812_PWM_DRIVER PWMD3
19#define WS2812_PWM_CHANNEL 4 19#define WS2812_PWM_CHANNEL 4
20#define WS2812_PWM_PAL_MODE 2 20#define WS2812_PWM_PAL_MODE 2
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
22#define WS2812_DMA_CHANNEL 5 22#define WS2812_PWM_DMA_CHANNEL 5
23 23
24/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 24/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
25#define LOCKING_SUPPORT_ENABLE 25#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h
index 74bb00edc2..24357b6a35 100644
--- a/keyboards/tzarc/djinn/config.h
+++ b/keyboards/tzarc/djinn/config.h
@@ -39,9 +39,9 @@
39#define WS2812_PWM_DRIVER PWMD20 39#define WS2812_PWM_DRIVER PWMD20
40#define WS2812_PWM_CHANNEL 1 40#define WS2812_PWM_CHANNEL 1
41#define WS2812_PWM_PAL_MODE 3 41#define WS2812_PWM_PAL_MODE 3
42#define WS2812_DMA_STREAM STM32_DMA1_STREAM1 42#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM1
43#define WS2812_DMA_CHANNEL 1 43#define WS2812_PWM_DMA_CHANNEL 1
44#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM20_UP 44#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM20_UP
45 45
46// Audio configuration 46// Audio configuration
47#define AUDIO_PIN A5 47#define AUDIO_PIN A5
diff --git a/keyboards/tzarc/ghoul/rev1/stm32/config.h b/keyboards/tzarc/ghoul/rev1/stm32/config.h
index 1dbc164039..a835b341db 100644
--- a/keyboards/tzarc/ghoul/rev1/stm32/config.h
+++ b/keyboards/tzarc/ghoul/rev1/stm32/config.h
@@ -28,8 +28,8 @@
28#define WS2812_PWM_DRIVER PWMD3 28#define WS2812_PWM_DRIVER PWMD3
29#define WS2812_PWM_CHANNEL 1 29#define WS2812_PWM_CHANNEL 1
30#define WS2812_PWM_PAL_MODE 2 30#define WS2812_PWM_PAL_MODE 2
31#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 31#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
32#define WS2812_DMA_CHANNEL 5 32#define WS2812_PWM_DMA_CHANNEL 5
33#define RGB_ENABLE_PIN C0 33#define RGB_ENABLE_PIN C0
34 34
35// ADC Configuration 35// ADC Configuration
diff --git a/keyboards/viendi8l/config.h b/keyboards/viendi8l/config.h
index 050a0cca22..a449301c2b 100644
--- a/keyboards/viendi8l/config.h
+++ b/keyboards/viendi8l/config.h
@@ -37,5 +37,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
37#define WS2812_PWM_DRIVER PWMD1 37#define WS2812_PWM_DRIVER PWMD1
38#define WS2812_PWM_CHANNEL 3 38#define WS2812_PWM_CHANNEL 3
39#define WS2812_PWM_PAL_MODE 1 39#define WS2812_PWM_PAL_MODE 1
40#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 40#define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
41#define WS2812_DMA_CHANNEL 6 41#define WS2812_PWM_DMA_CHANNEL 6
diff --git a/keyboards/vinhcatba/uncertainty/config.h b/keyboards/vinhcatba/uncertainty/config.h
index 5c02b78efe..82671dfdc0 100644
--- a/keyboards/vinhcatba/uncertainty/config.h
+++ b/keyboards/vinhcatba/uncertainty/config.h
@@ -11,8 +11,8 @@
11#define WS2812_PWM_CHANNEL 4 // CH4 11#define WS2812_PWM_CHANNEL 4 // CH4
12#define WS2812_PWM_PAL_MODE 2 // AF2 12#define WS2812_PWM_PAL_MODE 2 // AF2
13 13
14#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA1 Stream 2 for TIM3_UP (table 28 in reference manual) 14#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA1 Stream 2 for TIM3_UP (table 28 in reference manual)
15#define WS2812_DMA_CHANNEL 5 // DMA Channel 5 for TIM3_UP (table 28 in reference manual) 15#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel 5 for TIM3_UP (table 28 in reference manual)
16 16
17 17
18#define I2C1_CLOCK_SPEED 400000 18#define I2C1_CLOCK_SPEED 400000
diff --git a/keyboards/xelus/ninjin/config.h b/keyboards/xelus/ninjin/config.h
index 9db59dcc66..7a8ac2f013 100644
--- a/keyboards/xelus/ninjin/config.h
+++ b/keyboards/xelus/ninjin/config.h
@@ -20,8 +20,8 @@
20#define WS2812_PWM_DRIVER PWMD1 20#define WS2812_PWM_DRIVER PWMD1
21#define WS2812_PWM_CHANNEL 3 21#define WS2812_PWM_CHANNEL 3
22#define WS2812_PWM_PAL_MODE 2 22#define WS2812_PWM_PAL_MODE 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
25#define WS2812_EXTERNAL_PULLUP 25#define WS2812_EXTERNAL_PULLUP
26 26
27/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 27/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h
index f601945a15..9491d1f175 100644
--- a/keyboards/xelus/valor/rev2/config.h
+++ b/keyboards/xelus/valor/rev2/config.h
@@ -40,9 +40,9 @@
40#define WS2812_PWM_DRIVER PWMD1 40#define WS2812_PWM_DRIVER PWMD1
41#define WS2812_PWM_CHANNEL 2 41#define WS2812_PWM_CHANNEL 2
42#define WS2812_PWM_PAL_MODE 1 42#define WS2812_PWM_PAL_MODE 1
43#define WS2812_DMA_STREAM STM32_DMA1_STREAM6 43#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6
44#define WS2812_DMA_CHANNEL 7 44#define WS2812_PWM_DMA_CHANNEL 7
45#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM1_UP 45#define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM1_UP
46 46
47// RGB Pullup 47// RGB Pullup
48#define WS2812_EXTERNAL_PULLUP 48#define WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/yandrstudio/buff67v3/config.h b/keyboards/yandrstudio/buff67v3/config.h
index 9d3f3e44c0..7ff7636087 100644
--- a/keyboards/yandrstudio/buff67v3/config.h
+++ b/keyboards/yandrstudio/buff67v3/config.h
@@ -23,8 +23,8 @@
23 23
24# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 24# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
25# define WS2812_PWM_CHANNEL 1 // default: 2 25# define WS2812_PWM_CHANNEL 1 // default: 2
26# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 26# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
27# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 27# define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
28 28
29#endif 29#endif
30 30
diff --git a/keyboards/yandrstudio/eau_r2/config.h b/keyboards/yandrstudio/eau_r2/config.h
index aa9b295e02..3a741b3dff 100644
--- a/keyboards/yandrstudio/eau_r2/config.h
+++ b/keyboards/yandrstudio/eau_r2/config.h
@@ -17,5 +17,5 @@
17 17
18#define WS2812_PWM_DRIVER PWMD1 18#define WS2812_PWM_DRIVER PWMD1
19#define WS2812_PWM_CHANNEL 1 19#define WS2812_PWM_CHANNEL 1
20#define WS2812_DMA_STREAM STM32_DMA1_STREAM5 20#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5
21#define WS2812_DMA_CHANNEL 5 21#define WS2812_PWM_DMA_CHANNEL 5
diff --git a/keyboards/yandrstudio/nightstar75/config.h b/keyboards/yandrstudio/nightstar75/config.h
index 4d5c662999..f29bd573b8 100644
--- a/keyboards/yandrstudio/nightstar75/config.h
+++ b/keyboards/yandrstudio/nightstar75/config.h
@@ -20,5 +20,5 @@
20#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 20#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
21#define WS2812_PWM_CHANNEL 2 // default: 2 21#define WS2812_PWM_CHANNEL 2 // default: 2
22#define WS2812_PWM_PAL_MODE 2 22#define WS2812_PWM_PAL_MODE 2
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/yandrstudio/nz64/config.h b/keyboards/yandrstudio/nz64/config.h
index 81b549b60d..6dd155f74e 100644
--- a/keyboards/yandrstudio/nz64/config.h
+++ b/keyboards/yandrstudio/nz64/config.h
@@ -18,5 +18,5 @@
18#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 18#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
19#define WS2812_PWM_CHANNEL 2 // default: 2 19#define WS2812_PWM_CHANNEL 2 // default: 2
20#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 20#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
22#define WS2812_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 22#define WS2812_PWM_DMA_CHANNEL 5 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/yandrstudio/nz67v2/config.h b/keyboards/yandrstudio/nz67v2/config.h
index 7ecdfeafcf..a7ae3e713c 100644
--- a/keyboards/yandrstudio/nz67v2/config.h
+++ b/keyboards/yandrstudio/nz67v2/config.h
@@ -18,5 +18,5 @@
18 18
19#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 19#define WS2812_PWM_DRIVER PWMD3 // default: PWMD2
20#define WS2812_PWM_CHANNEL 2 // default: 2 20#define WS2812_PWM_CHANNEL 2 // default: 2
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
22#define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. 22#define WS2812_PWM_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
diff --git a/keyboards/yandrstudio/tg67/config.h b/keyboards/yandrstudio/tg67/config.h
index 686696be7d..99deee32ac 100644
--- a/keyboards/yandrstudio/tg67/config.h
+++ b/keyboards/yandrstudio/tg67/config.h
@@ -18,5 +18,5 @@
18#define WS2812_PWM_DRIVER PWMD3 18#define WS2812_PWM_DRIVER PWMD3
19#define WS2812_PWM_CHANNEL 2 19#define WS2812_PWM_CHANNEL 2
20#define WS2812_PWM_PAL_MODE 2 20#define WS2812_PWM_PAL_MODE 2
21#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 21#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
22#define WS2812_DMA_CHANNEL 3 22#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/yandrstudio/yr6095/config.h b/keyboards/yandrstudio/yr6095/config.h
index 05a8922788..9837216626 100644
--- a/keyboards/yandrstudio/yr6095/config.h
+++ b/keyboards/yandrstudio/yr6095/config.h
@@ -19,5 +19,5 @@
19 19
20#define WS2812_PWM_DRIVER PWMD3 20#define WS2812_PWM_DRIVER PWMD3
21#define WS2812_PWM_CHANNEL 2 21#define WS2812_PWM_CHANNEL 2
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
23#define WS2812_DMA_CHANNEL 3 23#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/yandrstudio/yr80/config.h b/keyboards/yandrstudio/yr80/config.h
index 08e10e243e..71d8e72587 100644
--- a/keyboards/yandrstudio/yr80/config.h
+++ b/keyboards/yandrstudio/yr80/config.h
@@ -21,5 +21,5 @@
21#define WS2812_PWM_DRIVER PWMD3 21#define WS2812_PWM_DRIVER PWMD3
22#define WS2812_PWM_CHANNEL 2 22#define WS2812_PWM_CHANNEL 2
23#define WS2812_PWM_PAL_MODE 2 23#define WS2812_PWM_PAL_MODE 2
24#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 24#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
25#define WS2812_DMA_CHANNEL 3 25#define WS2812_PWM_DMA_CHANNEL 3
diff --git a/keyboards/yanghu/unicorne/config.h b/keyboards/yanghu/unicorne/config.h
index 99d38fe44a..8e625c6336 100644
--- a/keyboards/yanghu/unicorne/config.h
+++ b/keyboards/yanghu/unicorne/config.h
@@ -31,6 +31,6 @@
31#define WS2812_PWM_DRIVER PWMD3 31#define WS2812_PWM_DRIVER PWMD3
32#define WS2812_PWM_CHANNEL 4 32#define WS2812_PWM_CHANNEL 4
33#define WS2812_PWM_PAL_MODE 2 33#define WS2812_PWM_PAL_MODE 2
34#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 34#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
35#define WS2812_DMA_CHANNEL 5 35#define WS2812_PWM_DMA_CHANNEL 5
36#define WS2812_EXTERNAL_PULLUP 36#define WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/ymdk/id75/config.h b/keyboards/ymdk/id75/config.h
index 14ed1d644c..cb5ac78304 100644
--- a/keyboards/ymdk/id75/config.h
+++ b/keyboards/ymdk/id75/config.h
@@ -19,5 +19,5 @@
19#define WS2812_PWM_DRIVER PWMD4 19#define WS2812_PWM_DRIVER PWMD4
20#define WS2812_PWM_CHANNEL 4 20#define WS2812_PWM_CHANNEL 4
21#define WS2812_PWM_PAL_MODE 2 21#define WS2812_PWM_PAL_MODE 2
22#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 22#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
23#define WS2812_DMA_CHANNEL 7 23#define WS2812_PWM_DMA_CHANNEL 7
diff --git a/keyboards/ymdk/ymd75/rev4/iso/config.h b/keyboards/ymdk/ymd75/rev4/iso/config.h
index 58c4b34d61..3a0dddaad8 100644
--- a/keyboards/ymdk/ymd75/rev4/iso/config.h
+++ b/keyboards/ymdk/ymd75/rev4/iso/config.h
@@ -5,5 +5,5 @@
5#define WS2812_PWM_DRIVER PWMD4 5#define WS2812_PWM_DRIVER PWMD4
6#define WS2812_PWM_CHANNEL 4 6#define WS2812_PWM_CHANNEL 4
7#define WS2812_PWM_PAL_MODE 2 7#define WS2812_PWM_PAL_MODE 2
8#define WS2812_DMA_STREAM STM32_DMA1_STREAM7 8#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7
9#define WS2812_DMA_CHANNEL 7 9#define WS2812_PWM_DMA_CHANNEL 7
diff --git a/keyboards/zvecr/split_blackpill/config.h b/keyboards/zvecr/split_blackpill/config.h
index 4173935642..dd26e9ca32 100644
--- a/keyboards/zvecr/split_blackpill/config.h
+++ b/keyboards/zvecr/split_blackpill/config.h
@@ -20,8 +20,8 @@
20 20
21#define WS2812_PWM_DRIVER PWMD3 21#define WS2812_PWM_DRIVER PWMD3
22#define WS2812_PWM_CHANNEL 1 22#define WS2812_PWM_CHANNEL 1
23#define WS2812_DMA_STREAM STM32_DMA1_STREAM3 23#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM3
24#define WS2812_DMA_CHANNEL 3 24#define WS2812_PWM_DMA_CHANNEL 3
25 25
26/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 26/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
27#define LOCKING_SUPPORT_ENABLE 27#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/zvecr/zv48/config.h b/keyboards/zvecr/zv48/config.h
index e503f07b80..a67a46a185 100644
--- a/keyboards/zvecr/zv48/config.h
+++ b/keyboards/zvecr/zv48/config.h
@@ -22,8 +22,8 @@
22#define WS2812_PWM_DRIVER PWMD3 22#define WS2812_PWM_DRIVER PWMD3
23#define WS2812_PWM_CHANNEL 4 23#define WS2812_PWM_CHANNEL 4
24#define WS2812_PWM_PAL_MODE 2 24#define WS2812_PWM_PAL_MODE 2
25#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 25#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2
26#define WS2812_DMA_CHANNEL 5 26#define WS2812_PWM_DMA_CHANNEL 5
27 27
28/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 28/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
29#define LOCKING_SUPPORT_ENABLE 29#define LOCKING_SUPPORT_ENABLE
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h
index 193b028bde..e933cd6fd1 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/config.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h
@@ -77,11 +77,11 @@
77# ifndef WS2812_PWM_PAL_MODE 77# ifndef WS2812_PWM_PAL_MODE
78# define WS2812_PWM_PAL_MODE 1 78# define WS2812_PWM_PAL_MODE 1
79# endif 79# endif
80# ifndef WS2812_DMA_STREAM 80# ifndef WS2812_PWM_DMA_STREAM
81# define WS2812_DMA_STREAM STM32_DMA2_STREAM5 81# define WS2812_PWM_DMA_STREAM STM32_DMA2_STREAM5
82# endif 82# endif
83# ifndef WS2812_DMA_CHANNEL 83# ifndef WS2812_PWM_DMA_CHANNEL
84# define WS2812_DMA_CHANNEL 6 84# define WS2812_PWM_DMA_CHANNEL 6
85# endif 85# endif
86#endif 86#endif
87 87
diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
index de317e269a..799d96b3c6 100644
--- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
+++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
@@ -136,7 +136,7 @@ static const pio_program_t ws2812_program = {
136}; 136};
137 137
138static uint32_t WS2812_BUFFER[WS2812_LED_COUNT]; 138static uint32_t WS2812_BUFFER[WS2812_LED_COUNT];
139static const rp_dma_channel_t* WS2812_DMA_CHANNEL; 139static const rp_dma_channel_t* dma_channel;
140static uint32_t RP_DMA_MODE_WS2812; 140static uint32_t RP_DMA_MODE_WS2812;
141static int STATE_MACHINE = -1; 141static int STATE_MACHINE = -1;
142 142
@@ -236,9 +236,9 @@ bool ws2812_init(void) {
236 pio_sm_init(pio, STATE_MACHINE, offset, &config); 236 pio_sm_init(pio, STATE_MACHINE, offset, &config);
237 pio_sm_set_enabled(pio, STATE_MACHINE, true); 237 pio_sm_set_enabled(pio, STATE_MACHINE, true);
238 238
239 WS2812_DMA_CHANNEL = dmaChannelAlloc(RP_DMA_CHANNEL_ID_ANY, RP_DMA_PRIORITY_WS2812, (rp_dmaisr_t)ws2812_dma_callback, NULL); 239 dma_channel = dmaChannelAlloc(RP_DMA_CHANNEL_ID_ANY, RP_DMA_PRIORITY_WS2812, (rp_dmaisr_t)ws2812_dma_callback, NULL);
240 dmaChannelEnableInterruptX(WS2812_DMA_CHANNEL); 240 dmaChannelEnableInterruptX(dma_channel);
241 dmaChannelSetDestinationX(WS2812_DMA_CHANNEL, (uint32_t)&pio->txf[STATE_MACHINE]); 241 dmaChannelSetDestinationX(dma_channel, (uint32_t)&pio->txf[STATE_MACHINE]);
242 242
243 // clang-format off 243 // clang-format off
244 RP_DMA_MODE_WS2812 = DMA_CTRL_TRIG_INCR_READ | 244 RP_DMA_MODE_WS2812 = DMA_CTRL_TRIG_INCR_READ |
@@ -256,7 +256,7 @@ static inline void sync_ws2812_transfer(void) {
256 // count of LEDs in milliseconds. This is safely much longer than it 256 // count of LEDs in milliseconds. This is safely much longer than it
257 // would take to push all the data out. 257 // would take to push all the data out.
258 dprintln("ERROR: WS2812 DMA transfer has stalled, aborting!"); 258 dprintln("ERROR: WS2812 DMA transfer has stalled, aborting!");
259 dmaChannelDisableX(WS2812_DMA_CHANNEL); 259 dmaChannelDisableX(dma_channel);
260 pio_sm_clear_fifos(pio, STATE_MACHINE); 260 pio_sm_clear_fifos(pio, STATE_MACHINE);
261 pio_sm_restart(pio, STATE_MACHINE); 261 pio_sm_restart(pio, STATE_MACHINE);
262 chSemReset(&TRANSFER_COUNTER, 0); 262 chSemReset(&TRANSFER_COUNTER, 0);
@@ -284,8 +284,8 @@ void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) {
284#endif 284#endif
285 } 285 }
286 286
287 dmaChannelSetSourceX(WS2812_DMA_CHANNEL, (uint32_t)WS2812_BUFFER); 287 dmaChannelSetSourceX(dma_channel, (uint32_t)WS2812_BUFFER);
288 dmaChannelSetCounterX(WS2812_DMA_CHANNEL, leds); 288 dmaChannelSetCounterX(dma_channel, leds);
289 dmaChannelSetModeX(WS2812_DMA_CHANNEL, RP_DMA_MODE_WS2812); 289 dmaChannelSetModeX(dma_channel, RP_DMA_MODE_WS2812);
290 dmaChannelEnableX(WS2812_DMA_CHANNEL); 290 dmaChannelEnableX(dma_channel);
291} 291}
diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c
index 6bba22767f..e0b3bfd5b5 100644
--- a/platforms/chibios/drivers/ws2812_pwm.c
+++ b/platforms/chibios/drivers/ws2812_pwm.c
@@ -2,6 +2,18 @@
2#include "gpio.h" 2#include "gpio.h"
3#include "chibios_config.h" 3#include "chibios_config.h"
4 4
5// ======== DEPRECATED DEFINES - DO NOT USE ========
6#ifdef WS2812_DMA_STREAM
7# define WS2812_PWM_DMA_STREAM WS2812_DMA_STREAM
8#endif
9#ifdef WS2812_DMA_CHANNEL
10# define WS2812_PWM_DMA_CHANNEL WS2812_DMA_CHANNEL
11#endif
12#ifdef WS2812_DMAMUX_ID
13# define WS2812_PWM_DMAMUX_ID WS2812_DMAMUX_ID
14#endif
15// ========
16
5/* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */ 17/* Adapted from https://github.com/joewa/WS2812-LED-Driver_ChibiOS/ */
6 18
7#ifdef RGBW 19#ifdef RGBW
@@ -19,14 +31,14 @@
19#ifndef WS2812_PWM_PAL_MODE 31#ifndef WS2812_PWM_PAL_MODE
20# define WS2812_PWM_PAL_MODE 2 // DI Pin's alternate function value 32# define WS2812_PWM_PAL_MODE 2 // DI Pin's alternate function value
21#endif 33#endif
22#ifndef WS2812_DMA_STREAM 34#ifndef WS2812_PWM_DMA_STREAM
23# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP 35# define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP
24#endif 36#endif
25#ifndef WS2812_DMA_CHANNEL 37#ifndef WS2812_PWM_DMA_CHANNEL
26# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP 38# define WS2812_PWM_DMA_CHANNEL 2 // DMA Channel for TIMx_UP
27#endif 39#endif
28#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_DMAMUX_ID) 40#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) && !defined(WS2812_PWM_DMAMUX_ID)
29# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM?_UP" 41# error "please consult your MCU's datasheet and specify in your config.h: #define WS2812_PWM_DMAMUX_ID STM32_DMAMUX1_TIM?_UP"
30#endif 42#endif
31 43
32/* Summarize https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf to 44/* Summarize https://www.st.com/resource/en/application_note/an4013-stm32-crossseries-timer-overview-stmicroelectronics.pdf to
@@ -270,20 +282,20 @@
270// For all other STM32 DMA transfer will automatically zero pad. We only need to set the right peripheral width. 282// For all other STM32 DMA transfer will automatically zero pad. We only need to set the right peripheral width.
271#if defined(STM32F2XX) || defined(STM32F4XX) || defined(STM32F7XX) 283#if defined(STM32F2XX) || defined(STM32F4XX) || defined(STM32F7XX)
272# if defined(WS2812_PWM_TIMER_32BIT) 284# if defined(WS2812_PWM_TIMER_32BIT)
273# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_WORD 285# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_WORD
274# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD 286# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
275typedef uint32_t ws2812_buffer_t; 287typedef uint32_t ws2812_buffer_t;
276# else 288# else
277# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_HWORD 289# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_HWORD
278# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD 290# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
279typedef uint16_t ws2812_buffer_t; 291typedef uint16_t ws2812_buffer_t;
280# endif 292# endif
281#else 293#else
282# define WS2812_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE 294# define WS2812_PWM_DMA_MEMORY_WIDTH STM32_DMA_CR_MSIZE_BYTE
283# if defined(WS2812_PWM_TIMER_32BIT) 295# if defined(WS2812_PWM_TIMER_32BIT)
284# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD 296# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_WORD
285# else 297# else
286# define WS2812_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD 298# define WS2812_PWM_DMA_PERIPHERAL_WIDTH STM32_DMA_CR_PSIZE_HWORD
287# endif 299# endif
288typedef uint8_t ws2812_buffer_t; 300typedef uint8_t ws2812_buffer_t;
289#endif 301#endif
@@ -326,26 +338,26 @@ void ws2812_init(void) {
326 // Configure DMA 338 // Configure DMA
327 // dmaInit(); // Joe added this 339 // dmaInit(); // Joe added this
328#if defined(WB32F3G71xx) || defined(WB32FQ95xx) 340#if defined(WB32F3G71xx) || defined(WB32FQ95xx)
329 dmaStreamAlloc(WS2812_DMA_STREAM - WB32_DMA_STREAM(0), 10, NULL, NULL); 341 dmaStreamAlloc(WS2812_PWM_DMA_STREAM - WB32_DMA_STREAM(0), 10, NULL, NULL);
330 dmaStreamSetSource(WS2812_DMA_STREAM, ws2812_frame_buffer); 342 dmaStreamSetSource(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer);
331 dmaStreamSetDestination(WS2812_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register 343 dmaStreamSetDestination(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
332 dmaStreamSetMode(WS2812_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3)); 344 dmaStreamSetMode(WS2812_PWM_DMA_STREAM, WB32_DMA_CHCFG_HWHIF(WS2812_PWM_DMA_CHANNEL) | WB32_DMA_CHCFG_DIR_M2P | WB32_DMA_CHCFG_PSIZE_WORD | WB32_DMA_CHCFG_MSIZE_WORD | WB32_DMA_CHCFG_MINC | WB32_DMA_CHCFG_CIRC | WB32_DMA_CHCFG_TCIE | WB32_DMA_CHCFG_PL(3));
333#else 345#else
334 dmaStreamAlloc(WS2812_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL); 346 dmaStreamAlloc(WS2812_PWM_DMA_STREAM - STM32_DMA_STREAM(0), 10, NULL, NULL);
335 dmaStreamSetPeripheral(WS2812_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register 347 dmaStreamSetPeripheral(WS2812_PWM_DMA_STREAM, &(WS2812_PWM_DRIVER.tim->CCR[WS2812_PWM_CHANNEL - 1])); // Ziel ist der An-Zeit im Cap-Comp-Register
336 dmaStreamSetMemory0(WS2812_DMA_STREAM, ws2812_frame_buffer); 348 dmaStreamSetMemory0(WS2812_PWM_DMA_STREAM, ws2812_frame_buffer);
337 dmaStreamSetMode(WS2812_DMA_STREAM, STM32_DMA_CR_CHSEL(WS2812_DMA_CHANNEL) | STM32_DMA_CR_DIR_M2P | WS2812_DMA_PERIPHERAL_WIDTH | WS2812_DMA_MEMORY_WIDTH | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3)); 349 dmaStreamSetMode(WS2812_PWM_DMA_STREAM, STM32_DMA_CR_CHSEL(WS2812_PWM_DMA_CHANNEL) | STM32_DMA_CR_DIR_M2P | WS2812_PWM_DMA_PERIPHERAL_WIDTH | WS2812_PWM_DMA_MEMORY_WIDTH | STM32_DMA_CR_MINC | STM32_DMA_CR_CIRC | STM32_DMA_CR_PL(3));
338#endif 350#endif
339 dmaStreamSetTransactionSize(WS2812_DMA_STREAM, WS2812_BIT_N); 351 dmaStreamSetTransactionSize(WS2812_PWM_DMA_STREAM, WS2812_BIT_N);
340 // M2P: Memory 2 Periph; PL: Priority Level 352 // M2P: Memory 2 Periph; PL: Priority Level
341 353
342#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE) 354#if (STM32_DMA_SUPPORTS_DMAMUX == TRUE)
343 // If the MCU has a DMAMUX we need to assign the correct resource 355 // If the MCU has a DMAMUX we need to assign the correct resource
344 dmaSetRequestSource(WS2812_DMA_STREAM, WS2812_DMAMUX_ID); 356 dmaSetRequestSource(WS2812_PWM_DMA_STREAM, WS2812_PWM_DMAMUX_ID);
345#endif 357#endif
346 358
347 // Start DMA 359 // Start DMA
348 dmaStreamEnable(WS2812_DMA_STREAM); 360 dmaStreamEnable(WS2812_PWM_DMA_STREAM);
349 361
350 // Configure PWM 362 // Configure PWM
351 // NOTE: It's required that preload be enabled on the timer channel CCR register. This is currently enabled in the 363 // NOTE: It's required that preload be enabled on the timer channel CCR register. This is currently enabled in the