/*
** $Header$
**
*/

/*
** © 1994 Henning Schmiedehausen - TSF Software Development
*/


#ifndef DEVICES_VECTORPAR_H
#define DEVICES_VECTORPAR_H

/*
 * Commands
 */

#define		PIOCMD_QUERY			 CMD_NONSTD		/* 0x09 */
#define		PIOCMD_SETPARAMS		(CMD_NONSTD+1)	/* 0x0A */
#define		PIOCMD_INACTIVE			(CMD_NONSTD+2)	/* 0x0B */
#define		PIOCMD_ACTIVE			(CMD_NONSTD+3)	/* 0x0c */

#define VECTORPARNAME     "vectorpar.device"

/*
 * PIO
 *
 */

#define PIO_BASE		0*2

#define PIO_PGCR		0*2
#define PIO_PSRR		1*2
#define PIO_PADDR		2*2
#define PIO_PBDDR		3*2
#define PIO_PCDDR		4*2
#define PIO_PIVR		5*2
#define PIO_PACR		6*2
#define PIO_PBCR		7*2
#define PIO_PADR		8*2
#define PIO_PBDR		9*2
#define PIO_PAAR		10*2
#define PIO_PBAR		11*2
#define PIO_PCDR		12*2
#define PIO_PSR			13*2

/*
 * Timer
 *
 */

#define PIO_TCR			16*2
#define PIO_TIVR		17*2
#define PIO_CPRH		19*2
#define PIO_CPRM		20*2
#define PIO_CPRL		21*2
#define PIO_CNTRH		23*2
#define PIO_CNTRM		24*2
#define PIO_CNTRL		25*2
#define PIO_TSR			26*2

/*
 *  Channel-relative PIO Definitions
 *
 */

#define PIOR_DDR		0*2
#define PIOR_PCR		8*2
#define PIOR_PDR		10*2
#define PIOR_PAR		12*2

#define PIO_ABASE		0
#define PIO_BBASE		2

/*
 * Structure to access a PIO chip
 *
 */

struct pio
{
	UBYTE	pio_pgcr;
	UBYTE	_pad0;
	UBYTE	pio_psrr;
	UBYTE	_pad1;
	UBYTE	pio_paddr;
	UBYTE	_pad2;
	UBYTE	pio_pbddr;
	UBYTE	_pad3;
	UBYTE	pio_pcddr;
	UBYTE	_pad4;
	UBYTE	pio_pivr;
	UBYTE	_pad5;
	UBYTE	pio_pacr;
	UBYTE	_pad6;
	UBYTE	pio_pbcr;
	UBYTE	_pad7;
	UBYTE	pio_padr;
	UBYTE	_pad8;
	UBYTE	pio_pbdr;
	UBYTE	_pad9;
	UBYTE	pio_paar;
	UBYTE	_pad10;
	UBYTE	pio_pbar;
	UBYTE	_pad11;
	UBYTE	pio_pcdr;
	UBYTE	_pad12;
	UBYTE	pio_psr;
	UBYTE	_pad13;
	UBYTE	_pad14a;
	UBYTE	_pad14;
	UBYTE	_pad15a;
	UBYTE	_pad15;
	UBYTE	pio_tcr;
};

/*
 * Structure to access a channel
 *
 */

struct pchannel
{
	UBYTE	pc_ddr;
	UBYTE   _padpc0;
	UBYTE	_padpc1;
	UBYTE	_padpc2;
	UBYTE	_padpc3;
	UBYTE	_padpc4;
	UBYTE	_padpc5;
	UBYTE	_padpc6;
	UBYTE	pc_pcr;
	UBYTE	_padpc7;
	UBYTE	_padpc8;
	UBYTE	_padpc9;
	UBYTE	pc_pdr;
	UBYTE	_padpca;
	UBYTE	_padpcb;
	UBYTE	_padpcc;
	UBYTE	pc_par;
};

#endif /* DEVICES_VECTORPAR_H */
