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