summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/sh/sh7032
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-26 23:02:03 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-26 23:02:03 +0000
commit99f67930c27d2dcc757b90aa9f3c15639456dde2 (patch)
tree9ee200ba474c123fd54edc8d0b92e04f6bf59e84 /c/src/lib/libcpu/sh/sh7032
parent2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-99f67930c27d2dcc757b90aa9f3c15639456dde2.tar.bz2
2007-11-26 Joel Sherrill <joel.sherrill@oarcorp.com>
* sh7032/clock/ckinit.c, sh7032/delay/delay.c, sh7032/timer/timer.c, sh7045/clock/ckinit.c, sh7045/timer/timer.c, sh7750/clock/ckinit.c, sh7750/timer/timer.c: Eliminate the clicks_per_microsecond field in the SuperH CPU Table and define another mechanism for drivers to obtain this information.
Diffstat (limited to '')
-rw-r--r--c/src/lib/libcpu/sh/sh7032/clock/ckinit.c17
-rw-r--r--c/src/lib/libcpu/sh/sh7032/delay/delay.c9
-rw-r--r--c/src/lib/libcpu/sh/sh7032/timer/timer.c4
3 files changed, 17 insertions, 13 deletions
diff --git a/c/src/lib/libcpu/sh/sh7032/clock/ckinit.c b/c/src/lib/libcpu/sh/sh7032/clock/ckinit.c
index 96abdd3f46..7468d404a7 100644
--- a/c/src/lib/libcpu/sh/sh7032/clock/ckinit.c
+++ b/c/src/lib/libcpu/sh/sh7032/clock/ckinit.c
@@ -31,6 +31,8 @@
#include <rtems/score/ispsh7032.h>
#include <rtems/score/iosh7032.h>
+extern uint32_t bsp_clicks_per_second;
+
#ifndef CLOCKPRIO
#define CLOCKPRIO 10
#endif
@@ -80,7 +82,8 @@
*/
static unsigned int sh_clicks_per_tick(
unsigned int clicks_per_sec,
- unsigned int usec_per_tick )
+ unsigned int usec_per_tick
+)
{
#if 1
unsigned int clicks_per_tick = 0 ;
@@ -195,9 +198,9 @@ void Install_clock(
)
{
uint8_t temp8 = 0;
- uint32_t microseconds_per_tick ;
- uint32_t cclicks_per_tick ;
- uint16_t Clock_limit ;
+ uint32_t microseconds_per_tick;
+ uint32_t cclicks_per_tick;
+ uint16_t Clock_limit;
/*
* Initialize the clock tick device driver variables
@@ -211,10 +214,8 @@ void Install_clock(
microseconds_per_tick = 10000 ; /* 10000 us */
/* clock clicks per tick */
- cclicks_per_tick =
- sh_clicks_per_tick(
- rtems_cpu_configuration_get_clicks_per_second() / CLOCK_SCALE,
- microseconds_per_tick );
+ cclicks_per_tick = sh_clicks_per_tick(
+ bsp_clicks_per_second / CLOCK_SCALE, microseconds_per_tick );
Clock_isrs_const = cclicks_per_tick >> 16 ;
if ( ( cclicks_per_tick | 0xffff ) > 0 )
diff --git a/c/src/lib/libcpu/sh/sh7032/delay/delay.c b/c/src/lib/libcpu/sh/sh7032/delay/delay.c
index 41d4753908..16645ea200 100644
--- a/c/src/lib/libcpu/sh/sh7032/delay/delay.c
+++ b/c/src/lib/libcpu/sh/sh7032/delay/delay.c
@@ -23,6 +23,8 @@
#include <rtems.h>
+extern uint32_t bsp_clicks_per_second;
+
/*
* Simple spin delay in microsecond units for device drivers.
* This is very dependent on the clock speed of the target.
@@ -38,10 +40,9 @@
void CPU_delay( uint32_t microseconds )
{
- register uint32_t clicks_per_usec =
- rtems_cpu_configuration_get_clicks_per_second() / 1000000 ;
- register uint32_t _delay =
- (microseconds) * (clicks_per_usec);
+ register uint32_t clicks_per_usec = bsp_clicks_per_second / 1000000;
+ register uint32_t _delay = (microseconds) * (clicks_per_usec);
+
asm volatile (
"0: add #-4,%0\n\
nop\n\
diff --git a/c/src/lib/libcpu/sh/sh7032/timer/timer.c b/c/src/lib/libcpu/sh/sh7032/timer/timer.c
index 6b7a8ba335..3fb5151457 100644
--- a/c/src/lib/libcpu/sh/sh7032/timer/timer.c
+++ b/c/src/lib/libcpu/sh/sh7032/timer/timer.c
@@ -34,6 +34,8 @@
#include <rtems/score/ispsh7032.h>
#include <rtems/score/iosh7032.h>
+extern uint32_t bsp_clicks_per_second;
+
#define I_CLK_PHI_1 0
#define I_CLK_PHI_2 1
#define I_CLK_PHI_4 2
@@ -77,7 +79,7 @@ void Timer_initialize( void )
rtems_interrupt_level level;
rtems_isr *ignored;
- Timer_HZ = rtems_cpu_configuration_get_clicks_per_second() / CLOCK_SCALE ;
+ Timer_HZ = bsp_clicks_per_second / CLOCK_SCALE ;
/*
* Timer has never overflowed. This may not be necessary on some