0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef __HD64572_H
0022 #define __HD64572_H
0023
0024
0025 #define ILAR 0x00
0026
0027
0028 #define PABR0L 0x20
0029 #define PABR0H 0x21
0030 #define PABR1L 0x22
0031 #define PABR1H 0x23
0032 #define WCRL 0x24
0033 #define WCRM 0x25
0034 #define WCRH 0x26
0035
0036
0037 #define IVR 0x60
0038 #define IMVR 0x64
0039 #define ITCR 0x68
0040 #define ISR0 0x6c
0041 #define ISR1 0x70
0042 #define IER0 0x74
0043 #define IER1 0x78
0044
0045
0046 #define M_REG(reg, chan) (reg + 0x80*chan)
0047 #define DRX_REG(reg, chan) (reg + 0x40*chan)
0048 #define DTX_REG(reg, chan) (reg + 0x20*(2*chan + 1))
0049 #define TRX_REG(reg, chan) (reg + 0x20*chan)
0050 #define TTX_REG(reg, chan) (reg + 0x10*(2*chan + 1))
0051 #define ST_REG(reg, chan) (reg + 0x80*chan)
0052 #define IR0_DRX(val, chan) ((val)<<(8*(chan)))
0053 #define IR0_DTX(val, chan) ((val)<<(4*(2*chan + 1)))
0054 #define IR0_M(val, chan) ((val)<<(8*(chan)))
0055
0056
0057 #define MSCI0_OFFSET 0x00
0058 #define MSCI1_OFFSET 0x80
0059
0060 #define MD0 0x138
0061 #define MD1 0x139
0062 #define MD2 0x13a
0063 #define MD3 0x13b
0064 #define CTL 0x130
0065 #define RXS 0x13c
0066 #define TXS 0x13d
0067 #define EXS 0x13e
0068 #define TMCT 0x144
0069 #define TMCR 0x145
0070 #define CMD 0x128
0071 #define ST0 0x118
0072 #define ST1 0x119
0073 #define ST2 0x11a
0074 #define ST3 0x11b
0075 #define ST4 0x11c
0076 #define FST 0x11d
0077 #define IE0 0x120
0078 #define IE1 0x121
0079 #define IE2 0x122
0080 #define IE4 0x124
0081 #define FIE 0x125
0082 #define SA0 0x140
0083 #define SA1 0x141
0084 #define IDL 0x142
0085 #define TRBL 0x100
0086 #define TRBK 0x101
0087 #define TRBJ 0x102
0088 #define TRBH 0x103
0089 #define TRC0 0x148
0090 #define TRC1 0x149
0091 #define RRC 0x14a
0092 #define CST0 0x108
0093 #define CST1 0x109
0094 #define CST2 0x10a
0095 #define CST3 0x10b
0096 #define GPO 0x131
0097 #define TFS 0x14b
0098 #define TFN 0x143
0099 #define TBN 0x110
0100 #define RBN 0x111
0101 #define TNR0 0x150
0102 #define TNR1 0x151
0103 #define TCR 0x152
0104 #define RNR 0x154
0105 #define RCR 0x156
0106
0107
0108 #define TIMER0RX_OFFSET 0x00
0109 #define TIMER0TX_OFFSET 0x10
0110 #define TIMER1RX_OFFSET 0x20
0111 #define TIMER1TX_OFFSET 0x30
0112
0113 #define TCNTL 0x200
0114 #define TCNTH 0x201
0115 #define TCONRL 0x204
0116 #define TCONRH 0x205
0117 #define TCSR 0x206
0118 #define TEPR 0x207
0119
0120
0121 #define PCR 0x40
0122 #define DRR 0x44
0123 #define DMER 0x07
0124 #define BTCR 0x08
0125 #define BOLR 0x0c
0126 #define DSR_RX(chan) (0x48 + 2*chan)
0127 #define DSR_TX(chan) (0x49 + 2*chan)
0128 #define DIR_RX(chan) (0x4c + 2*chan)
0129 #define DIR_TX(chan) (0x4d + 2*chan)
0130 #define FCT_RX(chan) (0x50 + 2*chan)
0131 #define FCT_TX(chan) (0x51 + 2*chan)
0132 #define DMR_RX(chan) (0x54 + 2*chan)
0133 #define DMR_TX(chan) (0x55 + 2*chan)
0134 #define DCR_RX(chan) (0x58 + 2*chan)
0135 #define DCR_TX(chan) (0x59 + 2*chan)
0136
0137
0138 #define DMAC0RX_OFFSET 0x00
0139 #define DMAC0TX_OFFSET 0x20
0140 #define DMAC1RX_OFFSET 0x40
0141 #define DMAC1TX_OFFSET 0x60
0142
0143 #define DARL 0x80
0144 #define DARH 0x81
0145 #define DARB 0x82
0146 #define DARBH 0x83
0147 #define SARL 0x80
0148 #define SARH 0x81
0149 #define SARB 0x82
0150 #define DARBH 0x83
0151 #define BARL 0x80
0152 #define BARH 0x81
0153 #define BARB 0x82
0154 #define BARBH 0x83
0155 #define CDAL 0x84
0156 #define CDAH 0x85
0157 #define CDAB 0x86
0158 #define CDABH 0x87
0159 #define EDAL 0x88
0160 #define EDAH 0x89
0161 #define EDAB 0x8a
0162 #define EDABH 0x8b
0163 #define BFLL 0x90
0164 #define BFLH 0x91
0165 #define BCRL 0x8c
0166 #define BCRH 0x8d
0167
0168
0169 typedef struct {
0170 unsigned long next;
0171 unsigned long ptbuf;
0172 unsigned short len;
0173 unsigned char status;
0174 unsigned char filler[5];
0175 } pcsca_bd_t;
0176
0177
0178 typedef struct {
0179 u32 cp;
0180 u32 bp;
0181 u16 len;
0182 u8 stat;
0183 u8 unused;
0184 }pkt_desc;
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201 #define DST_EOT 0x01
0202 #define DST_OSB 0x02
0203 #define DST_CRC 0x04
0204 #define DST_OVR 0x08
0205 #define DST_UDR 0x08
0206 #define DST_RBIT 0x10
0207 #define DST_ABT 0x20
0208 #define DST_SHRT 0x40
0209 #define DST_EOM 0x80
0210
0211
0212
0213 #define ST_TX_EOM 0x80
0214 #define ST_TX_UNDRRUN 0x08
0215 #define ST_TX_OWNRSHP 0x02
0216 #define ST_TX_EOT 0x01
0217
0218 #define ST_RX_EOM 0x80
0219 #define ST_RX_SHORT 0x40
0220 #define ST_RX_ABORT 0x20
0221 #define ST_RX_RESBIT 0x10
0222 #define ST_RX_OVERRUN 0x08
0223 #define ST_RX_CRC 0x04
0224 #define ST_RX_OWNRSHP 0x02
0225
0226 #define ST_ERROR_MASK 0x7C
0227
0228
0229 #define CMCR 0x158
0230 #define TECNTL 0x160
0231 #define TECNTM 0x161
0232 #define TECNTH 0x162
0233 #define TECCR 0x163
0234 #define URCNTL 0x164
0235 #define URCNTH 0x165
0236 #define URCCR 0x167
0237 #define RECNTL 0x168
0238 #define RECNTM 0x169
0239 #define RECNTH 0x16a
0240 #define RECCR 0x16b
0241 #define ORCNTL 0x16c
0242 #define ORCNTH 0x16d
0243 #define ORCCR 0x16f
0244 #define CECNTL 0x170
0245 #define CECNTH 0x171
0246 #define CECCR 0x173
0247 #define ABCNTL 0x174
0248 #define ABCNTH 0x175
0249 #define ABCCR 0x177
0250 #define SHCNTL 0x178
0251 #define SHCNTH 0x179
0252 #define SHCCR 0x17b
0253 #define RSCNTL 0x17c
0254 #define RSCNTH 0x17d
0255 #define RSCCR 0x17f
0256
0257
0258
0259 #define IR0_DMIC 0x00000001
0260 #define IR0_DMIB 0x00000002
0261 #define IR0_DMIA 0x00000004
0262 #define IR0_EFT 0x00000008
0263 #define IR0_DMAREQ 0x00010000
0264 #define IR0_TXINT 0x00020000
0265 #define IR0_RXINTB 0x00040000
0266 #define IR0_RXINTA 0x00080000
0267 #define IR0_TXRDY 0x00100000
0268 #define IR0_RXRDY 0x00200000
0269
0270 #define MD0_CRC16_0 0x00
0271 #define MD0_CRC16_1 0x01
0272 #define MD0_CRC32 0x02
0273 #define MD0_CRC_CCITT 0x03
0274 #define MD0_CRCC0 0x04
0275 #define MD0_CRCC1 0x08
0276 #define MD0_AUTO_ENA 0x10
0277 #define MD0_ASYNC 0x00
0278 #define MD0_BY_MSYNC 0x20
0279 #define MD0_BY_BISYNC 0x40
0280 #define MD0_BY_EXT 0x60
0281 #define MD0_BIT_SYNC 0x80
0282 #define MD0_TRANSP 0xc0
0283
0284 #define MD0_HDLC 0x80
0285
0286 #define MD0_CRC_NONE 0x00
0287 #define MD0_CRC_16_0 0x04
0288 #define MD0_CRC_16 0x05
0289 #define MD0_CRC_ITU32 0x06
0290 #define MD0_CRC_ITU 0x07
0291
0292 #define MD1_NOADDR 0x00
0293 #define MD1_SADDR1 0x40
0294 #define MD1_SADDR2 0x80
0295 #define MD1_DADDR 0xc0
0296
0297 #define MD2_NRZI_IEEE 0x40
0298 #define MD2_MANCHESTER 0x80
0299 #define MD2_FM_MARK 0xA0
0300 #define MD2_FM_SPACE 0xC0
0301 #define MD2_LOOPBACK 0x03
0302
0303 #define MD2_F_DUPLEX 0x00
0304 #define MD2_AUTO_ECHO 0x01
0305 #define MD2_LOOP_HI_Z 0x02
0306 #define MD2_LOOP_MIR 0x03
0307 #define MD2_ADPLL_X8 0x00
0308 #define MD2_ADPLL_X16 0x08
0309 #define MD2_ADPLL_X32 0x10
0310 #define MD2_NRZ 0x00
0311 #define MD2_NRZI 0x20
0312 #define MD2_NRZ_IEEE 0x40
0313 #define MD2_MANCH 0x00
0314 #define MD2_FM1 0x20
0315 #define MD2_FM0 0x40
0316 #define MD2_FM 0x80
0317
0318 #define CTL_RTS 0x01
0319 #define CTL_DTR 0x02
0320 #define CTL_SYN 0x04
0321 #define CTL_IDLC 0x10
0322 #define CTL_UDRNC 0x20
0323 #define CTL_URSKP 0x40
0324 #define CTL_URCT 0x80
0325
0326 #define CTL_NORTS 0x01
0327 #define CTL_NODTR 0x02
0328 #define CTL_IDLE 0x10
0329
0330 #define RXS_BR0 0x01
0331 #define RXS_BR1 0x02
0332 #define RXS_BR2 0x04
0333 #define RXS_BR3 0x08
0334 #define RXS_ECLK 0x00
0335 #define RXS_ECLK_NS 0x20
0336 #define RXS_IBRG 0x40
0337 #define RXS_PLL1 0x50
0338 #define RXS_PLL2 0x60
0339 #define RXS_PLL3 0x70
0340 #define RXS_DRTXC 0x80
0341
0342 #define TXS_BR0 0x01
0343 #define TXS_BR1 0x02
0344 #define TXS_BR2 0x04
0345 #define TXS_BR3 0x08
0346 #define TXS_ECLK 0x00
0347 #define TXS_IBRG 0x40
0348 #define TXS_RCLK 0x60
0349 #define TXS_DTRXC 0x80
0350
0351 #define EXS_RES0 0x01
0352 #define EXS_RES1 0x02
0353 #define EXS_RES2 0x04
0354 #define EXS_TES0 0x10
0355 #define EXS_TES1 0x20
0356 #define EXS_TES2 0x40
0357
0358 #define CLK_BRG_MASK 0x0F
0359 #define CLK_PIN_OUT 0x80
0360 #define CLK_LINE 0x00
0361 #define CLK_BRG 0x40
0362 #define CLK_TX_RXCLK 0x60
0363
0364 #define CMD_RX_RST 0x11
0365 #define CMD_RX_ENA 0x12
0366 #define CMD_RX_DIS 0x13
0367 #define CMD_RX_CRC_INIT 0x14
0368 #define CMD_RX_MSG_REJ 0x15
0369 #define CMD_RX_MP_SRCH 0x16
0370 #define CMD_RX_CRC_EXC 0x17
0371 #define CMD_RX_CRC_FRC 0x18
0372 #define CMD_TX_RST 0x01
0373 #define CMD_TX_ENA 0x02
0374 #define CMD_TX_DISA 0x03
0375 #define CMD_TX_CRC_INIT 0x04
0376 #define CMD_TX_CRC_EXC 0x05
0377 #define CMD_TX_EOM 0x06
0378 #define CMD_TX_ABORT 0x07
0379 #define CMD_TX_MP_ON 0x08
0380 #define CMD_TX_BUF_CLR 0x09
0381 #define CMD_TX_DISB 0x0b
0382 #define CMD_CH_RST 0x21
0383 #define CMD_SRCH_MODE 0x31
0384 #define CMD_NOP 0x00
0385
0386 #define CMD_RESET 0x21
0387 #define CMD_TX_ENABLE 0x02
0388 #define CMD_RX_ENABLE 0x12
0389
0390 #define ST0_RXRDY 0x01
0391 #define ST0_TXRDY 0x02
0392 #define ST0_RXINTB 0x20
0393 #define ST0_RXINTA 0x40
0394 #define ST0_TXINT 0x80
0395
0396 #define ST1_IDLE 0x01
0397 #define ST1_ABORT 0x02
0398 #define ST1_CDCD 0x04
0399 #define ST1_CCTS 0x08
0400 #define ST1_SYN_FLAG 0x10
0401 #define ST1_CLMD 0x20
0402 #define ST1_TXIDLE 0x40
0403 #define ST1_UDRN 0x80
0404
0405 #define ST2_CRCE 0x04
0406 #define ST2_ONRN 0x08
0407 #define ST2_RBIT 0x10
0408 #define ST2_ABORT 0x20
0409 #define ST2_SHORT 0x40
0410 #define ST2_EOM 0x80
0411
0412 #define ST3_RX_ENA 0x01
0413 #define ST3_TX_ENA 0x02
0414 #define ST3_DCD 0x04
0415 #define ST3_CTS 0x08
0416 #define ST3_SRCH_MODE 0x10
0417 #define ST3_SLOOP 0x20
0418 #define ST3_GPI 0x80
0419
0420 #define ST4_RDNR 0x01
0421 #define ST4_RDCR 0x02
0422 #define ST4_TDNR 0x04
0423 #define ST4_TDCR 0x08
0424 #define ST4_OCLM 0x20
0425 #define ST4_CFT 0x40
0426 #define ST4_CGPI 0x80
0427
0428 #define FST_CRCEF 0x04
0429 #define FST_OVRNF 0x08
0430 #define FST_RBIF 0x10
0431 #define FST_ABTF 0x20
0432 #define FST_SHRTF 0x40
0433 #define FST_EOMF 0x80
0434
0435 #define IE0_RXRDY 0x01
0436 #define IE0_TXRDY 0x02
0437 #define IE0_RXINTB 0x20
0438 #define IE0_RXINTA 0x40
0439 #define IE0_TXINT 0x80
0440 #define IE0_UDRN 0x00008000
0441 #define IE0_CDCD 0x00000400
0442
0443 #define IE1_IDLD 0x01
0444 #define IE1_ABTD 0x02
0445 #define IE1_CDCD 0x04
0446 #define IE1_CCTS 0x08
0447 #define IE1_SYNCD 0x10
0448 #define IE1_CLMD 0x20
0449 #define IE1_IDL 0x40
0450 #define IE1_UDRN 0x80
0451
0452 #define IE2_CRCE 0x04
0453 #define IE2_OVRN 0x08
0454 #define IE2_RBIT 0x10
0455 #define IE2_ABT 0x20
0456 #define IE2_SHRT 0x40
0457 #define IE2_EOM 0x80
0458
0459 #define IE4_RDNR 0x01
0460 #define IE4_RDCR 0x02
0461 #define IE4_TDNR 0x04
0462 #define IE4_TDCR 0x08
0463 #define IE4_OCLM 0x20
0464 #define IE4_CFT 0x40
0465 #define IE4_CGPI 0x80
0466
0467 #define FIE_CRCEF 0x04
0468 #define FIE_OVRNF 0x08
0469 #define FIE_RBIF 0x10
0470 #define FIE_ABTF 0x20
0471 #define FIE_SHRTF 0x40
0472 #define FIE_EOMF 0x80
0473
0474 #define DSR_DWE 0x01
0475 #define DSR_DE 0x02
0476 #define DSR_REF 0x04
0477 #define DSR_UDRF 0x04
0478 #define DSR_COA 0x08
0479 #define DSR_COF 0x10
0480 #define DSR_BOF 0x20
0481 #define DSR_EOM 0x40
0482 #define DSR_EOT 0x80
0483
0484 #define DIR_REF 0x04
0485 #define DIR_UDRF 0x04
0486 #define DIR_COA 0x08
0487 #define DIR_COF 0x10
0488 #define DIR_BOF 0x20
0489 #define DIR_EOM 0x40
0490 #define DIR_EOT 0x80
0491
0492 #define DIR_REFE 0x04
0493 #define DIR_UDRFE 0x04
0494 #define DIR_COAE 0x08
0495 #define DIR_COFE 0x10
0496 #define DIR_BOFE 0x20
0497 #define DIR_EOME 0x40
0498 #define DIR_EOTE 0x80
0499
0500 #define DMR_CNTE 0x02
0501 #define DMR_NF 0x04
0502 #define DMR_SEOME 0x08
0503 #define DMR_TMOD 0x10
0504
0505 #define DMER_DME 0x80
0506
0507 #define DCR_SW_ABT 0x01
0508 #define DCR_FCT_CLR 0x02
0509
0510 #define DCR_ABORT 0x01
0511 #define DCR_CLEAR_EOF 0x02
0512
0513 #define PCR_COTE 0x80
0514 #define PCR_PR0 0x01
0515 #define PCR_PR1 0x02
0516 #define PCR_PR2 0x04
0517 #define PCR_CCC 0x08
0518 #define PCR_BRC 0x10
0519 #define PCR_OSB 0x40
0520 #define PCR_BURST 0x80
0521
0522 #endif