source: rtems/c/src/libchip/rtc/rtc.h @ 866c9dd5

4.104.114.84.9
Last change on this file since 866c9dd5 was a1f514f, checked in by Joel Sherrill <joel.sherrill@…>, on Jul 28, 1998 at 11:03:40 PM

First cut implementation of real-time clock support in libchip. This
version compiles cleanly but there is not a BSP with a configuration
table to utilize it.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2 *  This file contains the Real-Time Clock definitions.
3 *
4 *  COPYRIGHT (c) 1989-1998.
5 *  On-Line Applications Research Corporation (OAR).
6 *  Copyright assigned to U.S. Government, 1994.
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.OARcorp.com/rtems/license.html.
11 *
12 *
13 *  $Id$
14 */
15
16#ifndef __LIBCHIP_RTC_h
17#define __LIBCHIP_RTC_h
18
19/*
20 *  Types for get and set register routines
21 */
22
23typedef unsigned32 (*getRegister_f)(unsigned32 port, unsigned8 register);
24typedef void       (*setRegister_f)(
25                            unsigned32 port, unsigned8 reg, unsigned32 value);
26
27typedef struct _rtc_fns {
28  boolean (*deviceProbe)(int minor);
29  void    (*deviceInitialize)(int minor);
30  int     (*deviceGetTime)(int minor, rtems_time_of_day *time);
31  int     (*deviceSetTime)(int minor, rtems_time_of_day *time);
32} rtc_fns;
33
34typedef enum {
35  RTC_M48T08,                  /* SGS-Thomsom M48T08 or M48T18 */
36  RTC_ICM_7170,                /* Harris ICM-7170 */
37  RTC_CUSTOM                   /* BSP specific driver */
38} rtc_devs;
39
40/*
41 * Each field is interpreted thus:
42 *
43 * sDeviceName  This is the name of the device.
44 *
45 * deviceType   This indicates the chip type.
46 *
47 * pDeviceFns   This is a pointer to the set of driver routines to use.
48 *
49 * pDeviceParams This contains either device specific data or a pointer to a
50 *              device specific information table.
51 *
52 * ulCtrlPort1  This is the primary control port number for the device.
53 *
54 * ulCtrlPort2  This is the secondary control port number.
55 *
56 * ulDataPort   This is the port number for the data port of the device
57 *
58 * getRegister  This is the routine used to read register values.
59 *
60 * setRegister  This is the routine used to write register values.
61 */
62
63typedef struct _rtc_tbl {
64  char          *sDeviceName;
65  rtc_devs       deviceType;
66  rtc_fns       *pDeviceFns;
67  boolean      (*deviceProbe)(int minor);
68  void          *pDeviceParams;
69  unsigned32     ulCtrlPort1;
70  unsigned32     ulCtrlPort2;
71  unsigned32     ulDataPort;
72  getRegister_f  getRegister;
73  setRegister_f  setRegister;
74  unsigned int   ulIntVector;
75} rtc_tbl;
76
77extern rtc_tbl        RTC_Port_Tbl[];
78extern unsigned long  RTC_Port_Count;
79
80
81boolean rtc_probe( int minor );
82
83#endif
84/* end of include file */
Note: See TracBrowser for help on using the repository browser.