patch-2.4.22 linux-2.4.22/arch/mips/galileo-boards/ev64120/cntmr.c
Next file: linux-2.4.22/arch/mips/galileo-boards/ev64120/dma.c
Previous file: linux-2.4.22/arch/mips/galileo-boards/ev64120/Makefile
Back to the patch index
Back to the overall index
- Lines: 208
- Date:
1969-12-31 16:00:00.000000000 -0800
- Orig file:
linux-2.4.21/arch/mips/galileo-boards/ev64120/cntmr.c
- Orig date:
2002-11-28 15:53:10.000000000 -0800
diff -urN linux-2.4.21/arch/mips/galileo-boards/ev64120/cntmr.c linux-2.4.22/arch/mips/galileo-boards/ev64120/cntmr.c
@@ -1,207 +0,0 @@
-/* cntmr.c - GT counters/timers functions */
-
-/* Copyright - Galileo technology. 9/3/2000 */
-
-/*
-DESCRIPTION
-This file contains function which serves the user with a complete interface
-to the GT internal counters and timers, please advise: each counter/timer unit
-can function only as a counter or a timer at current time.
-Counter/timer 0 is 32 bit wide.
-Counters/timers 1-3 are 24 bit wide.
-*/
-
-/* includes */
-
-#ifdef __linux__
-#include <asm/galileo/evb64120A/cntmr.h>
-#include <asm/galileo/evb64120A/core.h>
-#else
-#include "cntmr.h"
-#include "core.h"
-#endif
-
-/********************************************************************
-* cntTmrStart - Starts a counter/timer with given an initiate value.
-*
-* INPUTS: unsigned int countNum - Selects one of the 8 counters/timers.
-* unsigned int countValue - Initial value for count down.
-* CNT_TMR_OP_MODES opMode - Set Mode, Counter or Timer.
-*
-* RETURNS: false if one of the parameters is erroneous, true otherwise.
-*********************************************************************/
-
-bool cntTmrStart(CNTMR_NUM countNum, unsigned int countValue,
- CNT_TMR_OP_MODES opMode)
-{
- unsigned int command = 1;
- unsigned int value;
-
- if (countNum > LAST_CNTMR)
- return false;
- else {
- GT_REG_READ(TIMER_COUNTER_CONTROL, &value);
- cntTmrDisable(countNum);
- GT_REG_WRITE((TIMER_COUNTER0 + (4 * countNum)),
- countValue);
- command = command << countNum * 2;
- value = value | command;
- command = command << 1;
- switch (opMode) {
- case TIMER: /* The Timer/Counter bit set to logic '1' */
- value = value | command;
- break;
- case COUNTER: /* The Timer/Counter bit set to logic '0' */
- value = value & ~command;
- break;
- default:
- return false;
- }
- GT_REG_WRITE(TIMER_COUNTER_CONTROL, value);
- return true;
- }
-}
-
-/********************************************************************
-* cntTmrDisable - Disables the timer/counter operation and return its
-* value.
-*
-* INPUTS: unsigned int countNum - Selects one of the 8 counters/timers.
-* RETURNS: The counter/timer value (unsigned int), if any of the arguments are
-* erroneous return 0.
-*********************************************************************/
-
-unsigned int cntTmrDisable(CNTMR_NUM countNum)
-{
- unsigned int command = 1;
- unsigned int regValue;
- unsigned int value;
-
- GT_REG_READ(TIMER_COUNTER_CONTROL, &value);
- if (countNum > LAST_CNTMR)
- return 0;
- GT_REG_READ(TIMER_COUNTER0 + 4 * countNum, ®Value);
- command = command << countNum * 2; /* Disable the timer/counter */
- value = value & ~command;
- GT_REG_WRITE(TIMER_COUNTER_CONTROL, value);
- return regValue;
-}
-
-/********************************************************************
-* cntTmrRead - Reads a timer or a counter value. (This operation can be
-* perform while the counter/timer is active).
-*
-* RETURNS: The counter/timer value. If wrong input value, return 0.
-*********************************************************************/
-
-unsigned int cntTmrRead(CNTMR_NUM countNum)
-{
- unsigned int value;
- if (countNum > LAST_CNTMR)
- return 0;
- else
- GT_REG_READ(TIMER_COUNTER0 + countNum * 4, &value);
- return value;
-}
-
-/********************************************************************
-* cntTmrEnable - Set enable-bit of timer/counter.
-* Be aware: If the counter/timer is active, this function
-* will terminate with an false.
-*
-* INPUTS: unsigned int countNum - Selects one of the 8 counters/timers.
-* RETURNS: false if one of the parameters is erroneous, true otherwise.
-*********************************************************************/
-
-bool cntTmrEnable(CNTMR_NUM countNum)
-{
- unsigned int command = 1;
- unsigned int value;
- GT_REG_READ(TIMER_COUNTER_CONTROL, &value);
- if (countNum > LAST_CNTMR)
- return false;
- else {
- command = command << countNum * 2;
- if ((command & value) != 0) /* ==> The counter/timer is enabled */
- return false; /* doesn't make sense to Enable an "enabled" counter */
- value = value | command;
- GT_REG_WRITE(TIMER_COUNTER_CONTROL, value);
- return true;
- }
-}
-
-/********************************************************************
-* cntTmrLoad - loading value for timer number countNum.
-* Be aware: If this function try to load value to an enabled
-* counter/timer it terminate with false.
-*
-* INPUTS: unsigned int countNum - Selects one of the 8 counters/timers.
-* unsigned int countValue - The value for load the register.
-* RETURNS: false if one of the parameters is erroneous, true otherwise.
-*********************************************************************/
-
-bool cntTmrLoad(unsigned int countNum, unsigned int countValue)
-{
- unsigned int command = 1;
- unsigned int value;
- GT_REG_READ(TIMER_COUNTER_CONTROL, &value);
- if (countNum > LAST_CNTMR)
- return false;
- else {
- command = command << countNum * 2;
- value = value & command;
- if (value != 0) { /* ==> The counter/timer is enabled */
- return false; /* can't reload value when counter/timer is enabled */
- } else {
- GT_REG_WRITE((TIMER_COUNTER0 + (4 * countNum)),
- countValue);
- return true;
- }
-
- }
-}
-
-/********************************************************************
-* cntTmrSetMode - Configurate the Mode of the channel to work as a counter
-* or as a timer. (for more details on the different between
-* those two modes is written in the Data Sheet).
-* NOTE: This function only set the counter/timer mode and
-* don't enable it.
-* Be aware: If this function try to load value to an enabled
-* counter/timer it terminate with false.
-*
-* INPUTS: unsigned int countNum - Selects one of the 8 counters/timers.
-* CNT_TMR_OP_MODES opMode - TIMER or COUNTER mode.
-* RETURNS: false if one of the parameters is erroneous true otherwise .
-*********************************************************************/
-
-bool cntTmrSetMode(CNTMR_NUM countNum, CNT_TMR_OP_MODES opMode)
-{
- unsigned int command = 1;
- unsigned int value;
-
- GT_REG_READ(TIMER_COUNTER_CONTROL, &value);
- if (countNum > LAST_CNTMR)
- return false;
- else {
- command = command << countNum * 2;
- value = value & command;
- if (value != 0) { /* ==> The counter/timer is enabled */
- return false; /* can't set the Mode when counter/timer is enabled */
- } else {
- command = command << 1;
- switch (opMode) {
- case TIMER:
- value = value | command; /* The Timer/Counter bit set to logic '1' */
- break;
- case COUNTER:
- value = value & ~command; /*The Timer/Counter bit set to logic '0' */
- break;
- default:
- return false;
- }
- GT_REG_WRITE(TIMER_COUNTER_CONTROL, value);
- return true;
- }
- }
-}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)