hopf6039.h revision 285612
1206497Sluigi/****************************************************************************/ 2206497Sluigi/* hopf6039.h */ 3206497Sluigi/* hopf Elektronik 6039 PCI radio clock header */ 4206497Sluigi/* (c) 1999, 2000 Bernd Altmeier <altmeier@ATLSoft.de> */ 5206497Sluigi/* Rev. 1.00 Date 25.03.2000 */ 6206497Sluigi/* History: */ 7206497Sluigi/****************************************************************************/ 8206497Sluigi 9206497Sluigi#ifndef _hopf6039_H_ 10206497Sluigi#define _hopf6039_H_ 11206497Sluigi 12206497Sluigi#define HOPF_MAXVERSION 8 13206497Sluigi#define HOPF_CNTR_MEM_LEN 0x7f 14206497Sluigi#define HOPF_DATA_MEM_LEN 0x3ff /* this is our memory size */ 15206497Sluigi 16206497Sluigi/* macros and definition for 32 to 16 to 8 bit conversion */ 17206497Sluigi 18206497Sluigitypedef unsigned long DWORD; 19206497Sluigitypedef unsigned char BYTE; 20typedef 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 57typedef 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 80typedef struct GPSPos { /* Position */ 81 long wAltitude; 82 long wLongitude; 83 long wLatitude; 84} GPSPos; 85 86/* clock hardware version */ 87 88typedef 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 95typedef 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 109typedef struct DcfAntenne { 110 BYTE bStatus; 111 BYTE bStatus1; 112 WORD wAntValue; 113} DcfAntenne; 114 115/* hopf PCI clock */ 116 117typedef 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 132typedef 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