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
****************************************************************************/