diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-12-23 07:29:47 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-01-27 08:09:05 +0100 |
commit | 2145853b009e939dfbe14869b710133f50500a26 (patch) | |
tree | cb4504a3f442a83ea508a03b31aa8379b42790ed /c/src/lib/libbsp/powerpc/mpc55xxevb | |
parent | bsps/arm: Fix broken switch statement (diff) | |
download | rtems-2145853b009e939dfbe14869b710133f50500a26.tar.bz2 |
score: Fix simple timecounter support
Close #2502.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb')
-rw-r--r-- | c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c index 4de9a520ab..c0b8905b20 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/clock/clock-config.c @@ -55,18 +55,22 @@ static uint32_t mpc55xx_tc_get_timecount(struct timecounter *tc) ); } -static void mpc55xx_tc_tick(void) -{ - rtems_timecounter_simple_upcounter_tick(&mpc55xx_tc, mpc55xx_tc_get); -} - -static void mpc55xx_clock_at_tick(void) +static void mpc55xx_tc_at_tick(rtems_timecounter_simple *tc) { union EMIOS_CSR_tag csr = MPC55XX_ZERO_FLAGS; csr.B.FLAG = 1; EMIOS.CH [MPC55XX_CLOCK_EMIOS_CHANNEL].CSR.R = csr.R; } +static void mpc55xx_tc_tick(void) +{ + rtems_timecounter_simple_upcounter_tick( + &mpc55xx_tc, + mpc55xx_tc_get, + mpc55xx_tc_at_tick + ); +} + static void mpc55xx_clock_handler_install(rtems_isr_entry isr) { rtems_status_code sc = RTEMS_SUCCESSFUL; @@ -174,12 +178,7 @@ static uint32_t mpc55xx_tc_get_timecount(struct timecounter *tc) ); } -static void mpc55xx_tc_tick(void) -{ - rtems_timecounter_simple_downcounter_tick(&mpc55xx_tc, mpc55xx_tc_get); -} - -static void mpc55xx_clock_at_tick(void) +static void mpc55xx_tc_at_tick(rtems_timecounter_simple *tc) { volatile PIT_RTI_CHANNEL_tag *channel = &PIT_RTI.CHANNEL [MPC55XX_CLOCK_PIT_CHANNEL]; @@ -188,6 +187,15 @@ static void mpc55xx_clock_at_tick(void) channel->TFLG.R = tflg.R; } +static void mpc55xx_tc_tick(void) +{ + rtems_timecounter_simple_downcounter_tick( + &mpc55xx_tc, + mpc55xx_tc_get, + mpc55xx_tc_at_tick + ); +} + static void mpc55xx_clock_handler_install(rtems_isr_entry isr) { rtems_status_code sc = RTEMS_SUCCESSFUL; @@ -238,8 +246,6 @@ static void mpc55xx_clock_cleanup(void) #endif #define Clock_driver_timecounter_tick() mpc55xx_tc_tick() -#define Clock_driver_support_at_tick() \ - mpc55xx_clock_at_tick() #define Clock_driver_support_initialize_hardware() \ mpc55xx_clock_initialize() #define Clock_driver_support_install_isr(isr, old_isr) \ |