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) || \

Reply via email to