1 /****************************************************************************/
3 /* hopf Elektronik 6039 PCI radio clock header */
4 /* (c) 1999, 2000 Bernd Altmeier <altmeier@ATLSoft.de> */
5 /* Rev. 1.00 Date 25.03.2000 */
7 /****************************************************************************/
12 #define HOPF_MAXVERSION 8
13 #define HOPF_CNTR_MEM_LEN 0x7f
14 #define HOPF_DATA_MEM_LEN 0x3ff /* this is our memory size */
16 /* macros and definition for 32 to 16 to 8 bit conversion */
18 typedef unsigned long DWORD;
19 typedef unsigned char BYTE;
20 typedef unsigned short WORD;
22 #define LOWORD(l) ((WORD)(l))
23 #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
24 #define LOBYTE(w) ((BYTE)(w))
25 #define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
27 /* iocntl codes for driver access */
29 #define HOPF_CLOCK_CMD_MASK 0xff000
31 #define HOPF_CLOCK_GET_LOCAL 0x10000
32 #define HOPF_CLOCK_GET_UTC 0x20000
33 #define HOPF_CLOCK_GET_ANTENNA 0x30000
34 #define HOPF_CLOCK_GET_DIFFERENCE 0x40000
35 #define HOPF_CLOCK_GET_VERSION 0x50000
36 #define HOPF_CLOCK_GET_POSITION 0x60000
37 #define HOPF_CLOCK_GET_SATDATA 0x70000
38 #define HOPF_CLOCK_GET_SYSTEMBYTE 0x80000
39 #define HOPF_CLOCK_GET_IRIG 0x90000
41 #define HOPF_CLOCK_SET_DIFFERENCE 0x01000
42 #define HOPF_CLOCK_SET_ANTENNA 0x02000
43 #define HOPF_CLOCK_SET_TIME 0x03000
44 #define HOPF_CLOCK_SET_POSITION 0x04000
45 #define HOPF_CLOCK_SET_SATMODE 0x05000
46 #define HOPF_CLOCK_SET_SYSTEMBYTE 0x06000
47 #define HOPF_CLOCK_SET_RESET 0x07000
48 #define HOPF_CLOCK_SET_IRIG 0x08000
50 /* clock command codes */
52 #define HOPF_CLOCK_HARDRESET 0x00008000
53 #define HOPF_CLOCK_SOFTRESET 0x00004000
57 typedef struct SatStat{
80 typedef struct GPSPos { /* Position */
86 /* clock hardware version */
88 typedef struct ClockVersion {
89 char cVersion[255]; /* Hardware Version like " DCF-RECEIVER, VERSION 01.01, DAT: 23.NOV.1999" */
90 char dVersion[255]; /* Driver Version */
93 /* hopftime what you think */
95 typedef struct HOPFTIME {
98 unsigned int wDayOfWeek;
101 unsigned int wMinute;
102 unsigned int wSecond;
103 unsigned int wMilliseconds;
104 unsigned int wStatus;
107 /* DCF77 antenna alignment */
109 typedef struct DcfAntenne {
117 typedef struct hopfCard {
120 unsigned long membase; /* without mmap */
124 char versionbuf[1024];
125 char *version[HOPF_MAXVERSION];
128 void *mbase; /* this will be our memory base address */
132 typedef struct cardparams {
137 unsigned int membase;
141 #define WRITE_REGISTER 0x00
142 #define READ_REGISTER 0x01
144 #endif /* _hopf6039_H_ */