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 <michallenc@seznam.cz>
This commit is contained in:
Michal Lenc 2022-05-13 13:32:50 +02:00 committed by Alan Carvalho de Assis
parent bdcf8b2b66
commit 6f6338cea0
2 changed files with 112 additions and 4 deletions

View file

@ -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,
};

View file

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