You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2022/05/13 15:55:50 UTC

[incubator-nuttx] 01/02: samv7/pwm: set number of channels based on configuration options

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit bdcf8b2b6651fe7ea0859766c311e59b35e10a35
Author: Michal Lenc <mi...@seznam.cz>
AuthorDate: Fri May 13 13:31:18 2022 +0200

    samv7/pwm: set number of channels based on configuration options
    
    Number of channels are now set based on enabled channels in configuration
    instead of the usage of static 4.
    
    Signed-off-by: Michal Lenc <mi...@seznam.cz>
---
 arch/arm/src/samv7/sam_pwm.c |  4 ++--
 arch/arm/src/samv7/sam_pwm.h | 54 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/arch/arm/src/samv7/sam_pwm.c b/arch/arm/src/samv7/sam_pwm.c
index a47fd6d3e4..6fd40119c7 100644
--- a/arch/arm/src/samv7/sam_pwm.c
+++ b/arch/arm/src/samv7/sam_pwm.c
@@ -147,7 +147,7 @@ static struct sam_pwm_s g_pwm0 =
 {
   .ops = &g_pwmops,
   .channels = g_pwm0_channels,
-  .channels_num = 4,
+  .channels_num = PWM0_NCHANNELS,
   .frequency = 0,
   .base = SAM_PWM0_BASE,
 };
@@ -191,7 +191,7 @@ static struct sam_pwm_s g_pwm1 =
 {
   .ops = &g_pwmops,
   .channels = g_pwm1_channels,
-  .channels_num = 4,
+  .channels_num = PWM1_NCHANNELS,
   .frequency = 0,
   .base = SAM_PWM1_BASE,
 };
diff --git a/arch/arm/src/samv7/sam_pwm.h b/arch/arm/src/samv7/sam_pwm.h
index ca17af95ca..d8fb1e1ebd 100644
--- a/arch/arm/src/samv7/sam_pwm.h
+++ b/arch/arm/src/samv7/sam_pwm.h
@@ -36,6 +36,60 @@
  * Pre-processor Definitions
  ****************************************************************************/
 
+#ifdef CONFIG_SAMV7_PWM0_CH0
+#define PWM0_CH0 1
+#else
+#define PWM0_CH0 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM0_CH1
+#define PWM0_CH1 1
+#else
+#define PWM0_CH1 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM0_CH2
+#define PWM0_CH2 1
+#else
+#define PWM0_CH2 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM0_CH3
+#define PWM0_CH3 1
+#else
+#define PWM0_CH3 0
+#endif
+
+#define PWM0_NCHANNELS (PWM0_CH0 + PWM0_CH1 + \
+                        PWM0_CH2 + PWM0_CH3)
+
+#ifdef CONFIG_SAMV7_PWM1_CH0
+#define PWM1_CH0 1
+#else
+#define PWM1_CH0 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM1_CH1
+#define PWM1_CH1 1
+#else
+#define PWM1_CH1 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM1_CH2
+#define PWM1_CH2 1
+#else
+#define PWM1_CH2 0
+#endif
+
+#ifdef CONFIG_SAMV7_PWM1_CH3
+#define PWM1_CH3 1
+#else
+#define PWM1_CH3 0
+#endif
+
+#define PWM1_NCHANNELS (PWM1_CH0 + PWM1_CH1 + \
+                        PWM1_CH2 + PWM1_CH3)
+
 /****************************************************************************
  * Public Function Prototypes
  ****************************************************************************/