aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/mach-at32ap/hmatrix.h
blob: d10bfb60d68d930c972fc1c832c216a15f0a4aa5 (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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/*
 * Register definitions for High-Speed Bus Matrix
 */
#ifndef __HMATRIX_H
#define __HMATRIX_H

/* HMATRIX register offsets */
#define HMATRIX_MCFG0				0x0000
#define HMATRIX_MCFG1				0x0004
#define HMATRIX_MCFG2				0x0008
#define HMATRIX_MCFG3				0x000c
#define HMATRIX_MCFG4				0x0010
#define HMATRIX_MCFG5				0x0014
#define HMATRIX_MCFG6				0x0018
#define HMATRIX_MCFG7				0x001c
#define HMATRIX_MCFG8				0x0020
#define HMATRIX_MCFG9				0x0024
#define HMATRIX_MCFG10				0x0028
#define HMATRIX_MCFG11				0x002c
#define HMATRIX_MCFG12				0x0030
#define HMATRIX_MCFG13				0x0034
#define HMATRIX_MCFG14				0x0038
#define HMATRIX_MCFG15				0x003c
#define HMATRIX_SCFG0				0x0040
#define HMATRIX_SCFG1				0x0044
#define HMATRIX_SCFG2				0x0048
#define HMATRIX_SCFG3				0x004c
#define HMATRIX_SCFG4				0x0050
#define HMATRIX_SCFG5				0x0054
#define HMATRIX_SCFG6				0x0058
#define HMATRIX_SCFG7				0x005c
#define HMATRIX_SCFG8				0x0060
#define HMATRIX_SCFG9				0x0064
#define HMATRIX_SCFG10				0x0068
#define HMATRIX_SCFG11				0x006c
#define HMATRIX_SCFG12				0x0070
#define HMATRIX_SCFG13				0x0074
#define HMATRIX_SCFG14				0x0078
#define HMATRIX_SCFG15				0x007c
#define HMATRIX_PRAS0				0x0080
#define HMATRIX_PRBS0				0x0084
#define HMATRIX_PRAS1				0x0088
#define HMATRIX_PRBS1				0x008c
#define HMATRIX_PRAS2				0x0090
#define HMATRIX_PRBS2				0x0094
#define HMATRIX_PRAS3				0x0098
#define HMATRIX_PRBS3				0x009c
#define HMATRIX_PRAS4				0x00a0
#define HMATRIX_PRBS4				0x00a4
#define HMATRIX_PRAS5				0x00a8
#define HMATRIX_PRBS5				0x00ac
#define HMATRIX_PRAS6				0x00b0
#define HMATRIX_PRBS6				0x00b4
#define HMATRIX_PRAS7				0x00b8
#define HMATRIX_PRBS7				0x00bc
#define HMATRIX_PRAS8				0x00c0
#define HMATRIX_PRBS8				0x00c4
#define HMATRIX_PRAS9				0x00c8
#define HMATRIX_PRBS9				0x00cc
#define HMATRIX_PRAS10				0x00d0
#define HMATRIX_PRBS10				0x00d4
#define HMATRIX_PRAS11				0x00d8
#define HMATRIX_PRBS11				0x00dc
#define HMATRIX_PRAS12				0x00e0
#define HMATRIX_PRBS12				0x00e4
#define HMATRIX_PRAS13				0x00e8
#define HMATRIX_PRBS13				0x00ec
#define HMATRIX_PRAS14				0x00f0
#define HMATRIX_PRBS14				0x00f4
#define HMATRIX_PRAS15				0x00f8
#define HMATRIX_PRBS15				0x00fc
#define HMATRIX_MRCR				0x0100
#define HMATRIX_SFR0				0x0110
#define HMATRIX_SFR1				0x0114
#define HMATRIX_SFR2				0x0118
#define HMATRIX_SFR3				0x011c
#define HMATRIX_SFR4				0x0120
#define HMATRIX_SFR5				0x0124
#define HMATRIX_SFR6				0x0128
#define HMATRIX_SFR7				0x012c
#define HMATRIX_SFR8				0x0130
#define HMATRIX_SFR9				0x0134
#define HMATRIX_SFR10				0x0138
#define HMATRIX_SFR11				0x013c
#define HMATRIX_SFR12				0x0140
#define HMATRIX_SFR13				0x0144
#define HMATRIX_SFR14				0x0148
#define HMATRIX_SFR15				0x014c

/* Bitfields in MCFGx */
#define HMATRIX_ULBT_OFFSET			0
#define HMATRIX_ULBT_SIZE			3

/* Bitfields in SCFGx */
#define HMATRIX_SLOT_CYCLE_OFFSET		0
#define HMATRIX_SLOT_CYCLE_SIZE			8
#define HMATRIX_DEFMSTR_TYPE_OFFSET		16
#define HMATRIX_DEFMSTR_TYPE_SIZE		2
#define HMATRIX_FIXED_DEFMSTR_OFFSET		18
#define HMATRIX_FIXED_DEFMSTR_SIZE		4
#define HMATRIX_ARBT_OFFSET			24
#define HMATRIX_ARBT_SIZE			2

/* Bitfields in PRASx */
#define HMATRIX_M0PR_OFFSET			0
#define HMATRIX_M0PR_SIZE			4
#define HMATRIX_M1PR_OFFSET			4
#define HMATRIX_M1PR_SIZE			4
#define HMATRIX_M2PR_OFFSET			8
#define HMATRIX_M2PR_SIZE			4
#define HMATRIX_M3PR_OFFSET			12
#define HMATRIX_M3PR_SIZE			4
#define HMATRIX_M4PR_OFFSET			16
#define HMATRIX_M4PR_SIZE			4
#define HMATRIX_M5PR_OFFSET			20
#define HMATRIX_M5PR_SIZE			4
#define HMATRIX_M6PR_OFFSET			24
#define HMATRIX_M6PR_SIZE			4
#define HMATRIX_M7PR_OFFSET			28
#define HMATRIX_M7PR_SIZE			4

/* Bitfields in PRBSx */
#define HMATRIX_M8PR_OFFSET			0
#define HMATRIX_M8PR_SIZE			4
#define HMATRIX_M9PR_OFFSET			4
#define HMATRIX_M9PR_SIZE			4
#define HMATRIX_M10PR_OFFSET			8
#define HMATRIX_M10PR_SIZE			4
#define HMATRIX_M11PR_OFFSET			12
#define HMATRIX_M11PR_SIZE			4
#define HMATRIX_M12PR_OFFSET			16
#define HMATRIX_M12PR_SIZE			4
#define HMATRIX_M13PR_OFFSET			20
#define HMATRIX_M13PR_SIZE			4
#define HMATRIX_M14PR_OFFSET			24
#define HMATRIX_M14PR_SIZE			4
#define HMATRIX_M15PR_OFFSET			28
#define HMATRIX_M15PR_SIZE			4

/* Bitfields in SFR4 */
#define HMATRIX_CS1A_OFFSET			1
#define HMATRIX_CS1A_SIZE			1
#define HMATRIX_CS3A_OFFSET			3
#define HMATRIX_CS3A_SIZE			1
#define HMATRIX_CS4A_OFFSET			4
#define HMATRIX_CS4A_SIZE			1
#define HMATRIX_CS5A_OFFSET			5
#define HMATRIX_CS5A_SIZE			1
#define HMATRIX_DBPUC_OFFSET			8
#define HMATRIX_DBPUC_SIZE			1

/* Constants for ULBT */
#define HMATRIX_ULBT_INFINITE			0
#define HMATRIX_ULBT_SINGLE			1
#define HMATRIX_ULBT_FOUR_BEAT			2
#define HMATRIX_ULBT_EIGHT_BEAT			3
#define HMATRIX_ULBT_SIXTEEN_BEAT		4

/* Constants for DEFMSTR_TYPE */
#define HMATRIX_DEFMSTR_TYPE_NO_DEFAULT		0
#define HMATRIX_DEFMSTR_TYPE_LAST_DEFAULT	1
#define HMATRIX_DEFMSTR_TYPE_FIXED_DEFAULT	2

/* Constants for ARBT */
#define HMATRIX_ARBT_ROUND_ROBIN		0
#define HMATRIX_ARBT_FIXED_PRIORITY		1

/* Bit manipulation macros */
#define HMATRIX_BIT(name)					\
	(1 << HMATRIX_##name##_OFFSET)
#define HMATRIX_BF(name,value)					\
	(((value) & ((1 << HMATRIX_##name##_SIZE) - 1))		\
	 << HMATRIX_##name##_OFFSET)
#define HMATRIX_BFEXT(name,value)				\
	(((value) >> HMATRIX_##name##_OFFSET)			\
	 & ((1 << HMATRIX_##name##_SIZE) - 1))
#define HMATRIX_BFINS(name,value,old)				\
	(((old) & ~(((1 << HMATRIX_##name##_SIZE) - 1)		\
		    << HMATRIX_##name##_OFFSET))		\
	 | HMATRIX_BF(name,value))

#endif /* __HMATRIX_H */