aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/mips/include/asm/sibyte/sb1250_syncser.h
blob: b3acc75cf0f2ab206d94a708d4f3f46ece624664 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/*  *********************************************************************
    *  SB1250 Board Support Package
    *
    *  Synchronous Serial Constants		 File: sb1250_syncser.h
    *
    *  This module contains constants and macros useful for
    *  manipulating the SB1250's Synchronous Serial
    *
    *  SB1250 specification level:  User's manual 1/02/02
    *
    *********************************************************************
    *
    *  Copyright 2000,2001,2002,2003
    *  Broadcom Corporation. All rights reserved.
    *
    *  This program is free software; you can redistribute it and/or
    *  modify it under the terms of the GNU General Public License as
    *  published by the Free Software Foundation; either version 2 of
    *  the License, or (at your option) any later version.
    *
    *  This program is distributed in the hope that it will be useful,
    *  but WITHOUT ANY WARRANTY; without even the implied warranty of
    *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    *  GNU General Public License for more details.
    *
    *  You should have received a copy of the GNU General Public License
    *  along with this program; if not, write to the Free Software
    *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    *  MA 02111-1307 USA
    ********************************************************************* */


#ifndef _SB1250_SYNCSER_H
#define _SB1250_SYNCSER_H

#include <asm/sibyte/sb1250_defs.h>

/*
 * Serial Mode Configuration Register
 */

#define M_SYNCSER_CRC_MODE		   _SB_MAKEMASK1(0)
#define M_SYNCSER_MSB_FIRST		   _SB_MAKEMASK1(1)

#define S_SYNCSER_FLAG_NUM		   2
#define M_SYNCSER_FLAG_NUM		   _SB_MAKEMASK(4, S_SYNCSER_FLAG_NUM)
#define V_SYNCSER_FLAG_NUM		   _SB_MAKEVALUE(x, S_SYNCSER_FLAG_NUM)

#define M_SYNCSER_FLAG_EN		   _SB_MAKEMASK1(6)
#define M_SYNCSER_HDLC_EN		   _SB_MAKEMASK1(7)
#define M_SYNCSER_LOOP_MODE		   _SB_MAKEMASK1(8)
#define M_SYNCSER_LOOPBACK		   _SB_MAKEMASK1(9)

/*
 * Serial Clock Source and Line Interface Mode Register
 */

#define M_SYNCSER_RXCLK_INV		   _SB_MAKEMASK1(0)
#define M_SYNCSER_RXCLK_EXT		   _SB_MAKEMASK1(1)

#define S_SYNCSER_RXSYNC_DLY		   2
#define M_SYNCSER_RXSYNC_DLY		   _SB_MAKEMASK(2, S_SYNCSER_RXSYNC_DLY)
#define V_SYNCSER_RXSYNC_DLY(x)		   _SB_MAKEVALUE(x, S_SYNCSER_RXSYNC_DLY)

#define M_SYNCSER_RXSYNC_LOW		   _SB_MAKEMASK1(4)
#define M_SYNCSER_RXSTRB_LOW		   _SB_MAKEMASK1(5)

#define M_SYNCSER_RXSYNC_EDGE		   _SB_MAKEMASK1(6)
#define M_SYNCSER_RXSYNC_INT		   _SB_MAKEMASK1(7)

#define M_SYNCSER_TXCLK_INV		   _SB_MAKEMASK1(8)
#define M_SYNCSER_TXCLK_EXT		   _SB_MAKEMASK1(9)

#define S_SYNCSER_TXSYNC_DLY		   10
#define M_SYNCSER_TXSYNC_DLY		   _SB_MAKEMASK(2, S_SYNCSER_TXSYNC_DLY)
#define V_SYNCSER_TXSYNC_DLY(x)		   _SB_MAKEVALUE(x, S_SYNCSER_TXSYNC_DLY)

#define M_SYNCSER_TXSYNC_LOW		   _SB_MAKEMASK1(12)
#define M_SYNCSER_TXSTRB_LOW		   _SB_MAKEMASK1(13)

#define M_SYNCSER_TXSYNC_EDGE		   _SB_MAKEMASK1(14)
#define M_SYNCSER_TXSYNC_INT		   _SB_MAKEMASK1(15)

