Merge branch 'virtex-for-2.6.25' of git://git.secretlab.ca/git/linux-2.6-virtex into...
[linux-2.6] / arch / avr32 / mach-at32ap / hmatrix.h
1 /*
2  * Register definitions for High-Speed Bus Matrix
3  */
4 #ifndef __HMATRIX_H
5 #define __HMATRIX_H
6
7 /* HMATRIX register offsets */
8 #define HMATRIX_MCFG0                           0x0000
9 #define HMATRIX_MCFG1                           0x0004
10 #define HMATRIX_MCFG2                           0x0008
11 #define HMATRIX_MCFG3                           0x000c
12 #define HMATRIX_MCFG4                           0x0010
13 #define HMATRIX_MCFG5                           0x0014
14 #define HMATRIX_MCFG6                           0x0018
15 #define HMATRIX_MCFG7                           0x001c
16 #define HMATRIX_MCFG8                           0x0020
17 #define HMATRIX_MCFG9                           0x0024
18 #define HMATRIX_MCFG10                          0x0028
19 #define HMATRIX_MCFG11                          0x002c
20 #define HMATRIX_MCFG12                          0x0030
21 #define HMATRIX_MCFG13                          0x0034
22 #define HMATRIX_MCFG14                          0x0038
23 #define HMATRIX_MCFG15                          0x003c
24 #define HMATRIX_SCFG0                           0x0040
25 #define HMATRIX_SCFG1                           0x0044
26 #define HMATRIX_SCFG2                           0x0048
27 #define HMATRIX_SCFG3                           0x004c
28 #define HMATRIX_SCFG4                           0x0050
29 #define HMATRIX_SCFG5                           0x0054
30 #define HMATRIX_SCFG6                           0x0058
31 #define HMATRIX_SCFG7                           0x005c
32 #define HMATRIX_SCFG8                           0x0060
33 #define HMATRIX_SCFG9                           0x0064
34 #define HMATRIX_SCFG10                          0x0068
35 #define HMATRIX_SCFG11                          0x006c
36 #define HMATRIX_SCFG12                          0x0070
37 #define HMATRIX_SCFG13                          0x0074
38 #define HMATRIX_SCFG14                          0x0078
39 #define HMATRIX_SCFG15                          0x007c
40 #define HMATRIX_PRAS0                           0x0080
41 #define HMATRIX_PRBS0                           0x0084
42 #define HMATRIX_PRAS1                           0x0088
43 #define HMATRIX_PRBS1                           0x008c
44 #define HMATRIX_PRAS2                           0x0090
45 #define HMATRIX_PRBS2                           0x0094
46 #define HMATRIX_PRAS3                           0x0098
47 #define HMATRIX_PRBS3                           0x009c
48 #define HMATRIX_PRAS4                           0x00a0
49 #define HMATRIX_PRBS4                           0x00a4
50 #define HMATRIX_PRAS5                           0x00a8
51 #define HMATRIX_PRBS5                           0x00ac
52 #define HMATRIX_PRAS6                           0x00b0
53 #define HMATRIX_PRBS6                           0x00b4
54 #define HMATRIX_PRAS7                           0x00b8
55 #define HMATRIX_PRBS7                           0x00bc
56 #define HMATRIX_PRAS8                           0x00c0
57 #define HMATRIX_PRBS8                           0x00c4
58 #define HMATRIX_PRAS9                           0x00c8
59 #define HMATRIX_PRBS9                           0x00cc
60 #define HMATRIX_PRAS10                          0x00d0
61 #define HMATRIX_PRBS10                          0x00d4
62 #define HMATRIX_PRAS11                          0x00d8
63 #define HMATRIX_PRBS11                          0x00dc
64 #define HMATRIX_PRAS12                          0x00e0
65 #define HMATRIX_PRBS12                          0x00e4
66 #define HMATRIX_PRAS13                          0x00e8
67 #define HMATRIX_PRBS13                          0x00ec
68 #define HMATRIX_PRAS14                          0x00f0
69 #define HMATRIX_PRBS14                          0x00f4
70 #define HMATRIX_PRAS15                          0x00f8
71 #define HMATRIX_PRBS15                          0x00fc
72 #define HMATRIX_MRCR                            0x0100
73 #define HMATRIX_SFR0                            0x0110
74 #define HMATRIX_SFR1                            0x0114
75 #define HMATRIX_SFR2                            0x0118
76 #define HMATRIX_SFR3                            0x011c
77 #define HMATRIX_SFR4                            0x0120
78 #define HMATRIX_SFR5                            0x0124
79 #define HMATRIX_SFR6                            0x0128
80 #define HMATRIX_SFR7                            0x012c
81 #define HMATRIX_SFR8                            0x0130
82 #define HMATRIX_SFR9                            0x0134
83 #define HMATRIX_SFR10                           0x0138
84 #define HMATRIX_SFR11                           0x013c
85 #define HMATRIX_SFR12                           0x0140
86 #define HMATRIX_SFR13                           0x0144
87 #define HMATRIX_SFR14                           0x0148
88 #define HMATRIX_SFR15                           0x014c
89
90 /* Bitfields in MCFGx */
91 #define HMATRIX_ULBT_OFFSET                     0
92 #define HMATRIX_ULBT_SIZE                       3
93
94 /* Bitfields in SCFGx */
95 #define HMATRIX_SLOT_CYCLE_OFFSET               0
96 #define HMATRIX_SLOT_CYCLE_SIZE                 8
97 #define HMATRIX_DEFMSTR_TYPE_OFFSET             16
98 #define HMATRIX_DEFMSTR_TYPE_SIZE               2
99 #define HMATRIX_FIXED_DEFMSTR_OFFSET            18
100 #define HMATRIX_FIXED_DEFMSTR_SIZE              4
101 #define HMATRIX_ARBT_OFFSET                     24
102 #define HMATRIX_ARBT_SIZE                       2
103
104 /* Bitfields in PRASx */
105 #define HMATRIX_M0PR_OFFSET                     0
106 #define HMATRIX_M0PR_SIZE                       4
107 #define HMATRIX_M1PR_OFFSET                     4
108 #define HMATRIX_M1PR_SIZE                       4
109 #define HMATRIX_M2PR_OFFSET                     8
110 #define HMATRIX_M2PR_SIZE                       4
111 #define HMATRIX_M3PR_OFFSET                     12
112 #define HMATRIX_M3PR_SIZE                       4
113 #define HMATRIX_M4PR_OFFSET                     16
114 #define HMATRIX_M4PR_SIZE                       4
115 #define HMATRIX_M5PR_OFFSET                     20
116 #define HMATRIX_M5PR_SIZE                       4
117 #define HMATRIX_M6PR_OFFSET                     24
118 #define HMATRIX_M6PR_SIZE                       4
119 #define HMATRIX_M7PR_OFFSET                     28
120 #define HMATRIX_M7PR_SIZE                       4
121
122 /* Bitfields in PRBSx */
123 #define HMATRIX_M8PR_OFFSET                     0
124 #define HMATRIX_M8PR_SIZE                       4
125 #define HMATRIX_M9PR_OFFSET                     4
126 #define HMATRIX_M9PR_SIZE                       4
127 #define HMATRIX_M10PR_OFFSET                    8
128 #define HMATRIX_M10PR_SIZE                      4
129 #define HMATRIX_M11PR_OFFSET                    12
130 #define HMATRIX_M11PR_SIZE                      4
131 #define HMATRIX_M12PR_OFFSET                    16
132 #define HMATRIX_M12PR_SIZE                      4
133 #define HMATRIX_M13PR_OFFSET                    20
134 #define HMATRIX_M13PR_SIZE                      4
135 #define HMATRIX_M14PR_OFFSET                    24
136 #define HMATRIX_M14PR_SIZE                      4
137 #define HMATRIX_M15PR_OFFSET                    28
138 #define HMATRIX_M15PR_SIZE                      4
139
140 /* Bitfields in SFR4 */
141 #define HMATRIX_CS1A_OFFSET                     1
142 #define HMATRIX_CS1A_SIZE                       1
143 #define HMATRIX_CS3A_OFFSET                     3
144 #define HMATRIX_CS3A_SIZE                       1
145 #define HMATRIX_CS4A_OFFSET                     4
146 #define HMATRIX_CS4A_SIZE                       1
147 #define HMATRIX_CS5A_OFFSET                     5
148 #define HMATRIX_CS5A_SIZE                       1
149 #define HMATRIX_DBPUC_OFFSET                    8
150 #define HMATRIX_DBPUC_SIZE                      1
151
152 /* Constants for ULBT */
153 #define HMATRIX_ULBT_INFINITE                   0
154 #define HMATRIX_ULBT_SINGLE                     1
155 #define HMATRIX_ULBT_FOUR_BEAT                  2
156 #define HMATRIX_ULBT_EIGHT_BEAT                 3
157 #define HMATRIX_ULBT_SIXTEEN_BEAT               4
158
159 /* Constants for DEFMSTR_TYPE */
160 #define HMATRIX_DEFMSTR_TYPE_NO_DEFAULT         0
161 #define HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT       1
162 #define HMATRIX_DEFMSTR_TYPE_FIXED_DEFAULT      2
163
164 /* Constants for ARBT */
165 #define HMATRIX_ARBT_ROUND_ROBIN                0
166 #define HMATRIX_ARBT_FIXED_PRIORITY             1
167
168 /* Bit manipulation macros */
169 #define HMATRIX_BIT(name)                                       \
170         (1 << HMATRIX_##name##_OFFSET)
171 #define HMATRIX_BF(name,value)                                  \
172         (((value) & ((1 << HMATRIX_##name##_SIZE) - 1))         \
173          << HMATRIX_##name##_OFFSET)
174 #define HMATRIX_BFEXT(name,value)                               \
175         (((value) >> HMATRIX_##name##_OFFSET)                   \
176          & ((1 << HMATRIX_##name##_SIZE) - 1))
177 #define HMATRIX_BFINS(name,value,old)                           \
178         (((old) & ~(((1 << HMATRIX_##name##_SIZE) - 1)          \
179                     << HMATRIX_##name##_OFFSET))                \
180          | HMATRIX_BF(name,value))
181
182 #endif /* __HMATRIX_H */