summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/arm/at91rm9200/clock/clock.c')
-rw-r--r--c/src/lib/libcpu/arm/at91rm9200/clock/clock.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c b/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c
index 16cf145b37..42b85f3f98 100644
--- a/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c
+++ b/c/src/lib/libcpu/arm/at91rm9200/clock/clock.c
@@ -22,8 +22,6 @@
#include <at91rm9200.h>
#include <at91rm9200_pmc.h>
-static unsigned long st_pimr_reload;
-
/**
* Enables clock interrupt.
*
@@ -77,17 +75,16 @@ rtems_irq_connect_data clock_isr_data = {
BSP_install_rtems_irq_handler(&clock_isr_data); \
} while(0)
-uint16_t st_pimr_value;
static void Clock_driver_support_initialize_hardware(void)
{
uint32_t st_str;
int slck;
+ unsigned long value;
/* the system timer is driven from SLCK */
slck = at91rm9200_get_slck();
- st_pimr_value = (((rtems_configuration_get_microseconds_per_tick() * slck) +
+ value = (((rtems_configuration_get_microseconds_per_tick() * slck) +
(1000000/2))/ 1000000);
- st_pimr_reload = st_pimr_value;
/* read the status to clear the int */
st_str = ST_REG(ST_SR);
@@ -97,21 +94,9 @@ static void Clock_driver_support_initialize_hardware(void)
AIC_SMR_REG(AIC_SMR_SYSIRQ) = AIC_SMR_PRIOR(0x7);
/* set the timer value */
- ST_REG(ST_PIMR) = st_pimr_reload;
+ ST_REG(ST_PIMR) = value;
}
-static uint32_t bsp_clock_nanoseconds_since_last_tick(void)
-{
- uint16_t slck_counts;
-
- slck_counts = st_pimr_value - st_pimr_reload;
- return (rtems_configuration_get_microseconds_per_tick() * slck_counts * 1000)
- / st_pimr_value;
-}
-
-#define Clock_driver_nanoseconds_since_last_tick \
- bsp_clock_nanoseconds_since_last_tick
-
#define Clock_driver_support_at_tick() \
do { \
uint32_t st_str; \
@@ -126,4 +111,6 @@ static void Clock_driver_support_shutdown_hardware( void )
BSP_remove_rtems_irq_handler(&clock_isr_data);
}
+#define CLOCK_DRIVER_USE_DUMMY_TIMECOUNTER
+
#include "../../../../libbsp/shared/clockdrv_shell.h"