diff --git a/src/drivers/stm32/drv_io_timer.c b/src/drivers/stm32/drv_io_timer.c
index 1b1471d4c2b9390eb220f8727b658ec0b1ebbf39..2c1634e633bf7a760ff8dd006884ca2383bf5fdc 100644
--- a/src/drivers/stm32/drv_io_timer.c
+++ b/src/drivers/stm32/drv_io_timer.c
@@ -63,6 +63,12 @@
 #include <stm32_gpio.h>
 #include <stm32_tim.h>
 
+#if defined(HAVE_GTIM_CCXNP)
+#define HW_GTIM_CCER_CC1NP GTIM_CCER_CC1NP
+#else
+#  define HW_GTIM_CCER_CC1NP    0
+#endif
+
 #define arraySize(a) (sizeof((a))/sizeof(((a)[0])))
 
 /* If the timer clock source provided as clock_freq is the STM32_APBx_TIMx_CLKIN
@@ -729,7 +735,7 @@ int io_timer_channel_init(unsigned channel, io_timer_channel_mode_t mode,
 
 		/* on PWM Out ccer_setbits is 0 */
 
-		clearbits = (GTIM_CCER_CC1E | GTIM_CCER_CC1P | GTIM_CCER_CC1NP) << (shifts * CCER_C1_NUM_BITS);
+		clearbits = (GTIM_CCER_CC1E | GTIM_CCER_CC1P | HW_GTIM_CCER_CC1NP) << (shifts * CCER_C1_NUM_BITS);
 		setbits  = ccer_setbits << (shifts * CCER_C1_NUM_BITS);
 		rvalue = rCCER(timer);
 		rvalue &= ~clearbits;