/*
 * (C) Copyright 2009 Reinhard Arlt, reinhard.arlt@esd-electronics.com
 *
 * base on universe.h by
 *
 * (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com
 *
 * See file CREDITS for list of people who contributed to this
 * project.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 * MA 02111-1307 USA
 */

#ifndef _tsi148_h
#define _tsi148_h

#ifndef PCI_DEVICE_ID_TUNDRA_TSI148
#define PCI_DEVICE_ID_TUNDRA_TSI148 0x0148
#endif

typedef struct _TSI148 TSI148;
typedef struct _OUTBOUND OUTBOUND;
typedef struct _INBOUND  INBOUND;
typedef struct _TDMA_CMD_PACKET TDMA_CMD_PACKET;

struct _OUTBOUND {
	unsigned int otsau;                   /* 0x000 Outbound start       upper */
	unsigned int otsal;                   /* 0x004 Outbouud start       lower */
	unsigned int oteau;                   /* 0x008 Outbound end         upper */
	unsigned int oteal;                   /* 0x00c Outbound end         lower */
	unsigned int otofu;                   /* 0x010 Outbound translation upper */
	unsigned int otofl;                   /* 0x014 Outbound translation lower */
	unsigned int otbs;                    /* 0x018 Outbound translation 2eSST */
	unsigned int otat;                    /* 0x01c Outbound translation attr  */
};

struct _INBOUND {
	unsigned int itsau;                   /* 0x000 inbound  start       upper */
	unsigned int itsal;                   /* 0x004 inbouud  start       lower */
	unsigned int iteau;                   /* 0x008 inbound  end         upper */
	unsigned int iteal;                   /* 0x00c inbound  end         lower */
	unsigned int itofu;                   /* 0x010 inbound  translation upper */
	unsigned int itofl;                   /* 0x014 inbound  translation lower */
	unsigned int itat;                    /* 0x018 inbound  translation attr  */
	unsigned int spare;                   /* 0x01c not used                   */
};