/*
 * Serial Command Register
 */

#define M_SYNCSER_CMD_RX_EN		   _SB_MAKEMASK1(0)
#define M_SYNCSER_CMD_TX_EN		   _SB_MAKEMASK1(1)
#define M_SYNCSER_CMD_RX_RESET		   _SB_MAKEMASK1(2)
#define M_SYNCSER_CMD_TX_RESET		   _SB_MAKEMASK1(3)
#define M_SYNCSER_CMD_TX_PAUSE		   _SB_MAKEMASK1(5)

/*
 * Serial DMA Enable Register
 */

#define M_SYNCSER_DMA_RX_EN		   _SB_MAKEMASK1(0)
#define M_SYNCSER_DMA_TX_EN		   _SB_MAKEMASK1(4)

/*
 * Serial Status Register
 */

#define M_SYNCSER_RX_CRCERR		   _SB_MAKEMASK1(0)
#define M_SYNCSER_RX_ABORT		   _SB_MAKEMASK1(1)
#define M_SYNCSER_RX_OCTET		   _SB_MAKEMASK1(2)
#define M_SYNCSER_RX_LONGFRM		   _SB_MAKEMASK1(3)
#define M_SYNCSER_RX_SHORTFRM		   _SB_MAKEMASK1(4)
#define M_SYNCSER_RX_OVERRUN		   _SB_MAKEMASK1(5)
#define M_SYNCSER_RX_SYNC_ERR		   _SB_MAKEMASK1(6)
#define M_SYNCSER_TX_CRCERR		   _SB_MAKEMASK1(8)
#define M_SYNCSER_TX_UNDERRUN		   _SB_MAKEMASK1(9)
#define M_SYNCSER_TX_SYNC_ERR		   _SB_MAKEMASK1(10)
#define M_SYNCSER_TX_PAUSE_COMPLETE	   _SB_MAKEMASK1(11)
#define M_SYNCSER_RX_EOP_COUNT		   _SB_MAKEMASK1(16)
#define M_SYNCSER_RX_EOP_TIMER		   _SB_MAKEMASK1(17)
#define M_SYNCSER_RX_EOP_SEEN		   _SB_MAKEMASK1(18)
#define M_SYNCSER_RX_HWM		   _SB_MAKEMASK1(19)
#define M_SYNCSER_RX_LWM		   _SB_MAKEMASK1(20)
#define M_SYNCSER_RX_DSCR		   _SB_MAKEMASK1(21)
#define M_SYNCSER_RX_DERR		   _SB_MAKEMASK1(22)
#define M_SYNCSER_TX_EOP_COUNT		   _SB_MAKEMASK1(24)
#define M_SYNCSER_TX_EOP_TIMER		   _SB_MAKEMASK1(25)
#define M_SYNCSER_TX_EOP_SEEN		   _SB_MAKEMASK1(26)
#define M_SYNCSER_TX_HWM		   _SB_MAKEMASK1(27)
#define M_SYNCSER_TX_LWM		   _SB_MAKEMASK1(28)
#define M_SYNCSER_TX_DSCR		   _SB_MAKEMASK1(29)
#define M_SYNCSER_TX_DERR		   _SB_MAKEMASK1(30)
#define M_SYNCSER_TX_DZERO		   _SB_MAKEMASK1(31)

/*
 * Sequencer Table Entry format
 */

#define M_SYNCSER_SEQ_LAST		   _SB_MAKEMASK1(0)
#define M_SYNCSER_SEQ_BYTE		   _SB_MAKEMASK1(1)

#define S_SYNCSER_SEQ_COUNT		   2
#define M_SYNCSER_SEQ_COUNT		   _SB_MAKEMASK(4, S_SYNCSER_SEQ_COUNT)
#define V_SYNCSER_SEQ_COUNT(x)		   _SB_MAKEVALUE(x, S_SYNCSER_SEQ_COUNT)

#define M_SYNCSER_SEQ_ENABLE		   _SB_MAKEMASK1(6)
#define M_SYNCSER_SEQ_STROBE		   _SB_MAKEMASK1(7)

#endif