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:51 UTC
[incubator-nuttx] 02/02: imxrt/flexpwm: set number of modules 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 6f6338cea06979feb9a3bd08ea2d0908851d10ba
Author: Michal Lenc <mi...@seznam.cz>
AuthorDate: Fri May 13 13:32:50 2022 +0200
imxrt/flexpwm: set number of modules based on configuration options
Number of channels are now set based on enabled modules (channels) in
configuration instead of the usage of static 4.
Signed-off-by: Michal Lenc <mi...@seznam.cz>
---
arch/arm/src/imxrt/imxrt_flexpwm.c | 8 +--
arch/arm/src/imxrt/imxrt_flexpwm.h | 108 +++++++++++++++++++++++++++++++++++++
2 files changed, 112 insertions(+), 4 deletions(-)
diff --git a/arch/arm/src/imxrt/imxrt_flexpwm.c b/arch/arm/src/imxrt/imxrt_flexpwm.c
index 6a2693f378..9e1d064541 100644
--- a/arch/arm/src/imxrt/imxrt_flexpwm.c
+++ b/arch/arm/src/imxrt/imxrt_flexpwm.c
@@ -220,7 +220,7 @@ static struct imxrt_flexpwm_s g_pwm1 =
{
.ops = &g_pwmops,
.modules = g_pwm1_modules,
- .modules_num = 4,
+ .modules_num = FLEXPWM1_NMODULES,
.frequency = 0,
.base = IMXRT_FLEXPWM1_BASE,
};
@@ -322,7 +322,7 @@ static struct imxrt_flexpwm_s g_pwm2 =
{
.ops = &g_pwmops,
.modules = g_pwm2_modules,
- .modules_num = 4,
+ .modules_num = FLEXPWM2_NMODULES,
.frequency = 0,
.base = IMXRT_FLEXPWM2_BASE,
};
@@ -424,7 +424,7 @@ static struct imxrt_flexpwm_s g_pwm3 =
{
.ops = &g_pwmops,
.modules = g_pwm3_modules,
- .modules_num = 4,
+ .modules_num = FLEXPWM3_NMODULES,
.frequency = 0,
.base = IMXRT_FLEXPWM3_BASE,
};
@@ -526,7 +526,7 @@ static struct imxrt_flexpwm_s g_pwm4 =
{
.ops = &g_pwmops,
.modules = g_pwm4_modules,
- .modules_num = 4,
+ .modules_num = FLEXPWM4_NMODULES,
.frequency = 0,
.base = IMXRT_FLEXPWM4_BASE,
};
diff --git a/arch/arm/src/imxrt/imxrt_flexpwm.h b/arch/arm/src/imxrt/imxrt_flexpwm.h
index c8a99f2c4d..1de4cdd67f 100644
--- a/arch/arm/src/imxrt/imxrt_flexpwm.h
+++ b/arch/arm/src/imxrt/imxrt_flexpwm.h
@@ -36,6 +36,114 @@
* Pre-processor Definitions
****************************************************************************/
+#ifdef CONFIG_IMXRT_FLEXPWM1_MOD1
+#define FLEXPWM1_MOD1 1
+#else
+#define FLEXPWM1_MOD1 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM1_MOD2
+#define FLEXPWM1_MOD2 1
+#else
+#define FLEXPWM1_MOD2 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM1_MOD3
+#define FLEXPWM1_MOD3 1
+#else
+#define FLEXPWM1_MOD3 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM1_MOD4
+#define FLEXPWM1_MOD4 1
+#else
+#define FLEXPWM1_MOD4 0
+#endif
+
+#define FLEXPWM1_NMODULES (FLEXPWM1_MOD1 + FLEXPWM1_MOD2 + \
+ FLEXPWM1_MOD3 + FLEXPWM1_MOD4)
+
+#ifdef CONFIG_IMXRT_FLEXPWM2_MOD1
+#define FLEXPWM2_MOD1 1
+#else
+#define FLEXPWM2_MOD1 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM2_MOD2
+#define FLEXPWM2_MOD2 1
+#else
+#define FLEXPWM2_MOD2 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM2_MOD3
+#define FLEXPWM2_MOD3 1
+#else
+#define FLEXPWM2_MOD3 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM2_MOD4
+#define FLEXPWM2_MOD4 1
+#else
+#define FLEXPWM2_MOD4 0
+#endif
+
+#define FLEXPWM2_NMODULES (FLEXPWM2_MOD1 + FLEXPWM2_MOD2 + \
+ FLEXPWM2_MOD3 + FLEXPWM2_MOD4)
+
+#ifdef CONFIG_IMXRT_FLEXPWM3_MOD1
+#define FLEXPWM3_MOD1 1
+#else
+#define FLEXPWM3_MOD1 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM3_MOD2
+#define FLEXPWM3_MOD2 1
+#else
+#define FLEXPWM3_MOD2 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM3_MOD3
+#define FLEXPWM3_MOD3 1
+#else
+#define FLEXPWM3_MOD3 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM3_MOD4
+#define FLEXPWM3_MOD4 1
+#else
+#define FLEXPWM3_MOD4 0
+#endif
+
+#define FLEXPWM3_NMODULES (FLEXPWM3_MOD1 + FLEXPWM3_MOD2 + \
+ FLEXPWM3_MOD3 + FLEXPWM3_MOD4)
+
+#ifdef CONFIG_IMXRT_FLEXPWM4_MOD1
+#define FLEXPWM4_MOD1 1
+#else
+#define FLEXPWM4_MOD1 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM4_MOD2
+#define FLEXPWM4_MOD2 1
+#else
+#define FLEXPWM4_MOD2 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM4_MOD3
+#define FLEXPWM4_MOD3 1
+#else
+#define FLEXPWM4_MOD3 0
+#endif
+
+#ifdef CONFIG_IMXRT_FLEXPWM4_MOD4
+#define FLEXPWM4_MOD4 1
+#else
+#define FLEXPWM4_MOD4 0
+#endif
+
+#define FLEXPWM4_NMODULES (FLEXPWM4_MOD1 + FLEXPWM4_MOD2 + \
+ FLEXPWM4_MOD3 + FLEXPWM4_MOD4)
+
/****************************************************************************
* Public Function Prototypes
****************************************************************************/