This is an automated email from the ASF dual-hosted git repository.
lupyuen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 980b7b1e276 arch/stm32f0l0g0/stm32_pwm.h: restore mapping for
STM32F0L0G0_PWM_MULTICHAN=n
980b7b1e276 is described below
commit 980b7b1e276cfc68159befd65cb754a3daf34360
Author: raiden00pl <[email protected]>
AuthorDate: Wed May 20 13:34:09 2026 +0200
arch/stm32f0l0g0/stm32_pwm.h: restore mapping for
STM32F0L0G0_PWM_MULTICHAN=n
restore mapping for CONFIG_STM32F0L0G0_PWM_MULTICHAN=n.
It should not be removed in 4df80e192806456dbda80cb76f7d5f8c345338b3
Signed-off-by: raiden00pl <[email protected]>
---
arch/arm/src/stm32f0l0g0/stm32_pwm.h | 161 +++++++++++++++++++++++++++++++++++
1 file changed, 161 insertions(+)
diff --git a/arch/arm/src/stm32f0l0g0/stm32_pwm.h
b/arch/arm/src/stm32f0l0g0/stm32_pwm.h
index a603069ad13..88683b9b662 100644
--- a/arch/arm/src/stm32f0l0g0/stm32_pwm.h
+++ b/arch/arm/src/stm32f0l0g0/stm32_pwm.h
@@ -105,6 +105,8 @@
defined(CONFIG_STM32F0L0G0_TIM15_PWM) ||
defined(CONFIG_STM32F0L0G0_TIM16_PWM) || \
defined(CONFIG_STM32F0L0G0_TIM17_PWM)
+#ifdef CONFIG_STM32F0L0G0_PWM_MULTICHAN
+
#ifdef CONFIG_STM32F0L0G0_TIM1_CHANNEL1
# ifdef CONFIG_STM32F0L0G0_TIM1_CH1OUT
# define PWM_TIM1_CH1CFG GPIO_TIM1_CH1OUT
@@ -335,6 +337,165 @@
MAX(PWM_TIM16_NCHANNELS, \
PWM_TIM17_NCHANNELS))))))
+#else /* !CONFIG_STM32F0L0G0_PWM_MULTICHAN */
+
+/* For each timer that is enabled for PWM usage, we need the following
+ * additional configuration settings:
+ *
+ * CONFIG_STM32F0L0G0_TIMx_CHANNEL - Specifies the timer output channel
+ * {1,..,4}
+ * PWM_TIMx_CHn - One of the values defined in chip/stm32*_pinmap.h.
+ * In the case where there are multiple pin selections, the correct
+ * setting must be provided in the arch/board/board.h file.
+ *
+ * NOTE:
+ * The STM32 timers are each capable of generating different signals on
+ * each of the four channels with different duty cycles. That capability
+ * is not supported by this driver: Only one output channel per timer.
+ */
+
+#ifdef CONFIG_STM32F0L0G0_TIM1_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM1_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM1_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM1_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM1_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM1_CH1MODE CONFIG_STM32F0L0G0_TIM1_CHMODE
+# define PWM_TIM1_CH1CFG GPIO_TIM1_CH1OUT
+# define PWM_TIM1_CH1NCFG 0
+# elif CONFIG_STM32F0L0G0_TIM1_CHANNEL == 2
+# define CONFIG_STM32F0L0G0_TIM1_CHANNEL2 1
+# define CONFIG_STM32F0L0G0_TIM1_CH2MODE CONFIG_STM32F0L0G0_TIM1_CHMODE
+# define PWM_TIM1_CH2CFG GPIO_TIM1_CH2OUT
+# define PWM_TIM1_CH2NCFG 0
+# elif CONFIG_STM32F0L0G0_TIM1_CHANNEL == 3
+# define CONFIG_STM32F0L0G0_TIM1_CHANNEL3 1
+# define CONFIG_STM32F0L0G0_TIM1_CH3MODE CONFIG_STM32F0L0G0_TIM1_CHMODE
+# define PWM_TIM1_CH3CFG GPIO_TIM1_CH3OUT
+# define PWM_TIM1_CH3NCFG 0
+# elif CONFIG_STM32F0L0G0_TIM1_CHANNEL == 4
+# define CONFIG_STM32F0L0G0_TIM1_CHANNEL4 1
+# define CONFIG_STM32F0L0G0_TIM1_CH4MODE CONFIG_STM32F0L0G0_TIM1_CHMODE
+# define PWM_TIM1_CH4CFG GPIO_TIM1_CH4OUT
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM1_CHANNEL"
+# endif
+# define PWM_TIM1_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM2_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM2_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM2_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM2_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM2_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM2_CH1MODE CONFIG_STM32F0L0G0_TIM2_CHMODE
+# define PWM_TIM2_CH1CFG GPIO_TIM2_CH1OUT
+# elif CONFIG_STM32F0L0G0_TIM2_CHANNEL == 2
+# define CONFIG_STM32F0L0G0_TIM2_CHANNEL2 1
+# define CONFIG_STM32F0L0G0_TIM2_CH2MODE CONFIG_STM32F0L0G0_TIM2_CHMODE
+# define PWM_TIM2_CH2CFG GPIO_TIM2_CH2OUT
+# elif CONFIG_STM32F0L0G0_TIM2_CHANNEL == 3
+# define CONFIG_STM32F0L0G0_TIM2_CHANNEL3 1
+# define CONFIG_STM32F0L0G0_TIM2_CH3MODE CONFIG_STM32F0L0G0_TIM2_CHMODE
+# define PWM_TIM2_CH3CFG GPIO_TIM2_CH3OUT
+# elif CONFIG_STM32F0L0G0_TIM2_CHANNEL == 4
+# define CONFIG_STM32F0L0G0_TIM2_CHANNEL4 1
+# define CONFIG_STM32F0L0G0_TIM2_CH4MODE CONFIG_STM32F0L0G0_TIM2_CHMODE
+# define PWM_TIM2_CH4CFG GPIO_TIM2_CH4OUT
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM2_CHANNEL"
+# endif
+# define PWM_TIM2_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM3_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM3_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM3_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM3_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM3_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM3_CH1MODE CONFIG_STM32F0L0G0_TIM3_CHMODE
+# define PWM_TIM3_CH1CFG GPIO_TIM3_CH1OUT
+# elif CONFIG_STM32F0L0G0_TIM3_CHANNEL == 2
+# define CONFIG_STM32F0L0G0_TIM3_CHANNEL2 1
+# define CONFIG_STM32F0L0G0_TIM3_CH2MODE CONFIG_STM32F0L0G0_TIM3_CHMODE
+# define PWM_TIM3_CH2CFG GPIO_TIM3_CH2OUT
+# elif CONFIG_STM32F0L0G0_TIM3_CHANNEL == 3
+# define CONFIG_STM32F0L0G0_TIM3_CHANNEL3 1
+# define CONFIG_STM32F0L0G0_TIM3_CH3MODE CONFIG_STM32F0L0G0_TIM3_CHMODE
+# define PWM_TIM3_CH3CFG GPIO_TIM3_CH3OUT
+# elif CONFIG_STM32F0L0G0_TIM3_CHANNEL == 4
+# define CONFIG_STM32F0L0G0_TIM3_CHANNEL4 1
+# define CONFIG_STM32F0L0G0_TIM3_CH4MODE CONFIG_STM32F0L0G0_TIM3_CHMODE
+# define PWM_TIM3_CH4CFG GPIO_TIM3_CH4OUT
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM3_CHANNEL"
+# endif
+# define PWM_TIM3_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM14_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM14_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM14_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM14_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM14_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM14_CH1MODE CONFIG_STM32F0L0G0_TIM14_CHMODE
+# define PWM_TIM14_CH1CFG GPIO_TIM14_CH1OUT
+# define PWM_TIM14_CH1NCFG 0
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM14_CHANNEL"
+# endif
+# define PWM_TIM14_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM15_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM15_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM15_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM15_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM15_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM15_CH1MODE CONFIG_STM32F0L0G0_TIM15_CHMODE
+# define PWM_TIM15_CH1CFG GPIO_TIM15_CH1OUT
+# define PWM_TIM15_CH1NCFG 0
+# elif CONFIG_STM32F0L0G0_TIM15_CHANNEL == 2
+# define CONFIG_STM32F0L0G0_TIM15_CHANNEL2 1
+# define CONFIG_STM32F0L0G0_TIM15_CH2MODE CONFIG_STM32F0L0G0_TIM15_CHMODE
+# define PWM_TIM15_CH2CFG GPIO_TIM15_CH2OUT
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM15_CHANNEL"
+# endif
+# define PWM_TIM15_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM16_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM16_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM16_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM16_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM16_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM16_CH1MODE CONFIG_STM32F0L0G0_TIM16_CHMODE
+# define PWM_TIM16_CH1CFG GPIO_TIM16_CH1OUT
+# define PWM_TIM16_CH1NCFG 0
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM16_CHANNEL"
+# endif
+# define PWM_TIM16_NCHANNELS 1
+#endif
+
+#ifdef CONFIG_STM32F0L0G0_TIM17_PWM
+# if !defined(CONFIG_STM32F0L0G0_TIM17_CHANNEL)
+# error "CONFIG_STM32F0L0G0_TIM17_CHANNEL must be provided"
+# elif CONFIG_STM32F0L0G0_TIM17_CHANNEL == 1
+# define CONFIG_STM32F0L0G0_TIM17_CHANNEL1 1
+# define CONFIG_STM32F0L0G0_TIM17_CH1MODE CONFIG_STM32F0L0G0_TIM17_CHMODE
+# define PWM_TIM17_CH1CFG GPIO_TIM17_CH1OUT
+# define PWM_TIM17_CH1NCFG 0
+# else
+# error "Unsupported value of CONFIG_STM32F0L0G0_TIM17_CHANNEL"
+# endif
+# define PWM_TIM17_NCHANNELS 1
+#endif
+
+#define PWM_NCHANNELS 1
+
+#endif /* CONFIG_STM32F0L0G0_PWM_MULTICHAN */
+
/* Complementary outputs support */
#if defined(CONFIG_STM32F0L0G0_TIM1_CH1NOUT) ||
defined(CONFIG_STM32F0L0G0_TIM1_CH2NOUT) || \