11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* sunsab.h: Register Definitions for the Siemens SAB82532 DUSCC
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1997  Eddie C. Dost  (ecd@skynet.be)
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _SUNSAB_H
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _SUNSAB_H
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct sab82532_async_rd_regs {
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rfifo[0x20];	/* Receive FIFO				*/
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	star;		/* Status Register			*/
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad1;
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	mode;		/* Mode Register			*/
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	timr;		/* Timer Register			*/
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xon;		/* XON Character			*/
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xoff;		/* XOFF Character			*/
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tcr;		/* Termination Character Register	*/
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	dafo;		/* Data Format				*/
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rfc;		/* RFIFO Control Register		*/
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad2;
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rbcl;		/* Receive Byte Count Low		*/
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rbch;		/* Receive Byte Count High		*/
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr0;		/* Channel Configuration Register 0	*/
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr1;		/* Channel Configuration Register 1	*/
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr2;		/* Channel Configuration Register 2	*/
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr3;		/* Channel Configuration Register 3	*/
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad3[4];
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	vstr;		/* Version Status Register		*/
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad4[3];
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	gis;		/* Global Interrupt Status		*/
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ipc;		/* Interrupt Port Configuration		*/
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	isr0;		/* Interrupt Status 0			*/
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	isr1;		/* Interrupt Status 1			*/
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pvr;		/* Port Value Register			*/
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pis;		/* Port Interrupt Status		*/
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pcr;		/* Port Configuration Register		*/
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr4;		/* Channel Configuration Register 4	*/
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct sab82532_async_wr_regs {
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xfifo[0x20];	/* Transmit FIFO			*/
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	cmdr;		/* Command Register			*/
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad1;
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	mode;
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	timr;
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xon;
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xoff;
481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tcr;
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	dafo;
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rfc;
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad2;
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xbcl;		/* Transmit Byte Count Low		*/
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xbch;		/* Transmit Byte Count High		*/
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr0;
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr1;
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr2;
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr3;
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tsax;		/* Time-Slot Assignment Reg. Transmit	*/
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tsar;		/* Time-Slot Assignment Reg. Receive	*/
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xccr;		/* Transmit Channel Capacity Register	*/
611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rccr;		/* Receive Channel Capacity Register	*/
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	bgr;		/* Baud Rate Generator Register		*/
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tic;		/* Transmit Immediate Character		*/
641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	mxn;		/* Mask XON Character			*/
651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	mxf;		/* Mask XOFF Character			*/
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	iva;		/* Interrupt Vector Address		*/
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ipc;
681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	imr0;		/* Interrupt Mask Register 0		*/
691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	imr1;		/* Interrupt Mask Register 1		*/
701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pvr;
711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pim;		/* Port Interrupt Mask			*/
721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pcr;
731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr4;
741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct sab82532_async_rw_regs {	/* Read/Write registers			*/
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad1[0x20];
781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad2;
791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad3;
801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	mode;
811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	timr;
821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xon;
831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	xoff;
841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	tcr;
851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	dafo;
861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	rfc;
871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad4;
881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad5;
891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad6;
901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr0;
911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr1;
921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr2;
931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr3;
941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad7;
951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad8;
961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad9;
971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad10;
981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad11;
991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad12;
1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad13;
1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad14;
1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad15;
1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ipc;
1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad16;
1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad17;
1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pvr;
1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	__pad18;
1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	pcr;
1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	u8	ccr4;
1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsunion sab82532_async_regs {
1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__volatile__ struct sab82532_async_rd_regs	r;
1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__volatile__ struct sab82532_async_wr_regs	w;
1151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	__volatile__ struct sab82532_async_rw_regs	rw;
1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsunion sab82532_irq_status {
1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	unsigned short			 stat;
1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct {
1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds		unsigned char		 isr0;
1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds		unsigned char		 isr1;
1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	} sreg;
1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* irqflags bits */
1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ALLS			0x00000001
1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_XPR			0x00000002
129e4fdee8e3b41239242a8f421a28736ef8e08ca55David S. Miller#define SAB82532_REGS_PENDING		0x00000004
1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RFIFO Status Byte */
1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RSTAT_PE		0x80
1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RSTAT_FE		0x40
1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RSTAT_PARITY		0x01
1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Status Register (STAR) */
1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_XDOV		0x80
1381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_XFW		0x40
1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_RFNE		0x20
1401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_FCS		0x10
1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_TEC		0x08
1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_CEC		0x04
1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_STAR_CTS		0x02
1441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Command Register (CMDR) */
1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_RMC		0x80
1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_RRES		0x40
1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_RFRD		0x20
1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_STI		0x10
1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_XF		0x08
1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CMDR_XRES		0x01
1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Mode Register (MODE) */
1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_FRTS		0x40
1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_FCTS		0x20
1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_FLON		0x10
1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_RAC		0x08
1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_RTS		0x04
1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_TRS		0x02
1601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_MODE_TLP		0x01
1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Timer Register (TIMR) */
1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TIMR_CNT_MASK		0xe0
1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TIMR_VALUE_MASK	0x1f
1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Data Format (DAFO) */
1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_XBRK		0x40
1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_STOP		0x20
1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_PAR_SPACE		0x00
1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_PAR_ODD		0x08
1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_PAR_EVEN		0x10
1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_PAR_MARK		0x18
1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_PARE		0x04
1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_CHL8		0x00
1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_CHL7		0x01
1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_CHL6		0x02
1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_DAFO_CHL5		0x03
1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* RFIFO Control Register (RFC) */
1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_DPS		0x40
1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_DXS		0x20
1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_RFDF		0x10
1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_RFTH_1		0x00
1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_RFTH_4		0x04
1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_RFTH_16		0x08
1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_RFTH_32		0x0c
1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RFC_TCDE		0x01
1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Received Byte Count High (RBCH) */
1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RBCH_DMA		0x80
1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_RBCH_CAS		0x20
1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Transmit Byte Count High (XBCH) */
1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_XBCH_DMA		0x80
1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_XBCH_CAS		0x20
1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_XBCH_XC		0x10
1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Channel Configuration Register 0 (CCR0) */
1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_PU		0x80
2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_MCE		0x40
2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SC_NRZ		0x00
2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SC_NRZI		0x08
2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SC_FM0		0x10
2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SC_FM1		0x14
2051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SC_MANCH		0x18
2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SM_HDLC		0x00
2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SM_SDLC_LOOP	0x01
2081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SM_BISYNC		0x02
2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR0_SM_ASYNC		0x03
2101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Channel Configuration Register 1 (CCR1) */
2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR1_ODS		0x10
2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR1_BCR		0x08
2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR1_CM_MASK		0x07
2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Channel Configuration Register 2 (CCR2) */
2171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_SOC1		0x80
2181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_SOC0		0x40
2191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_BR9		0x80
2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_BR8		0x40
2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_BDF		0x20
2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_SSEL		0x10
2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_XCS0		0x20
2241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_RCS0		0x10
2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_TOE		0x08
2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_RWX		0x04
2271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR2_DIV		0x01
2281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Channel Configuration Register 3 (CCR3) */
2301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR3_PSD		0x01
2311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Time Slot Assignment Register Transmit (TSAX) */
2331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAX_TSNX_MASK		0xfc
2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAX_XCS2		0x02	/* see also CCR2 */
2351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAX_XCS1		0x01
2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Time Slot Assignment Register Receive (TSAR) */
2381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAR_TSNR_MASK		0xfc
2391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAR_RCS2		0x02	/* see also CCR2 */
2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_TSAR_RCS1		0x01
2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Version Status Register (VSTR) */
2431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_CD		0x80
2441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_DPLA		0x40
2451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_VN_MASK		0x0f
2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_VN_1		0x00
2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_VN_2		0x01
2481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_VSTR_VN_3_2		0x02
2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Global Interrupt Status Register (GIS) */
2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_GIS_PI			0x80
2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_GIS_ISA1		0x08
2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_GIS_ISA0		0x04
2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_GIS_ISB1		0x02
2551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_GIS_ISB0		0x01
2561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Vector Address (IVA) */
2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IVA_MASK		0xf1
2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Port Configuration (IPC) */
2611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_VIS		0x80
2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_SLA1		0x10
2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_SLA0		0x08
2641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_CASM		0x04
2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_IC_OPEN_DRAIN	0x00
2661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_IC_ACT_LOW		0x01
2671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IPC_IC_ACT_HIGH	0x03
2681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Status Register 0 (ISR0) */
2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_TCD		0x80
2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_TIME		0x40
2721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_PERR		0x20
2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_FERR		0x10
2741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_PLLA		0x08
2751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_CDSC		0x04
2761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_RFO		0x02
2771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR0_RPF		0x01
2781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Status Register 1 (ISR1) */
2801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_BRK		0x80
2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_BRKT		0x40
2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_ALLS		0x20
2831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_XOFF		0x10
2841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_TIN		0x08
2851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_CSC		0x04
2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_XON		0x02
2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_ISR1_XPR		0x01
2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Mask Register 0 (IMR0) */
2901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_TCD		0x80
2911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_TIME		0x40
2921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_PERR		0x20
2931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_FERR		0x10
2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_PLLA		0x08
2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_CDSC		0x04
2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_RFO		0x02
2971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR0_RPF		0x01
2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Interrupt Mask Register 1 (IMR1) */
3001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_BRK		0x80
3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_BRKT		0x40
3021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_ALLS		0x20
3031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_XOFF		0x10
3041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_TIN		0x08
3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_CSC		0x04
3061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_XON		0x02
3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_IMR1_XPR		0x01
3081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Port Interrupt Status Register (PIS) */
3101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_PIS_SYNC_B		0x08
3111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_PIS_DTR_B		0x04
3121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_PIS_DTR_A		0x02
3131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_PIS_SYNC_A		0x01
3141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Channel Configuration Register 4 (CCR4) */
3161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR4_MCK4		0x80
3171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR4_EBRG		0x40
3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR4_TST1		0x20
3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SAB82532_CCR4_ICD		0x10
3201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* !(_SUNSAB_H) */
323