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