1 /****************************************************************************/ 2 /* hopf6039.h */ 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 */ 6 /* History: */ 7 /****************************************************************************/ 8 9 #ifndef _hopf6039_H_ 10 #define _hopf6039_H_ 11 12 #define HOPF_MAXVERSION 8 13 #define HOPF_CNTR_MEM_LEN 0x7f 14 #define HOPF_DATA_MEM_LEN 0x3ff /* this is our memory size */ 15 16 /* macros and definition for 32 to 16 to 8 bit conversion */ 17 18 typedef unsigned long DWORD; 19 typedef unsigned char BYTE; 20 typedef unsigned short WORD; 21 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)) 26 27 /* iocntl codes for driver access */ 28 29 #define HOPF_CLOCK_CMD_MASK 0xff000 30 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 40 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 49 50 /* clock command codes */ 51 52 #define HOPF_CLOCK_HARDRESET 0x00008000 53 #define HOPF_CLOCK_SOFTRESET 0x00004000 54 55 /* sat-information */ 56 57 typedef struct SatStat{ 58 BYTE wVisible; 59 BYTE wMode; 60 BYTE wSat0; 61 BYTE wRat0; 62 BYTE wSat1; 63 BYTE wRat1; 64 BYTE wSat2; 65 BYTE wRat2; 66 BYTE wSat3; 67 BYTE wRat3; 68 BYTE wSat4; 69 BYTE wRat4; 70 BYTE wSat5; 71 BYTE wRat5; 72 BYTE wSat6; 73 BYTE wRat6; 74 BYTE wSat7; 75 BYTE wRat7; 76 } SatStat; 77 78 /* GPS position */ 79 80 typedef struct GPSPos { /* Position */ 81 long wAltitude; 82 long wLongitude; 83 long wLatitude; 84 } GPSPos; 85 86 /* clock hardware version */ 87 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 */ 91 } ClockVersion; 92 93 /* hopftime what you think */ 94 95 typedef struct HOPFTIME { 96 unsigned int wYear; 97 unsigned int wMonth; 98 unsigned int wDayOfWeek; 99 unsigned int wDay; 100 unsigned int wHour; 101 unsigned int wMinute; 102 unsigned int wSecond; 103 unsigned int wMilliseconds; 104 unsigned int wStatus; 105 } HOPFTIME; 106 107 /* DCF77 antenna alignment */ 108 109 typedef struct DcfAntenne { 110 BYTE bStatus; 111 BYTE bStatus1; 112 WORD wAntValue; 113 } DcfAntenne; 114 115 /* hopf PCI clock */ 116 117 typedef struct hopfCard { 118 char name[32]; 119 unsigned irq; 120 unsigned long membase; /* without mmap */ 121 unsigned int port; 122 123 int versionlen; 124 char versionbuf[1024]; 125 char *version[HOPF_MAXVERSION]; 126 char cardname[32]; 127 int interrupt; 128 void *mbase; /* this will be our memory base address */ 129 130 } hopfCard; 131 132 typedef struct cardparams { 133 unsigned int port; 134 unsigned irq; 135 int cardtype; 136 int cardnr; 137 unsigned int membase; 138 } cardparams; 139 140 141 #define WRITE_REGISTER 0x00 142 #define READ_REGISTER 0x01 143 144 #endif /* _hopf6039_H_ */ 145