/*
  A ttrx device driver
  eunil@hep.korea.ac.kr
*/


#define	TTRX_NAME   "ttrx"
#define	TTRX_FNAME  "/dev/ttrx"

#ifndef CONFIG_PCI
# error "This driver needs PCI support to be available"
#endif
#define TTRX_VENDOR     0x10b5
#define TTRX_DEVID      0x9054
#define TTRX_SUB_VENDOR 0x10b5
#define TTRX_SUB_ID     0x5258
#define TTRX_MAX_DEV    2       // there are two PCI slots for ttrx
#define TTRX_REG_LENGTH 0x0450  // the length of the register address space
#define TTRX_ADDR_OFF   4       // last two bits seem to be dropped

#include 

void cleanup_module(void);

/*
 * local to ttrx device
 */
typedef struct {
  unsigned int pid;  
  unsigned int pver;  
} ttrx_regs; 

typedef struct
{
  struct        pci_dev * pcidev;
  int           id;
  int           initialized;
  unsigned int  pid;
  char          name[32];
  caddr_t       mreg_page;
  
  volatile      ttrx_regs* mreg;
  u32           *ttrx_base;
  
} ttrx_t;

typedef ttrx_t * dev_p;