aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal')
-rw-r--r--os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.c104
-rw-r--r--os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.h22
2 files changed, 64 insertions, 62 deletions
diff --git a/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.c b/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.c
index 25bdd282a..9be0ed1c1 100644
--- a/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.c
+++ b/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.c
@@ -51,22 +51,15 @@ static uint32_t emios1_active_channels;
/* Driver local functions. */
/*===========================================================================*/
+#if SPC5_HAS_EMIOS0
void reset_emios0_active_channels() {
emios0_active_channels = 0;
}
-void reset_emios1_active_channels() {
- emios1_active_channels = 0;
-}
-
uint32_t get_emios0_active_channels() {
return emios0_active_channels;
}
-uint32_t get_emios1_active_channels() {
- return emios1_active_channels;
-}
-
void increase_emios0_active_channels() {
emios0_active_channels++;
}
@@ -75,14 +68,6 @@ void decrease_emios0_active_channels() {
emios0_active_channels--;
}
-void increase_emios1_active_channels() {
- emios1_active_channels++;
-}
-
-void decrease_emios1_active_channels() {
- emios1_active_channels--;
-}
-
#if HAL_USE_ICU
void icu_active_emios0_clock(ICUDriver *icup) {
/* If this is the first Channel activated then the eMIOS0 is enabled.*/
@@ -101,6 +86,16 @@ void icu_active_emios0_clock(ICUDriver *icup) {
}
}
+
+void icu_deactive_emios0_clock(ICUDriver *icup) {
+ /* If it is the last active channels then the eMIOS0 is disabled.*/
+ if (emios0_active_channels == 0) {
+ if (icup->emiosp->UCDIS.R == 0) {
+ halSPCSetPeripheralClockMode(SPC5_EMIOS0_PCTL,
+ SPC5_EMIOS0_STOP_PCTL);
+ }
+ }
+}
#endif
#if HAL_USE_PWM
@@ -121,7 +116,35 @@ void pwm_active_emios0_clock(PWMDriver *pwmp) {
}
}
+
+void pwm_deactive_emios0_clock(PWMDriver *pwmp) {
+ /* If it is the last active channels then the eMIOS0 is disabled.*/
+ if (emios0_active_channels == 0) {
+ if (pwmp->emiosp->UCDIS.R == 0) {
+ halSPCSetPeripheralClockMode(SPC5_EMIOS0_PCTL,
+ SPC5_EMIOS0_STOP_PCTL);
+ }
+ }
+}
#endif
+#endif
+
+#if SPC5_HAS_EMIOS1
+void reset_emios1_active_channels() {
+ emios1_active_channels = 0;
+}
+
+uint32_t get_emios1_active_channels() {
+ return emios1_active_channels;
+}
+
+void increase_emios1_active_channels() {
+ emios1_active_channels++;
+}
+
+void decrease_emios1_active_channels() {
+ emios1_active_channels--;
+}
#if HAL_USE_ICU
void icu_active_emios1_clock(ICUDriver *icup) {
@@ -141,6 +164,16 @@ void icu_active_emios1_clock(ICUDriver *icup) {
}
}
+
+void icu_deactive_emios1_clock(ICUDriver *icup) {
+ /* If it is the last active channels then the eMIOS1 is disabled.*/
+ if (emios1_active_channels == 0) {
+ if (icup->emiosp->UCDIS.R == 0) {
+ halSPCSetPeripheralClockMode(SPC5_EMIOS1_PCTL,
+ SPC5_EMIOS1_STOP_PCTL);
+ }
+ }
+}
#endif
#if HAL_USE_PWM
@@ -161,45 +194,7 @@ void pwm_active_emios1_clock(PWMDriver *pwmp) {
}
}
-#endif
-
-#if HAL_USE_ICU
-void icu_deactive_emios0_clock(ICUDriver *icup) {
- /* If it is the last active channels then the eMIOS0 is disabled.*/
- if (emios0_active_channels == 0) {
- if (icup->emiosp->UCDIS.R == 0) {
- halSPCSetPeripheralClockMode(SPC5_EMIOS0_PCTL,
- SPC5_EMIOS0_STOP_PCTL);
- }
- }
-}
-#endif
-#if HAL_USE_PWM
-void pwm_deactive_emios0_clock(PWMDriver *pwmp) {
- /* If it is the last active channels then the eMIOS0 is disabled.*/
- if (emios0_active_channels == 0) {
- if (pwmp->emiosp->UCDIS.R == 0) {
- halSPCSetPeripheralClockMode(SPC5_EMIOS0_PCTL,
- SPC5_EMIOS0_STOP_PCTL);
- }
- }
-}
-#endif
-
-#if HAL_USE_ICU
-void icu_deactive_emios1_clock(ICUDriver *icup) {
- /* If it is the last active channels then the eMIOS1 is disabled.*/
- if (emios1_active_channels == 0) {
- if (icup->emiosp->UCDIS.R == 0) {
- halSPCSetPeripheralClockMode(SPC5_EMIOS1_PCTL,
- SPC5_EMIOS1_STOP_PCTL);
- }
- }
-}
-#endif
-
-#if HAL_USE_PWM
void pwm_deactive_emios1_clock(PWMDriver *pwmp) {
/* If it is the last active channels then the eMIOS1 is disabled.*/
if (emios1_active_channels == 0) {
@@ -210,6 +205,7 @@ void pwm_deactive_emios1_clock(PWMDriver *pwmp) {
}
}
#endif
+#endif
/*===========================================================================*/
/* Driver interrupt handlers. */
diff --git a/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.h b/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.h
index e8f69bfba..8ac549c65 100644
--- a/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.h
+++ b/os/hal/platforms/SPC5xx/eMIOS_v1/spc5_emios.h
@@ -149,30 +149,36 @@
/* External declarations. */
/*===========================================================================*/
+#if SPC5_HAS_EMIOS0
void reset_emios0_active_channels(void);
-void reset_emios1_active_channels(void);
uint32_t get_emios0_active_channels(void);
-uint32_t get_emios1_active_channels(void);
void increase_emios0_active_channels(void);
void decrease_emios0_active_channels(void);
-void increase_emios1_active_channels(void);
-void decrease_emios1_active_channels(void);
+void active_emios0_clock(ICUDriver *icup, PWMDriver *pwmp);
+void deactive_emios0_clock(ICUDriver *icup, PWMDriver *pwmp);
#if HAL_USE_ICU
void icu_active_emios0_clock(ICUDriver *icup);
-void icu_active_emios1_clock(ICUDriver *icup);
+void icu_deactive_emios0_clock(ICUDriver *icup);
#endif
#if HAL_USE_PWM
void pwm_active_emios0_clock(PWMDriver *pwmp);
-void pwm_active_emios1_clock(PWMDriver *pwmp);
+void pwm_deactive_emios0_clock(PWMDriver *pwmp);
+#endif
#endif
+#if SPC5_HAS_EMIOS1
+void reset_emios1_active_channels(void);
+uint32_t get_emios1_active_channels(void);
+void increase_emios1_active_channels(void);
+void decrease_emios1_active_channels(void);
#if HAL_USE_ICU
-void icu_deactive_emios0_clock(ICUDriver *icup);
+void icu_active_emios1_clock(ICUDriver *icup);
void icu_deactive_emios1_clock(ICUDriver *icup);
#endif
#if HAL_USE_PWM
-void pwm_deactive_emios0_clock(PWMDriver *pwmp);
+void pwm_active_emios1_clock(PWMDriver *pwmp);
void pwm_deactive_emios1_clock(PWMDriver *pwmp);
#endif
+#endif
#endif /* HAL_USE_ICU || HAL_USE_PWM */