locks: add warning about mandatory locking races
[pv_ops_mirror.git] / arch / avr32 / mach-at32ap / hmatrix.h
blobd10bfb60d68d930c972fc1c832c216a15f0a4aa5
1 /*
2 * Register definitions for High-Speed Bus Matrix
3 */
4 #ifndef __HMATRIX_H
5 #define __HMATRIX_H
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
90 /* Bitfields in MCFGx */
91 #define HMATRIX_ULBT_OFFSET 0
92 #define HMATRIX_ULBT_SIZE 3
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
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
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
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
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
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
164 /* Constants for ARBT */
165 #define HMATRIX_ARBT_ROUND_ROBIN 0
166 #define HMATRIX_ARBT_FIXED_PRIORITY 1
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))
182 #endif /* __HMATRIX_H */