From 51069d7c81a2320ffd487e5788e6bc48ede3f11a Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 2 May 2013 08:15:34 +0000 Subject: [PATCH] FlexPWM driver naming adjustments. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5652 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c | 52 ++++++++++---------- os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h | 10 +++- testhal/SPC560Pxx/PWM-ICU/main.c | 2 +- testhal/SPC56ELxx/PWM-ICU/main.c | 2 +- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c index bb29bdaf2..7a92b1044 100644 --- a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c +++ b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.c @@ -179,8 +179,8 @@ void pwm_lld_start_submodule(PWMDriver *pwmp, uint8_t sid) { pwmp->flexpwmp->SUB[sid].VAL[1].R = pwmperiod / 2; /* Sets the submodule channels.*/ - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting reloads.*/ pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 0; pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 1; @@ -189,7 +189,7 @@ void pwm_lld_start_submodule(PWMDriver *pwmp, uint8_t sid) { pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(pwmperiod / 2) + 1U; break; - case CENTER_ALIGNED_PWM: + case PWM_ALIGN_CENTER: /* Setting reloads.*/ pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 1; pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 0; @@ -332,14 +332,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp, } /* Sets the channel width.*/ - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: if (nwidth >= 0) pwmp->flexpwmp->SUB[sid].VAL[3].R = nwidth; else pwmp->flexpwmp->SUB[sid].VAL[3].R = ~((pwmperiod / 2) - width) + 1U; break; - case CENTER_ALIGNED_PWM: + case PWM_ALIGN_CENTER: pwmp->flexpwmp->SUB[sid].VAL[3].R = width / 2; pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(width / 2) + 1U; break; @@ -363,14 +363,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp, } } /* Sets the channel width.*/ - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: if (nwidth >= 0) pwmp->flexpwmp->SUB[sid].VAL[5].R = nwidth; else pwmp->flexpwmp->SUB[sid].VAL[5].R = ~((pwmperiod / 2) - width) + 1U; break; - case CENTER_ALIGNED_PWM: + case PWM_ALIGN_CENTER: pwmp->flexpwmp->SUB[sid].VAL[5].R = width / 2; pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(width / 2) + 1U; break; @@ -1609,9 +1609,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[0].VAL[0].R = 0; pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: - + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[0].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1631,8 +1630,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[1].VAL[0].R = 0; pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U; @@ -1653,9 +1652,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[2].VAL[0].R = 0; pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: - + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[2].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1675,8 +1673,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[3].VAL[0].R = 0; pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[3].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1696,8 +1694,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[0].VAL[0].R = 0; pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[0].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1717,8 +1715,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[1].VAL[0].R = 0; pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[1].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1738,8 +1736,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[2].VAL[0].R = 0; pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[2].VAL[4].R = ~(pwmperiod / 2) + 1U; @@ -1759,8 +1757,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) { pwmp->flexpwmp->SUB[3].VAL[0].R = 0; pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2; - switch (pwmp->config->mode & PWM_OUTPUT_MASK) { - case EDGE_ALIGNED_PWM: + switch (pwmp->config->mode & PWM_ALIGN_MASK) { + case PWM_ALIGN_EDGE: /* Setting active front of PWM channels.*/ pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U; pwmp->flexpwmp->SUB[3].VAL[4].R = ~(pwmperiod / 2) + 1U; diff --git a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h index 9777e83a4..ea9acb7cd 100644 --- a/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h +++ b/os/hal/platforms/SPC5xx/FlexPWM_v1/pwm_lld.h @@ -93,17 +93,23 @@ */ #define PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW 0x20 +/** + * @brief Alignment mode mask. + * @note This is an SPC5-specific setting. + */ +#define PWM_ALIGN_MASK 0x01 + /** * @brief Edge-Aligned PWM functional mode. * @note This is an SPC5-specific setting. */ -#define EDGE_ALIGNED_PWM 0x01 +#define PWM_ALIGN_EDGE 0x00 /** * @brief Center-Aligned PWM functional mode. * @note This is an SPC5-specific setting. */ -#define CENTER_ALIGNED_PWM 0x02 +#define PWM_ALIGN_CENTER 0x01 /*===========================================================================*/ /* Driver pre-compile time settings. */ diff --git a/testhal/SPC560Pxx/PWM-ICU/main.c b/testhal/SPC560Pxx/PWM-ICU/main.c index eb12cda0e..31ef444ee 100644 --- a/testhal/SPC560Pxx/PWM-ICU/main.c +++ b/testhal/SPC560Pxx/PWM-ICU/main.c @@ -37,7 +37,7 @@ static PWMConfig pwmcfg = { {PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb}, {PWM_OUTPUT_DISABLED, NULL} }, - EDGE_ALIGNED_PWM + PWM_ALIGN_EDGE }; icucnt_t last_width, last_period; diff --git a/testhal/SPC56ELxx/PWM-ICU/main.c b/testhal/SPC56ELxx/PWM-ICU/main.c index 65e2435be..e6ac6281f 100644 --- a/testhal/SPC56ELxx/PWM-ICU/main.c +++ b/testhal/SPC56ELxx/PWM-ICU/main.c @@ -37,7 +37,7 @@ static PWMConfig pwmcfg = { {PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb}, {PWM_OUTPUT_DISABLED, NULL} }, - EDGE_ALIGNED_PWM + PWM_ALIGN_EDGE }; icucnt_t last_width, last_period;