1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * hd64572.h Description of the Hitachi HD64572 (SCA-II), valid for 4*4882a593Smuzhiyun * CPU modes 0 & 2. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Author: Ivan Passos <ivan@cyclades.com> 7*4882a593Smuzhiyun * 8*4882a593Smuzhiyun * Copyright: (c) 2000-2001 Cyclades Corp. 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * $Log: hd64572.h,v $ 11*4882a593Smuzhiyun * Revision 3.1 2001/06/15 12:41:10 regina 12*4882a593Smuzhiyun * upping major version number 13*4882a593Smuzhiyun * 14*4882a593Smuzhiyun * Revision 1.1.1.1 2001/06/13 20:24:49 daniela 15*4882a593Smuzhiyun * PC300 initial CVS version (3.4.0-pre1) 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun * Revision 1.0 2000/01/25 ivan 18*4882a593Smuzhiyun * Initial version. 19*4882a593Smuzhiyun */ 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #ifndef __HD64572_H 22*4882a593Smuzhiyun #define __HD64572_H 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* Illegal Access Register */ 25*4882a593Smuzhiyun #define ILAR 0x00 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* Wait Controller Registers */ 28*4882a593Smuzhiyun #define PABR0L 0x20 /* Physical Addr Boundary Register 0 L */ 29*4882a593Smuzhiyun #define PABR0H 0x21 /* Physical Addr Boundary Register 0 H */ 30*4882a593Smuzhiyun #define PABR1L 0x22 /* Physical Addr Boundary Register 1 L */ 31*4882a593Smuzhiyun #define PABR1H 0x23 /* Physical Addr Boundary Register 1 H */ 32*4882a593Smuzhiyun #define WCRL 0x24 /* Wait Control Register L */ 33*4882a593Smuzhiyun #define WCRM 0x25 /* Wait Control Register M */ 34*4882a593Smuzhiyun #define WCRH 0x26 /* Wait Control Register H */ 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun /* Interrupt Registers */ 37*4882a593Smuzhiyun #define IVR 0x60 /* Interrupt Vector Register */ 38*4882a593Smuzhiyun #define IMVR 0x64 /* Interrupt Modified Vector Register */ 39*4882a593Smuzhiyun #define ITCR 0x68 /* Interrupt Control Register */ 40*4882a593Smuzhiyun #define ISR0 0x6c /* Interrupt Status Register 0 */ 41*4882a593Smuzhiyun #define ISR1 0x70 /* Interrupt Status Register 1 */ 42*4882a593Smuzhiyun #define IER0 0x74 /* Interrupt Enable Register 0 */ 43*4882a593Smuzhiyun #define IER1 0x78 /* Interrupt Enable Register 1 */ 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun /* Register Access Macros (chan is 0 or 1 in _any_ case) */ 46*4882a593Smuzhiyun #define M_REG(reg, chan) (reg + 0x80*chan) /* MSCI */ 47*4882a593Smuzhiyun #define DRX_REG(reg, chan) (reg + 0x40*chan) /* DMA Rx */ 48*4882a593Smuzhiyun #define DTX_REG(reg, chan) (reg + 0x20*(2*chan + 1)) /* DMA Tx */ 49*4882a593Smuzhiyun #define TRX_REG(reg, chan) (reg + 0x20*chan) /* Timer Rx */ 50*4882a593Smuzhiyun #define TTX_REG(reg, chan) (reg + 0x10*(2*chan + 1)) /* Timer Tx */ 51*4882a593Smuzhiyun #define ST_REG(reg, chan) (reg + 0x80*chan) /* Status Cnt */ 52*4882a593Smuzhiyun #define IR0_DRX(val, chan) ((val)<<(8*(chan))) /* Int DMA Rx */ 53*4882a593Smuzhiyun #define IR0_DTX(val, chan) ((val)<<(4*(2*chan + 1))) /* Int DMA Tx */ 54*4882a593Smuzhiyun #define IR0_M(val, chan) ((val)<<(8*(chan))) /* Int MSCI */ 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun /* MSCI Channel Registers */ 57*4882a593Smuzhiyun #define MSCI0_OFFSET 0x00 58*4882a593Smuzhiyun #define MSCI1_OFFSET 0x80 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun #define MD0 0x138 /* Mode reg 0 */ 61*4882a593Smuzhiyun #define MD1 0x139 /* Mode reg 1 */ 62*4882a593Smuzhiyun #define MD2 0x13a /* Mode reg 2 */ 63*4882a593Smuzhiyun #define MD3 0x13b /* Mode reg 3 */ 64*4882a593Smuzhiyun #define CTL 0x130 /* Control reg */ 65*4882a593Smuzhiyun #define RXS 0x13c /* RX clock source */ 66*4882a593Smuzhiyun #define TXS 0x13d /* TX clock source */ 67*4882a593Smuzhiyun #define EXS 0x13e /* External clock input selection */ 68*4882a593Smuzhiyun #define TMCT 0x144 /* Time constant (Tx) */ 69*4882a593Smuzhiyun #define TMCR 0x145 /* Time constant (Rx) */ 70*4882a593Smuzhiyun #define CMD 0x128 /* Command reg */ 71*4882a593Smuzhiyun #define ST0 0x118 /* Status reg 0 */ 72*4882a593Smuzhiyun #define ST1 0x119 /* Status reg 1 */ 73*4882a593Smuzhiyun #define ST2 0x11a /* Status reg 2 */ 74*4882a593Smuzhiyun #define ST3 0x11b /* Status reg 3 */ 75*4882a593Smuzhiyun #define ST4 0x11c /* Status reg 4 */ 76*4882a593Smuzhiyun #define FST 0x11d /* frame Status reg */ 77*4882a593Smuzhiyun #define IE0 0x120 /* Interrupt enable reg 0 */ 78*4882a593Smuzhiyun #define IE1 0x121 /* Interrupt enable reg 1 */ 79*4882a593Smuzhiyun #define IE2 0x122 /* Interrupt enable reg 2 */ 80*4882a593Smuzhiyun #define IE4 0x124 /* Interrupt enable reg 4 */ 81*4882a593Smuzhiyun #define FIE 0x125 /* Frame Interrupt enable reg */ 82*4882a593Smuzhiyun #define SA0 0x140 /* Syn Address reg 0 */ 83*4882a593Smuzhiyun #define SA1 0x141 /* Syn Address reg 1 */ 84*4882a593Smuzhiyun #define IDL 0x142 /* Idle register */ 85*4882a593Smuzhiyun #define TRBL 0x100 /* TX/RX buffer reg L */ 86*4882a593Smuzhiyun #define TRBK 0x101 /* TX/RX buffer reg K */ 87*4882a593Smuzhiyun #define TRBJ 0x102 /* TX/RX buffer reg J */ 88*4882a593Smuzhiyun #define TRBH 0x103 /* TX/RX buffer reg H */ 89*4882a593Smuzhiyun #define TRC0 0x148 /* TX Ready control reg 0 */ 90*4882a593Smuzhiyun #define TRC1 0x149 /* TX Ready control reg 1 */ 91*4882a593Smuzhiyun #define RRC 0x14a /* RX Ready control reg */ 92*4882a593Smuzhiyun #define CST0 0x108 /* Current Status Register 0 */ 93*4882a593Smuzhiyun #define CST1 0x109 /* Current Status Register 1 */ 94*4882a593Smuzhiyun #define CST2 0x10a /* Current Status Register 2 */ 95*4882a593Smuzhiyun #define CST3 0x10b /* Current Status Register 3 */ 96*4882a593Smuzhiyun #define GPO 0x131 /* General Purpose Output Pin Ctl Reg */ 97*4882a593Smuzhiyun #define TFS 0x14b /* Tx Start Threshold Ctl Reg */ 98*4882a593Smuzhiyun #define TFN 0x143 /* Inter-transmit-frame Time Fill Ctl Reg */ 99*4882a593Smuzhiyun #define TBN 0x110 /* Tx Buffer Number Reg */ 100*4882a593Smuzhiyun #define RBN 0x111 /* Rx Buffer Number Reg */ 101*4882a593Smuzhiyun #define TNR0 0x150 /* Tx DMA Request Ctl Reg 0 */ 102*4882a593Smuzhiyun #define TNR1 0x151 /* Tx DMA Request Ctl Reg 1 */ 103*4882a593Smuzhiyun #define TCR 0x152 /* Tx DMA Critical Request Reg */ 104*4882a593Smuzhiyun #define RNR 0x154 /* Rx DMA Request Ctl Reg */ 105*4882a593Smuzhiyun #define RCR 0x156 /* Rx DMA Critical Request Reg */ 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun /* Timer Registers */ 108*4882a593Smuzhiyun #define TIMER0RX_OFFSET 0x00 109*4882a593Smuzhiyun #define TIMER0TX_OFFSET 0x10 110*4882a593Smuzhiyun #define TIMER1RX_OFFSET 0x20 111*4882a593Smuzhiyun #define TIMER1TX_OFFSET 0x30 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun #define TCNTL 0x200 /* Timer Upcounter L */ 114*4882a593Smuzhiyun #define TCNTH 0x201 /* Timer Upcounter H */ 115*4882a593Smuzhiyun #define TCONRL 0x204 /* Timer Constant Register L */ 116*4882a593Smuzhiyun #define TCONRH 0x205 /* Timer Constant Register H */ 117*4882a593Smuzhiyun #define TCSR 0x206 /* Timer Control/Status Register */ 118*4882a593Smuzhiyun #define TEPR 0x207 /* Timer Expand Prescale Register */ 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun /* DMA registers */ 121*4882a593Smuzhiyun #define PCR 0x40 /* DMA priority control reg */ 122*4882a593Smuzhiyun #define DRR 0x44 /* DMA reset reg */ 123*4882a593Smuzhiyun #define DMER 0x07 /* DMA Master Enable reg */ 124*4882a593Smuzhiyun #define BTCR 0x08 /* Burst Tx Ctl Reg */ 125*4882a593Smuzhiyun #define BOLR 0x0c /* Back-off Length Reg */ 126*4882a593Smuzhiyun #define DSR_RX(chan) (0x48 + 2*chan) /* DMA Status Reg (Rx) */ 127*4882a593Smuzhiyun #define DSR_TX(chan) (0x49 + 2*chan) /* DMA Status Reg (Tx) */ 128*4882a593Smuzhiyun #define DIR_RX(chan) (0x4c + 2*chan) /* DMA Interrupt Enable Reg (Rx) */ 129*4882a593Smuzhiyun #define DIR_TX(chan) (0x4d + 2*chan) /* DMA Interrupt Enable Reg (Tx) */ 130*4882a593Smuzhiyun #define FCT_RX(chan) (0x50 + 2*chan) /* Frame End Interrupt Counter (Rx) */ 131*4882a593Smuzhiyun #define FCT_TX(chan) (0x51 + 2*chan) /* Frame End Interrupt Counter (Tx) */ 132*4882a593Smuzhiyun #define DMR_RX(chan) (0x54 + 2*chan) /* DMA Mode Reg (Rx) */ 133*4882a593Smuzhiyun #define DMR_TX(chan) (0x55 + 2*chan) /* DMA Mode Reg (Tx) */ 134*4882a593Smuzhiyun #define DCR_RX(chan) (0x58 + 2*chan) /* DMA Command Reg (Rx) */ 135*4882a593Smuzhiyun #define DCR_TX(chan) (0x59 + 2*chan) /* DMA Command Reg (Tx) */ 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun /* DMA Channel Registers */ 138*4882a593Smuzhiyun #define DMAC0RX_OFFSET 0x00 139*4882a593Smuzhiyun #define DMAC0TX_OFFSET 0x20 140*4882a593Smuzhiyun #define DMAC1RX_OFFSET 0x40 141*4882a593Smuzhiyun #define DMAC1TX_OFFSET 0x60 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define DARL 0x80 /* Dest Addr Register L (single-block, RX only) */ 144*4882a593Smuzhiyun #define DARH 0x81 /* Dest Addr Register H (single-block, RX only) */ 145*4882a593Smuzhiyun #define DARB 0x82 /* Dest Addr Register B (single-block, RX only) */ 146*4882a593Smuzhiyun #define DARBH 0x83 /* Dest Addr Register BH (single-block, RX only) */ 147*4882a593Smuzhiyun #define SARL 0x80 /* Source Addr Register L (single-block, TX only) */ 148*4882a593Smuzhiyun #define SARH 0x81 /* Source Addr Register H (single-block, TX only) */ 149*4882a593Smuzhiyun #define SARB 0x82 /* Source Addr Register B (single-block, TX only) */ 150*4882a593Smuzhiyun #define DARBH 0x83 /* Source Addr Register BH (single-block, TX only) */ 151*4882a593Smuzhiyun #define BARL 0x80 /* Buffer Addr Register L (chained-block) */ 152*4882a593Smuzhiyun #define BARH 0x81 /* Buffer Addr Register H (chained-block) */ 153*4882a593Smuzhiyun #define BARB 0x82 /* Buffer Addr Register B (chained-block) */ 154*4882a593Smuzhiyun #define BARBH 0x83 /* Buffer Addr Register BH (chained-block) */ 155*4882a593Smuzhiyun #define CDAL 0x84 /* Current Descriptor Addr Register L */ 156*4882a593Smuzhiyun #define CDAH 0x85 /* Current Descriptor Addr Register H */ 157*4882a593Smuzhiyun #define CDAB 0x86 /* Current Descriptor Addr Register B */ 158*4882a593Smuzhiyun #define CDABH 0x87 /* Current Descriptor Addr Register BH */ 159*4882a593Smuzhiyun #define EDAL 0x88 /* Error Descriptor Addr Register L */ 160*4882a593Smuzhiyun #define EDAH 0x89 /* Error Descriptor Addr Register H */ 161*4882a593Smuzhiyun #define EDAB 0x8a /* Error Descriptor Addr Register B */ 162*4882a593Smuzhiyun #define EDABH 0x8b /* Error Descriptor Addr Register BH */ 163*4882a593Smuzhiyun #define BFLL 0x90 /* RX Buffer Length L (only RX) */ 164*4882a593Smuzhiyun #define BFLH 0x91 /* RX Buffer Length H (only RX) */ 165*4882a593Smuzhiyun #define BCRL 0x8c /* Byte Count Register L */ 166*4882a593Smuzhiyun #define BCRH 0x8d /* Byte Count Register H */ 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun /* Block Descriptor Structure */ 169*4882a593Smuzhiyun typedef struct { 170*4882a593Smuzhiyun unsigned long next; /* pointer to next block descriptor */ 171*4882a593Smuzhiyun unsigned long ptbuf; /* buffer pointer */ 172*4882a593Smuzhiyun unsigned short len; /* data length */ 173*4882a593Smuzhiyun unsigned char status; /* status */ 174*4882a593Smuzhiyun unsigned char filler[5]; /* alignment filler (16 bytes) */ 175*4882a593Smuzhiyun } pcsca_bd_t; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun /* Block Descriptor Structure */ 178*4882a593Smuzhiyun typedef struct { 179*4882a593Smuzhiyun u32 cp; /* pointer to next block descriptor */ 180*4882a593Smuzhiyun u32 bp; /* buffer pointer */ 181*4882a593Smuzhiyun u16 len; /* data length */ 182*4882a593Smuzhiyun u8 stat; /* status */ 183*4882a593Smuzhiyun u8 unused; /* pads to 4-byte boundary */ 184*4882a593Smuzhiyun }pkt_desc; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun /* 188*4882a593Smuzhiyun Descriptor Status definitions: 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun Bit Transmission Reception 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun 7 EOM EOM 193*4882a593Smuzhiyun 6 - Short Frame 194*4882a593Smuzhiyun 5 - Abort 195*4882a593Smuzhiyun 4 - Residual bit 196*4882a593Smuzhiyun 3 Underrun Overrun 197*4882a593Smuzhiyun 2 - CRC 198*4882a593Smuzhiyun 1 Ownership Ownership 199*4882a593Smuzhiyun 0 EOT - 200*4882a593Smuzhiyun */ 201*4882a593Smuzhiyun #define DST_EOT 0x01 /* End of transmit command */ 202*4882a593Smuzhiyun #define DST_OSB 0x02 /* Ownership bit */ 203*4882a593Smuzhiyun #define DST_CRC 0x04 /* CRC Error */ 204*4882a593Smuzhiyun #define DST_OVR 0x08 /* Overrun */ 205*4882a593Smuzhiyun #define DST_UDR 0x08 /* Underrun */ 206*4882a593Smuzhiyun #define DST_RBIT 0x10 /* Residual bit */ 207*4882a593Smuzhiyun #define DST_ABT 0x20 /* Abort */ 208*4882a593Smuzhiyun #define DST_SHRT 0x40 /* Short Frame */ 209*4882a593Smuzhiyun #define DST_EOM 0x80 /* End of Message */ 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun /* Packet Descriptor Status bits */ 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun #define ST_TX_EOM 0x80 /* End of frame */ 214*4882a593Smuzhiyun #define ST_TX_UNDRRUN 0x08 215*4882a593Smuzhiyun #define ST_TX_OWNRSHP 0x02 216*4882a593Smuzhiyun #define ST_TX_EOT 0x01 /* End of transmission */ 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun #define ST_RX_EOM 0x80 /* End of frame */ 219*4882a593Smuzhiyun #define ST_RX_SHORT 0x40 /* Short frame */ 220*4882a593Smuzhiyun #define ST_RX_ABORT 0x20 /* Abort */ 221*4882a593Smuzhiyun #define ST_RX_RESBIT 0x10 /* Residual bit */ 222*4882a593Smuzhiyun #define ST_RX_OVERRUN 0x08 /* Overrun */ 223*4882a593Smuzhiyun #define ST_RX_CRC 0x04 /* CRC */ 224*4882a593Smuzhiyun #define ST_RX_OWNRSHP 0x02 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun #define ST_ERROR_MASK 0x7C 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun /* Status Counter Registers */ 229*4882a593Smuzhiyun #define CMCR 0x158 /* Counter Master Ctl Reg */ 230*4882a593Smuzhiyun #define TECNTL 0x160 /* Tx EOM Counter L */ 231*4882a593Smuzhiyun #define TECNTM 0x161 /* Tx EOM Counter M */ 232*4882a593Smuzhiyun #define TECNTH 0x162 /* Tx EOM Counter H */ 233*4882a593Smuzhiyun #define TECCR 0x163 /* Tx EOM Counter Ctl Reg */ 234*4882a593Smuzhiyun #define URCNTL 0x164 /* Underrun Counter L */ 235*4882a593Smuzhiyun #define URCNTH 0x165 /* Underrun Counter H */ 236*4882a593Smuzhiyun #define URCCR 0x167 /* Underrun Counter Ctl Reg */ 237*4882a593Smuzhiyun #define RECNTL 0x168 /* Rx EOM Counter L */ 238*4882a593Smuzhiyun #define RECNTM 0x169 /* Rx EOM Counter M */ 239*4882a593Smuzhiyun #define RECNTH 0x16a /* Rx EOM Counter H */ 240*4882a593Smuzhiyun #define RECCR 0x16b /* Rx EOM Counter Ctl Reg */ 241*4882a593Smuzhiyun #define ORCNTL 0x16c /* Overrun Counter L */ 242*4882a593Smuzhiyun #define ORCNTH 0x16d /* Overrun Counter H */ 243*4882a593Smuzhiyun #define ORCCR 0x16f /* Overrun Counter Ctl Reg */ 244*4882a593Smuzhiyun #define CECNTL 0x170 /* CRC Counter L */ 245*4882a593Smuzhiyun #define CECNTH 0x171 /* CRC Counter H */ 246*4882a593Smuzhiyun #define CECCR 0x173 /* CRC Counter Ctl Reg */ 247*4882a593Smuzhiyun #define ABCNTL 0x174 /* Abort frame Counter L */ 248*4882a593Smuzhiyun #define ABCNTH 0x175 /* Abort frame Counter H */ 249*4882a593Smuzhiyun #define ABCCR 0x177 /* Abort frame Counter Ctl Reg */ 250*4882a593Smuzhiyun #define SHCNTL 0x178 /* Short frame Counter L */ 251*4882a593Smuzhiyun #define SHCNTH 0x179 /* Short frame Counter H */ 252*4882a593Smuzhiyun #define SHCCR 0x17b /* Short frame Counter Ctl Reg */ 253*4882a593Smuzhiyun #define RSCNTL 0x17c /* Residual bit Counter L */ 254*4882a593Smuzhiyun #define RSCNTH 0x17d /* Residual bit Counter H */ 255*4882a593Smuzhiyun #define RSCCR 0x17f /* Residual bit Counter Ctl Reg */ 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun /* Register Programming Constants */ 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun #define IR0_DMIC 0x00000001 260*4882a593Smuzhiyun #define IR0_DMIB 0x00000002 261*4882a593Smuzhiyun #define IR0_DMIA 0x00000004 262*4882a593Smuzhiyun #define IR0_EFT 0x00000008 263*4882a593Smuzhiyun #define IR0_DMAREQ 0x00010000 264*4882a593Smuzhiyun #define IR0_TXINT 0x00020000 265*4882a593Smuzhiyun #define IR0_RXINTB 0x00040000 266*4882a593Smuzhiyun #define IR0_RXINTA 0x00080000 267*4882a593Smuzhiyun #define IR0_TXRDY 0x00100000 268*4882a593Smuzhiyun #define IR0_RXRDY 0x00200000 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun #define MD0_CRC16_0 0x00 271*4882a593Smuzhiyun #define MD0_CRC16_1 0x01 272*4882a593Smuzhiyun #define MD0_CRC32 0x02 273*4882a593Smuzhiyun #define MD0_CRC_CCITT 0x03 274*4882a593Smuzhiyun #define MD0_CRCC0 0x04 275*4882a593Smuzhiyun #define MD0_CRCC1 0x08 276*4882a593Smuzhiyun #define MD0_AUTO_ENA 0x10 277*4882a593Smuzhiyun #define MD0_ASYNC 0x00 278*4882a593Smuzhiyun #define MD0_BY_MSYNC 0x20 279*4882a593Smuzhiyun #define MD0_BY_BISYNC 0x40 280*4882a593Smuzhiyun #define MD0_BY_EXT 0x60 281*4882a593Smuzhiyun #define MD0_BIT_SYNC 0x80 282*4882a593Smuzhiyun #define MD0_TRANSP 0xc0 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun #define MD0_HDLC 0x80 /* Bit-sync HDLC mode */ 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun #define MD0_CRC_NONE 0x00 287*4882a593Smuzhiyun #define MD0_CRC_16_0 0x04 288*4882a593Smuzhiyun #define MD0_CRC_16 0x05 289*4882a593Smuzhiyun #define MD0_CRC_ITU32 0x06 290*4882a593Smuzhiyun #define MD0_CRC_ITU 0x07 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun #define MD1_NOADDR 0x00 293*4882a593Smuzhiyun #define MD1_SADDR1 0x40 294*4882a593Smuzhiyun #define MD1_SADDR2 0x80 295*4882a593Smuzhiyun #define MD1_DADDR 0xc0 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun #define MD2_NRZI_IEEE 0x40 298*4882a593Smuzhiyun #define MD2_MANCHESTER 0x80 299*4882a593Smuzhiyun #define MD2_FM_MARK 0xA0 300*4882a593Smuzhiyun #define MD2_FM_SPACE 0xC0 301*4882a593Smuzhiyun #define MD2_LOOPBACK 0x03 /* Local data Loopback */ 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun #define MD2_F_DUPLEX 0x00 304*4882a593Smuzhiyun #define MD2_AUTO_ECHO 0x01 305*4882a593Smuzhiyun #define MD2_LOOP_HI_Z 0x02 306*4882a593Smuzhiyun #define MD2_LOOP_MIR 0x03 307*4882a593Smuzhiyun #define MD2_ADPLL_X8 0x00 308*4882a593Smuzhiyun #define MD2_ADPLL_X16 0x08 309*4882a593Smuzhiyun #define MD2_ADPLL_X32 0x10 310*4882a593Smuzhiyun #define MD2_NRZ 0x00 311*4882a593Smuzhiyun #define MD2_NRZI 0x20 312*4882a593Smuzhiyun #define MD2_NRZ_IEEE 0x40 313*4882a593Smuzhiyun #define MD2_MANCH 0x00 314*4882a593Smuzhiyun #define MD2_FM1 0x20 315*4882a593Smuzhiyun #define MD2_FM0 0x40 316*4882a593Smuzhiyun #define MD2_FM 0x80 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun #define CTL_RTS 0x01 319*4882a593Smuzhiyun #define CTL_DTR 0x02 320*4882a593Smuzhiyun #define CTL_SYN 0x04 321*4882a593Smuzhiyun #define CTL_IDLC 0x10 322*4882a593Smuzhiyun #define CTL_UDRNC 0x20 323*4882a593Smuzhiyun #define CTL_URSKP 0x40 324*4882a593Smuzhiyun #define CTL_URCT 0x80 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun #define CTL_NORTS 0x01 327*4882a593Smuzhiyun #define CTL_NODTR 0x02 328*4882a593Smuzhiyun #define CTL_IDLE 0x10 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun #define RXS_BR0 0x01 331*4882a593Smuzhiyun #define RXS_BR1 0x02 332*4882a593Smuzhiyun #define RXS_BR2 0x04 333*4882a593Smuzhiyun #define RXS_BR3 0x08 334*4882a593Smuzhiyun #define RXS_ECLK 0x00 335*4882a593Smuzhiyun #define RXS_ECLK_NS 0x20 336*4882a593Smuzhiyun #define RXS_IBRG 0x40 337*4882a593Smuzhiyun #define RXS_PLL1 0x50 338*4882a593Smuzhiyun #define RXS_PLL2 0x60 339*4882a593Smuzhiyun #define RXS_PLL3 0x70 340*4882a593Smuzhiyun #define RXS_DRTXC 0x80 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun #define TXS_BR0 0x01 343*4882a593Smuzhiyun #define TXS_BR1 0x02 344*4882a593Smuzhiyun #define TXS_BR2 0x04 345*4882a593Smuzhiyun #define TXS_BR3 0x08 346*4882a593Smuzhiyun #define TXS_ECLK 0x00 347*4882a593Smuzhiyun #define TXS_IBRG 0x40 348*4882a593Smuzhiyun #define TXS_RCLK 0x60 349*4882a593Smuzhiyun #define TXS_DTRXC 0x80 350*4882a593Smuzhiyun 351*4882a593Smuzhiyun #define EXS_RES0 0x01 352*4882a593Smuzhiyun #define EXS_RES1 0x02 353*4882a593Smuzhiyun #define EXS_RES2 0x04 354*4882a593Smuzhiyun #define EXS_TES0 0x10 355*4882a593Smuzhiyun #define EXS_TES1 0x20 356*4882a593Smuzhiyun #define EXS_TES2 0x40 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun #define CLK_BRG_MASK 0x0F 359*4882a593Smuzhiyun #define CLK_PIN_OUT 0x80 360*4882a593Smuzhiyun #define CLK_LINE 0x00 /* clock line input */ 361*4882a593Smuzhiyun #define CLK_BRG 0x40 /* internal baud rate generator */ 362*4882a593Smuzhiyun #define CLK_TX_RXCLK 0x60 /* TX clock from RX clock */ 363*4882a593Smuzhiyun 364*4882a593Smuzhiyun #define CMD_RX_RST 0x11 365*4882a593Smuzhiyun #define CMD_RX_ENA 0x12 366*4882a593Smuzhiyun #define CMD_RX_DIS 0x13 367*4882a593Smuzhiyun #define CMD_RX_CRC_INIT 0x14 368*4882a593Smuzhiyun #define CMD_RX_MSG_REJ 0x15 369*4882a593Smuzhiyun #define CMD_RX_MP_SRCH 0x16 370*4882a593Smuzhiyun #define CMD_RX_CRC_EXC 0x17 371*4882a593Smuzhiyun #define CMD_RX_CRC_FRC 0x18 372*4882a593Smuzhiyun #define CMD_TX_RST 0x01 373*4882a593Smuzhiyun #define CMD_TX_ENA 0x02 374*4882a593Smuzhiyun #define CMD_TX_DISA 0x03 375*4882a593Smuzhiyun #define CMD_TX_CRC_INIT 0x04 376*4882a593Smuzhiyun #define CMD_TX_CRC_EXC 0x05 377*4882a593Smuzhiyun #define CMD_TX_EOM 0x06 378*4882a593Smuzhiyun #define CMD_TX_ABORT 0x07 379*4882a593Smuzhiyun #define CMD_TX_MP_ON 0x08 380*4882a593Smuzhiyun #define CMD_TX_BUF_CLR 0x09 381*4882a593Smuzhiyun #define CMD_TX_DISB 0x0b 382*4882a593Smuzhiyun #define CMD_CH_RST 0x21 383*4882a593Smuzhiyun #define CMD_SRCH_MODE 0x31 384*4882a593Smuzhiyun #define CMD_NOP 0x00 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun #define CMD_RESET 0x21 387*4882a593Smuzhiyun #define CMD_TX_ENABLE 0x02 388*4882a593Smuzhiyun #define CMD_RX_ENABLE 0x12 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun #define ST0_RXRDY 0x01 391*4882a593Smuzhiyun #define ST0_TXRDY 0x02 392*4882a593Smuzhiyun #define ST0_RXINTB 0x20 393*4882a593Smuzhiyun #define ST0_RXINTA 0x40 394*4882a593Smuzhiyun #define ST0_TXINT 0x80 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun #define ST1_IDLE 0x01 397*4882a593Smuzhiyun #define ST1_ABORT 0x02 398*4882a593Smuzhiyun #define ST1_CDCD 0x04 399*4882a593Smuzhiyun #define ST1_CCTS 0x08 400*4882a593Smuzhiyun #define ST1_SYN_FLAG 0x10 401*4882a593Smuzhiyun #define ST1_CLMD 0x20 402*4882a593Smuzhiyun #define ST1_TXIDLE 0x40 403*4882a593Smuzhiyun #define ST1_UDRN 0x80 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun #define ST2_CRCE 0x04 406*4882a593Smuzhiyun #define ST2_ONRN 0x08 407*4882a593Smuzhiyun #define ST2_RBIT 0x10 408*4882a593Smuzhiyun #define ST2_ABORT 0x20 409*4882a593Smuzhiyun #define ST2_SHORT 0x40 410*4882a593Smuzhiyun #define ST2_EOM 0x80 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun #define ST3_RX_ENA 0x01 413*4882a593Smuzhiyun #define ST3_TX_ENA 0x02 414*4882a593Smuzhiyun #define ST3_DCD 0x04 415*4882a593Smuzhiyun #define ST3_CTS 0x08 416*4882a593Smuzhiyun #define ST3_SRCH_MODE 0x10 417*4882a593Smuzhiyun #define ST3_SLOOP 0x20 418*4882a593Smuzhiyun #define ST3_GPI 0x80 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun #define ST4_RDNR 0x01 421*4882a593Smuzhiyun #define ST4_RDCR 0x02 422*4882a593Smuzhiyun #define ST4_TDNR 0x04 423*4882a593Smuzhiyun #define ST4_TDCR 0x08 424*4882a593Smuzhiyun #define ST4_OCLM 0x20 425*4882a593Smuzhiyun #define ST4_CFT 0x40 426*4882a593Smuzhiyun #define ST4_CGPI 0x80 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun #define FST_CRCEF 0x04 429*4882a593Smuzhiyun #define FST_OVRNF 0x08 430*4882a593Smuzhiyun #define FST_RBIF 0x10 431*4882a593Smuzhiyun #define FST_ABTF 0x20 432*4882a593Smuzhiyun #define FST_SHRTF 0x40 433*4882a593Smuzhiyun #define FST_EOMF 0x80 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun #define IE0_RXRDY 0x01 436*4882a593Smuzhiyun #define IE0_TXRDY 0x02 437*4882a593Smuzhiyun #define IE0_RXINTB 0x20 438*4882a593Smuzhiyun #define IE0_RXINTA 0x40 439*4882a593Smuzhiyun #define IE0_TXINT 0x80 440*4882a593Smuzhiyun #define IE0_UDRN 0x00008000 /* TX underrun MSCI interrupt enable */ 441*4882a593Smuzhiyun #define IE0_CDCD 0x00000400 /* CD level change interrupt enable */ 442*4882a593Smuzhiyun 443*4882a593Smuzhiyun #define IE1_IDLD 0x01 444*4882a593Smuzhiyun #define IE1_ABTD 0x02 445*4882a593Smuzhiyun #define IE1_CDCD 0x04 446*4882a593Smuzhiyun #define IE1_CCTS 0x08 447*4882a593Smuzhiyun #define IE1_SYNCD 0x10 448*4882a593Smuzhiyun #define IE1_CLMD 0x20 449*4882a593Smuzhiyun #define IE1_IDL 0x40 450*4882a593Smuzhiyun #define IE1_UDRN 0x80 451*4882a593Smuzhiyun 452*4882a593Smuzhiyun #define IE2_CRCE 0x04 453*4882a593Smuzhiyun #define IE2_OVRN 0x08 454*4882a593Smuzhiyun #define IE2_RBIT 0x10 455*4882a593Smuzhiyun #define IE2_ABT 0x20 456*4882a593Smuzhiyun #define IE2_SHRT 0x40 457*4882a593Smuzhiyun #define IE2_EOM 0x80 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun #define IE4_RDNR 0x01 460*4882a593Smuzhiyun #define IE4_RDCR 0x02 461*4882a593Smuzhiyun #define IE4_TDNR 0x04 462*4882a593Smuzhiyun #define IE4_TDCR 0x08 463*4882a593Smuzhiyun #define IE4_OCLM 0x20 464*4882a593Smuzhiyun #define IE4_CFT 0x40 465*4882a593Smuzhiyun #define IE4_CGPI 0x80 466*4882a593Smuzhiyun 467*4882a593Smuzhiyun #define FIE_CRCEF 0x04 468*4882a593Smuzhiyun #define FIE_OVRNF 0x08 469*4882a593Smuzhiyun #define FIE_RBIF 0x10 470*4882a593Smuzhiyun #define FIE_ABTF 0x20 471*4882a593Smuzhiyun #define FIE_SHRTF 0x40 472*4882a593Smuzhiyun #define FIE_EOMF 0x80 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun #define DSR_DWE 0x01 475*4882a593Smuzhiyun #define DSR_DE 0x02 476*4882a593Smuzhiyun #define DSR_REF 0x04 477*4882a593Smuzhiyun #define DSR_UDRF 0x04 478*4882a593Smuzhiyun #define DSR_COA 0x08 479*4882a593Smuzhiyun #define DSR_COF 0x10 480*4882a593Smuzhiyun #define DSR_BOF 0x20 481*4882a593Smuzhiyun #define DSR_EOM 0x40 482*4882a593Smuzhiyun #define DSR_EOT 0x80 483*4882a593Smuzhiyun 484*4882a593Smuzhiyun #define DIR_REF 0x04 485*4882a593Smuzhiyun #define DIR_UDRF 0x04 486*4882a593Smuzhiyun #define DIR_COA 0x08 487*4882a593Smuzhiyun #define DIR_COF 0x10 488*4882a593Smuzhiyun #define DIR_BOF 0x20 489*4882a593Smuzhiyun #define DIR_EOM 0x40 490*4882a593Smuzhiyun #define DIR_EOT 0x80 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun #define DIR_REFE 0x04 493*4882a593Smuzhiyun #define DIR_UDRFE 0x04 494*4882a593Smuzhiyun #define DIR_COAE 0x08 495*4882a593Smuzhiyun #define DIR_COFE 0x10 496*4882a593Smuzhiyun #define DIR_BOFE 0x20 497*4882a593Smuzhiyun #define DIR_EOME 0x40 498*4882a593Smuzhiyun #define DIR_EOTE 0x80 499*4882a593Smuzhiyun 500*4882a593Smuzhiyun #define DMR_CNTE 0x02 501*4882a593Smuzhiyun #define DMR_NF 0x04 502*4882a593Smuzhiyun #define DMR_SEOME 0x08 503*4882a593Smuzhiyun #define DMR_TMOD 0x10 504*4882a593Smuzhiyun 505*4882a593Smuzhiyun #define DMER_DME 0x80 /* DMA Master Enable */ 506*4882a593Smuzhiyun 507*4882a593Smuzhiyun #define DCR_SW_ABT 0x01 508*4882a593Smuzhiyun #define DCR_FCT_CLR 0x02 509*4882a593Smuzhiyun 510*4882a593Smuzhiyun #define DCR_ABORT 0x01 511*4882a593Smuzhiyun #define DCR_CLEAR_EOF 0x02 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun #define PCR_COTE 0x80 514*4882a593Smuzhiyun #define PCR_PR0 0x01 515*4882a593Smuzhiyun #define PCR_PR1 0x02 516*4882a593Smuzhiyun #define PCR_PR2 0x04 517*4882a593Smuzhiyun #define PCR_CCC 0x08 518*4882a593Smuzhiyun #define PCR_BRC 0x10 519*4882a593Smuzhiyun #define PCR_OSB 0x40 520*4882a593Smuzhiyun #define PCR_BURST 0x80 521*4882a593Smuzhiyun 522*4882a593Smuzhiyun #endif /* (__HD64572_H) */ 523