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