diff --git a/common_features.mk b/common_features.mk
index 2806544f8b..088db89cac 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -304,6 +304,12 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
         SRC += ws2812.c
     else
         SRC += ws2812_$(strip $(WS2812_DRIVER)).c
+
+        ifeq ($(strip $(PLATFORM)), CHIBIOS)
+            ifeq ($(strip $(WS2812_DRIVER)), pwm)
+                OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
+            endif
+        endif
     endif
 
     # add extra deps
diff --git a/keyboards/zvecr/split_blackpill/rules.mk b/keyboards/zvecr/split_blackpill/rules.mk
index 151ed15d84..6feec7dd97 100644
--- a/keyboards/zvecr/split_blackpill/rules.mk
+++ b/keyboards/zvecr/split_blackpill/rules.mk
@@ -31,6 +31,5 @@ FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 SPLIT_KEYBOARD = yes
 SERIAL_DRIVER = usart
 WS2812_DRIVER = pwm
-OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
 
 LAYOUTS = ortho_4x12
diff --git a/keyboards/zvecr/zv48/rules.mk b/keyboards/zvecr/zv48/rules.mk
index 41ec506e6c..d725f9cb11 100644
--- a/keyboards/zvecr/zv48/rules.mk
+++ b/keyboards/zvecr/zv48/rules.mk
@@ -22,7 +22,6 @@ FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches
 SPLIT_KEYBOARD = yes
 SERIAL_DRIVER = usart
 WS2812_DRIVER = pwm
-OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
 
 DEFAULT_FOLDER = zvecr/zv48/f401