struct _TSI148 {
	unsigned int pci_id;                  /* 0x000         */
	unsigned int pci_csr;                 /* 0x004         */
	unsigned int pci_class;               /* 0x008         */
	unsigned int pci_misc0;               /* 0x00c         */
	unsigned int pci_mbarl;               /* 0x010         */
	unsigned int pci_mbarh;               /* 0x014         */
	unsigned int spare0[(0x03c-0x018)/4]; /* 0x018         */
	unsigned int pci_misc1;               /* 0x03c         */
	unsigned int pci_pcixcap;             /* 0x040         */
	unsigned int pci_pcixstat;            /* 0x044         */
	unsigned int spare1[(0x100-0x048)/4]; /* 0x048         */
	OUTBOUND     outbound[8];             /* 0x100         */
	unsigned int viack[8];                /* 0x204         */
	unsigned int rmwau;                   /* 0x220         */
	unsigned int rmwal;                   /* 0x224         */
	unsigned int rmwen;                   /* 0x228         */
	unsigned int rmwc;                    /* 0x22c         */
	unsigned int rmws;                    /* 0x230         */
	unsigned int vmctrl;                  /* 0x234         */
	unsigned int vctrl;                   /* 0x238         */
	unsigned int vstat;                   /* 0x23c         */
	unsigned int pcsr;                    /* 0x240         */
	unsigned int spare2[3];               /* 0x244 - 0x24c */
	unsigned int vmefl;                   /* 0x250         */
	unsigned int spare3[3];               /* 0x254 - 0x25c */
	unsigned int veau;                    /* 0x260         */
	unsigned int veal;                    /* 0x264         */
	unsigned int veat;                    /* 0x268         */
	unsigned int spare4[1];               /* 0x26c         */
	unsigned int edpau;                   /* 0x270         */
	unsigned int edpal;                   /* 0x274         */
	unsigned int edpxa;                   /* 0x278         */
	unsigned int edpxs;                   /* 0x27c         */
	unsigned int edpat;                   /* 0x280         */
	unsigned int spare5[31];              /* 0x284 - 0x2fc */
	INBOUND      inbound[8];              /* 0x100         */
	unsigned int gbau;                    /* 0x400         */
	unsigned int gbal;                    /* 0x404         */
	unsigned int gcsrat;                  /* 0x408         */
	unsigned int cbau;                    /* 0x40c         */
	unsigned int cbal;                    /* 0x410         */
	unsigned int crgat;                   /* 0x414         */
	unsigned int crou;                    /* 0x418         */
	unsigned int crol;                    /* 0x41c         */
	unsigned int crat;                    /* 0x420         */
	unsigned int lmbau;                   /* 0x424         */
	unsigned int lmbal;                   /* 0x428         */
	unsigned int lmat;                    /* 0x42c         */
	unsigned int r64bcu;                  /* 0x430         */
	unsigned int r64bcl;                  /* 0x434         */
	unsigned int bpgtr;                   /* 0x438         */
	unsigned int bpctr;                   /* 0x43c         */
	unsigned int vicr;                    /* 0x440         */
	unsigned int spare6[1];               /* 0x444         */
	unsigned int inten;                   /* 0x448         */
	unsigned int inteo;                   /* 0x44c         */
	unsigned int ints;                    /* 0x450         */
	unsigned int intc;                    /* 0x454         */
	unsigned int intm1;                   /* 0x458         */
	unsigned int intm2;                   /* 0x45c         */
	unsigned int spare7[40];              /* 0x460 - 0x4fc */
	unsigned int dctl0;                   /* 0x500         */
	unsigned int dsta0;                   /* 0x504         */
	unsigned int dcsau0;                  /* 0x508         */
	unsigned int dcsal0;                  /* 0x50c         */
	unsigned int dcdau0;                  /* 0x510         */
	unsigned int dcdal0;                  /* 0x514         */
	unsigned int dclau0;                  /* 0x518         */
	unsigned int dclal0;                  /* 0x51c         */
	unsigned int dsau0;                   /* 0x520         */
	unsigned int dsal0;                   /* 0x524         */
	unsigned int ddau0;                   /* 0x528         */
	unsigned int ddal0;                   /* 0x52c         */
	unsigned int dsat0;                   /* 0x530         */
	unsigned int ddat0;                   /* 0x534         */
	unsigned int dnlau0;                  /* 0x538         */
	unsigned int dnlal0;                  /* 0x53c         */
	unsigned int dcnt0;                   /* 0x540         */
	unsigned int ddbs0;                   /* 0x544         */
	unsigned int r20[14];                 /* 0x548 - 0x57c */
	unsigned int dctl1;                   /* 0x580         */
	unsigned int dsta1;                   /* 0x584         */
	unsigned int dcsau1;                  /* 0x588         */
	unsigned int dcsal1;                  /* 0x58c         */
	unsigned int dcdau1;                  /* 0x590         */
	unsigned int dcdal1;                  /* 0x594         */
	unsigned int dclau1;                  /* 0x598         */
	unsigned int dclal1;                  /* 0x59c         */
	unsigned int dsau1;                   /* 0x5a0         */
	unsigned int dsal1;                   /* 0x5a4         */
	unsigned int ddau1;                   /* 0x5a8         */
	unsigned int ddal1;                   /* 0x5ac         */
	unsigned int dsat1;                   /* 0x5b0         */
	unsigned int ddat1;                   /* 0x5b4         */
	unsigned int dnlau1;                  /* 0x5b8         */
	unsigned int dnlal1;                  /* 0x5bc         */
	unsigned int dcnt1;                   /* 0x5c0         */
	unsigned int ddbs1;                   /* 0x5c4         */
	unsigned int r21[14];                 /* 0x5c8 - 0x5fc */
	unsigned int devi_veni_2;             /* 0x600         */
	unsigned int gctrl_ga_revid;          /* 0x604         */
	unsigned int semaphore0_1_2_3;        /* 0x608         */
	unsigned int semaphore4_5_6_7;        /* 0x60c         */
	unsigned int mbox0;                   /* 0x610         */
	unsigned int mbox1;                   /* 0x614         */
	unsigned int mbox2;                   /* 0x618         */
	unsigned int mbox3;                   /* 0x61c         */
	unsigned int r22[629];                /* 0x620 - 0xff0 */
	unsigned int csrbcr;                  /* 0xff4         */
	unsigned int csrbsr;                  /* 0xff8         */
	unsigned int cbar;                    /* 0xffc         */
};

#define IRQ_VOWN	0x0001
#define IRQ_VIRQ1	0x0002
#define IRQ_VIRQ2	0x0004
#define IRQ_VIRQ3	0x0008
#define IRQ_VIRQ4	0x0010
#define IRQ_VIRQ5	0x0020
#define IRQ_VIRQ6	0x0040
#define IRQ_VIRQ7	0x0080
#define IRQ_DMA		0x0100
#define IRQ_LERR	0x0200
#define IRQ_VERR	0x0400
#define IRQ_res		0x0800
#define IRQ_IACK	0x1000
#define IRQ_SWINT	0x2000
#define IRQ_SYSFAIL	0x4000
#define IRQ_ACFAIL	0x8000

struct _TDMA_CMD_PACKET {
	unsigned int dctl;   /* DMA Control         */
	unsigned int dtbc;   /* Transfer Byte Count */
	unsigned int dlv;    /* PCI Address         */
	unsigned int res1;   /* Reserved            */
	unsigned int dva;    /* Vme Address         */
	unsigned int res2;   /* Reserved            */
	unsigned int dcpp;   /* Pointer to Numed Cmd Packet with rPN */
	unsigned int res3;   /* Reserved                             */
};

#define VME_AM_A16		0x01
#define VME_AM_A24		0x02
#define VME_AM_A32		0x03
#define VME_AM_Axx		0x03
#define VME_AM_USR		0x04
#define VME_AM_SUP		0x08
#define VME_AM_DATA		0x10
#define VME_AM_PROG		0x20
#define VME_AM_Mxx		(VME_AM_DATA | VME_AM_PROG)

#define VME_FLAG_D8		0x01
#define VME_FLAG_D16		0x02
#define VME_FLAG_D32		0x03
#define VME_FLAG_Dxx		0x03

#endif
