RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
powerpc
beatnik
include
bsp
gt_timer.h
1
#ifndef BSP_GT_TIMER_H
2
#define BSP_GT_TIMER_H
3
4
/* Support for hardware timers in the discovery bridge */
5
6
/*
7
* Authorship
8
* ----------
9
* This software ('beatnik' RTEMS BSP for MVME6100 and MVME5500) was
10
* created by Till Straumann <strauman@slac.stanford.edu>, 2005-2007,
11
* Stanford Linear Accelerator Center, Stanford University.
12
*
13
* Acknowledgement of sponsorship
14
* ------------------------------
15
* The 'beatnik' BSP was produced by
16
* the Stanford Linear Accelerator Center, Stanford University,
17
* under Contract DE-AC03-76SFO0515 with the Department of Energy.
18
*
19
* Government disclaimer of liability
20
* ----------------------------------
21
* Neither the United States nor the United States Department of Energy,
22
* nor any of their employees, makes any warranty, express or implied, or
23
* assumes any legal liability or responsibility for the accuracy,
24
* completeness, or usefulness of any data, apparatus, product, or process
25
* disclosed, or represents that its use would not infringe privately owned
26
* rights.
27
*
28
* Stanford disclaimer of liability
29
* --------------------------------
30
* Stanford University makes no representations or warranties, express or
31
* implied, nor assumes any liability for the use of this software.
32
*
33
* Stanford disclaimer of copyright
34
* --------------------------------
35
* Stanford University, owner of the copyright, hereby disclaims its
36
* copyright and all other rights in this software. Hence, anyone may
37
* freely use it for any purpose without restriction.
38
*
39
* Maintenance of notices
40
* ----------------------
41
* In the interest of clarity regarding the origin and status of this
42
* SLAC software, this and all the preceding Stanford University notices
43
* are to remain affixed to any copy or derivative of this software made
44
* or distributed by the recipient and are to be affixed to any copy of
45
* software made or distributed by the recipient that contains a copy or
46
* derivative of this software.
47
*
48
* ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03
49
*/
50
51
#include <stdint.h>
52
53
#ifdef __cplusplus
54
extern
"C"
{
55
#endif
56
57
/* Obtain the number of hardware timers present
58
* The 'timer' argument in the routines below addresses
59
* one of 0..(BSP_timer_instances()-1)
60
*/
61
int
BSP_timer_instances(
void
);
62
63
/* Setup timer but don't start yet; interrupts are enabled if an isr argument is passed
64
* no interrupts are generated otherwise.
65
*
66
* If 'reload' is nonzero then the period is automatically restarted.
67
*
68
* RETURNS: 0 on success, nonzero on error (argument error)
69
*
70
* NOTE: If an ISR is already connected, it must be removed by passing a NULL isr first.
71
*/
72
int
BSP_timer_setup(uint32_t timer,
void
(*isr)(
void
*arg),
void
*arg,
int
reload);
73
74
/* Stop timer;
75
*
76
* RETURNS: 0 on success, nonzero on argument error
77
*/
78
int
BSP_timer_stop(uint32_t timer);
79
80
/* Start timer with 'period' (in ticks)
81
*
82
* RETURNS: 0 on success, nonzero on argument error
83
*/
84
int
BSP_timer_start(uint32_t timer, uint32_t period);
85
86
/* read decrementing timer on the fly
87
*
88
* RETURNS: current count in ticks
89
*/
90
uint32_t BSP_timer_read(uint32_t timer);
91
92
/* get clock rate in Hz */
93
uint32_t BSP_timer_clock_get(uint32_t timer);
94
95
/* Initialize timer facility -- to be used by BSP implementors only
96
*
97
* RETURNS: 0 on success, nonzero if ISR wrapper couldn't be installed
98
*/
99
int
BSP_timers_initialize(
void
);
100
101
/* WATCHDOG TIMER (resets board if enabled and not 'petted' for
102
* some time).
103
*/
104
105
/* Enable watchdog and set a timeout (in us)
106
* RETURNS 0 on success
107
*/
108
int
BSP_watchdog_enable(uint32_t timeout_us);
109
110
/* Disable watchdog
111
* RETURNS 0 on success
112
*/
113
int
BSP_watchdog_disable(
void
);
114
115
/* Check status -- unfortunately there seems to be no way
116
* to read the running value...
117
*
118
* RETURNS nonzero if enabled/running, zero if disabled/stopped
119
*/
120
int
BSP_watchdog_status(
void
);
121
122
/* Pet the watchdog (rearm to configured timeout)
123
* RETURNS: 0 on success, nonzero on failure (watchdog
124
* currently not running).
125
*/
126
int
BSP_watchdog_pet(
void
);
127
128
129
#ifdef __cplusplus
130
}
131
#endif
132
133
#endif
Generated by
1.18.0