Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/cris/include/arch-v32/mach-a3/mach/hwregs/pio_defs.h
15163 views
1
#ifndef __pio_defs_h
2
#define __pio_defs_h
3
4
/*
5
* This file is autogenerated from
6
* file: pio.r
7
*
8
* by ../../../tools/rdesc/bin/rdes2c -outfile pio_defs.h pio.r
9
* Any changes here will be lost.
10
*
11
* -*- buffer-read-only: t -*-
12
*/
13
/* Main access macros */
14
#ifndef REG_RD
15
#define REG_RD( scope, inst, reg ) \
16
REG_READ( reg_##scope##_##reg, \
17
(inst) + REG_RD_ADDR_##scope##_##reg )
18
#endif
19
20
#ifndef REG_WR
21
#define REG_WR( scope, inst, reg, val ) \
22
REG_WRITE( reg_##scope##_##reg, \
23
(inst) + REG_WR_ADDR_##scope##_##reg, (val) )
24
#endif
25
26
#ifndef REG_RD_VECT
27
#define REG_RD_VECT( scope, inst, reg, index ) \
28
REG_READ( reg_##scope##_##reg, \
29
(inst) + REG_RD_ADDR_##scope##_##reg + \
30
(index) * STRIDE_##scope##_##reg )
31
#endif
32
33
#ifndef REG_WR_VECT
34
#define REG_WR_VECT( scope, inst, reg, index, val ) \
35
REG_WRITE( reg_##scope##_##reg, \
36
(inst) + REG_WR_ADDR_##scope##_##reg + \
37
(index) * STRIDE_##scope##_##reg, (val) )
38
#endif
39
40
#ifndef REG_RD_INT
41
#define REG_RD_INT( scope, inst, reg ) \
42
REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg )
43
#endif
44
45
#ifndef REG_WR_INT
46
#define REG_WR_INT( scope, inst, reg, val ) \
47
REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg, (val) )
48
#endif
49
50
#ifndef REG_RD_INT_VECT
51
#define REG_RD_INT_VECT( scope, inst, reg, index ) \
52
REG_READ( int, (inst) + REG_RD_ADDR_##scope##_##reg + \
53
(index) * STRIDE_##scope##_##reg )
54
#endif
55
56
#ifndef REG_WR_INT_VECT
57
#define REG_WR_INT_VECT( scope, inst, reg, index, val ) \
58
REG_WRITE( int, (inst) + REG_WR_ADDR_##scope##_##reg + \
59
(index) * STRIDE_##scope##_##reg, (val) )
60
#endif
61
62
#ifndef REG_TYPE_CONV
63
#define REG_TYPE_CONV( type, orgtype, val ) \
64
( { union { orgtype o; type n; } r; r.o = val; r.n; } )
65
#endif
66
67
#ifndef reg_page_size
68
#define reg_page_size 8192
69
#endif
70
71
#ifndef REG_ADDR
72
#define REG_ADDR( scope, inst, reg ) \
73
( (inst) + REG_RD_ADDR_##scope##_##reg )
74
#endif
75
76
#ifndef REG_ADDR_VECT
77
#define REG_ADDR_VECT( scope, inst, reg, index ) \
78
( (inst) + REG_RD_ADDR_##scope##_##reg + \
79
(index) * STRIDE_##scope##_##reg )
80
#endif
81
82
/* C-code for register scope pio */
83
84
/* Register rw_data, scope pio, type rw */
85
typedef unsigned int reg_pio_rw_data;
86
#define REG_RD_ADDR_pio_rw_data 64
87
#define REG_WR_ADDR_pio_rw_data 64
88
89
/* Register rw_io_access0, scope pio, type rw */
90
typedef struct {
91
unsigned int data : 8;
92
unsigned int dummy1 : 24;
93
} reg_pio_rw_io_access0;
94
#define REG_RD_ADDR_pio_rw_io_access0 0
95
#define REG_WR_ADDR_pio_rw_io_access0 0
96
97
/* Register rw_io_access1, scope pio, type rw */
98
typedef struct {
99
unsigned int data : 8;
100
unsigned int dummy1 : 24;
101
} reg_pio_rw_io_access1;
102
#define REG_RD_ADDR_pio_rw_io_access1 4
103
#define REG_WR_ADDR_pio_rw_io_access1 4
104
105
/* Register rw_io_access2, scope pio, type rw */
106
typedef struct {
107
unsigned int data : 8;
108
unsigned int dummy1 : 24;
109
} reg_pio_rw_io_access2;
110
#define REG_RD_ADDR_pio_rw_io_access2 8
111
#define REG_WR_ADDR_pio_rw_io_access2 8
112
113
/* Register rw_io_access3, scope pio, type rw */
114
typedef struct {
115
unsigned int data : 8;
116
unsigned int dummy1 : 24;
117
} reg_pio_rw_io_access3;
118
#define REG_RD_ADDR_pio_rw_io_access3 12
119
#define REG_WR_ADDR_pio_rw_io_access3 12
120
121
/* Register rw_io_access4, scope pio, type rw */
122
typedef struct {
123
unsigned int data : 8;
124
unsigned int dummy1 : 24;
125
} reg_pio_rw_io_access4;
126
#define REG_RD_ADDR_pio_rw_io_access4 16
127
#define REG_WR_ADDR_pio_rw_io_access4 16
128
129
/* Register rw_io_access5, scope pio, type rw */
130
typedef struct {
131
unsigned int data : 8;
132
unsigned int dummy1 : 24;
133
} reg_pio_rw_io_access5;
134
#define REG_RD_ADDR_pio_rw_io_access5 20
135
#define REG_WR_ADDR_pio_rw_io_access5 20
136
137
/* Register rw_io_access6, scope pio, type rw */
138
typedef struct {
139
unsigned int data : 8;
140
unsigned int dummy1 : 24;
141
} reg_pio_rw_io_access6;
142
#define REG_RD_ADDR_pio_rw_io_access6 24
143
#define REG_WR_ADDR_pio_rw_io_access6 24
144
145
/* Register rw_io_access7, scope pio, type rw */
146
typedef struct {
147
unsigned int data : 8;
148
unsigned int dummy1 : 24;
149
} reg_pio_rw_io_access7;
150
#define REG_RD_ADDR_pio_rw_io_access7 28
151
#define REG_WR_ADDR_pio_rw_io_access7 28
152
153
/* Register rw_io_access8, scope pio, type rw */
154
typedef struct {
155
unsigned int data : 8;
156
unsigned int dummy1 : 24;
157
} reg_pio_rw_io_access8;
158
#define REG_RD_ADDR_pio_rw_io_access8 32
159
#define REG_WR_ADDR_pio_rw_io_access8 32
160
161
/* Register rw_io_access9, scope pio, type rw */
162
typedef struct {
163
unsigned int data : 8;
164
unsigned int dummy1 : 24;
165
} reg_pio_rw_io_access9;
166
#define REG_RD_ADDR_pio_rw_io_access9 36
167
#define REG_WR_ADDR_pio_rw_io_access9 36
168
169
/* Register rw_io_access10, scope pio, type rw */
170
typedef struct {
171
unsigned int data : 8;
172
unsigned int dummy1 : 24;
173
} reg_pio_rw_io_access10;
174
#define REG_RD_ADDR_pio_rw_io_access10 40
175
#define REG_WR_ADDR_pio_rw_io_access10 40
176
177
/* Register rw_io_access11, scope pio, type rw */
178
typedef struct {
179
unsigned int data : 8;
180
unsigned int dummy1 : 24;
181
} reg_pio_rw_io_access11;
182
#define REG_RD_ADDR_pio_rw_io_access11 44
183
#define REG_WR_ADDR_pio_rw_io_access11 44
184
185
/* Register rw_io_access12, scope pio, type rw */
186
typedef struct {
187
unsigned int data : 8;
188
unsigned int dummy1 : 24;
189
} reg_pio_rw_io_access12;
190
#define REG_RD_ADDR_pio_rw_io_access12 48
191
#define REG_WR_ADDR_pio_rw_io_access12 48
192
193
/* Register rw_io_access13, scope pio, type rw */
194
typedef struct {
195
unsigned int data : 8;
196
unsigned int dummy1 : 24;
197
} reg_pio_rw_io_access13;
198
#define REG_RD_ADDR_pio_rw_io_access13 52
199
#define REG_WR_ADDR_pio_rw_io_access13 52
200
201
/* Register rw_io_access14, scope pio, type rw */
202
typedef struct {
203
unsigned int data : 8;
204
unsigned int dummy1 : 24;
205
} reg_pio_rw_io_access14;
206
#define REG_RD_ADDR_pio_rw_io_access14 56
207
#define REG_WR_ADDR_pio_rw_io_access14 56
208
209
/* Register rw_io_access15, scope pio, type rw */
210
typedef struct {
211
unsigned int data : 8;
212
unsigned int dummy1 : 24;
213
} reg_pio_rw_io_access15;
214
#define REG_RD_ADDR_pio_rw_io_access15 60
215
#define REG_WR_ADDR_pio_rw_io_access15 60
216
217
/* Register rw_ce0_cfg, scope pio, type rw */
218
typedef struct {
219
unsigned int lw : 6;
220
unsigned int ew : 3;
221
unsigned int zw : 3;
222
unsigned int aw : 2;
223
unsigned int mode : 2;
224
unsigned int dummy1 : 16;
225
} reg_pio_rw_ce0_cfg;
226
#define REG_RD_ADDR_pio_rw_ce0_cfg 68
227
#define REG_WR_ADDR_pio_rw_ce0_cfg 68
228
229
/* Register rw_ce1_cfg, scope pio, type rw */
230
typedef struct {
231
unsigned int lw : 6;
232
unsigned int ew : 3;
233
unsigned int zw : 3;
234
unsigned int aw : 2;
235
unsigned int mode : 2;
236
unsigned int dummy1 : 16;
237
} reg_pio_rw_ce1_cfg;
238
#define REG_RD_ADDR_pio_rw_ce1_cfg 72
239
#define REG_WR_ADDR_pio_rw_ce1_cfg 72
240
241
/* Register rw_ce2_cfg, scope pio, type rw */
242
typedef struct {
243
unsigned int lw : 6;
244
unsigned int ew : 3;
245
unsigned int zw : 3;
246
unsigned int aw : 2;
247
unsigned int mode : 2;
248
unsigned int dummy1 : 16;
249
} reg_pio_rw_ce2_cfg;
250
#define REG_RD_ADDR_pio_rw_ce2_cfg 76
251
#define REG_WR_ADDR_pio_rw_ce2_cfg 76
252
253
/* Register rw_dout, scope pio, type rw */
254
typedef struct {
255
unsigned int data : 8;
256
unsigned int rd_n : 1;
257
unsigned int wr_n : 1;
258
unsigned int a0 : 1;
259
unsigned int a1 : 1;
260
unsigned int ce0_n : 1;
261
unsigned int ce1_n : 1;
262
unsigned int ce2_n : 1;
263
unsigned int rdy : 1;
264
unsigned int dummy1 : 16;
265
} reg_pio_rw_dout;
266
#define REG_RD_ADDR_pio_rw_dout 80
267
#define REG_WR_ADDR_pio_rw_dout 80
268
269
/* Register rw_oe, scope pio, type rw */
270
typedef struct {
271
unsigned int data : 8;
272
unsigned int rd_n : 1;
273
unsigned int wr_n : 1;
274
unsigned int a0 : 1;
275
unsigned int a1 : 1;
276
unsigned int ce0_n : 1;
277
unsigned int ce1_n : 1;
278
unsigned int ce2_n : 1;
279
unsigned int rdy : 1;
280
unsigned int dummy1 : 16;
281
} reg_pio_rw_oe;
282
#define REG_RD_ADDR_pio_rw_oe 84
283
#define REG_WR_ADDR_pio_rw_oe 84
284
285
/* Register rw_man_ctrl, scope pio, type rw */
286
typedef struct {
287
unsigned int data : 8;
288
unsigned int rd_n : 1;
289
unsigned int wr_n : 1;
290
unsigned int a0 : 1;
291
unsigned int a1 : 1;
292
unsigned int ce0_n : 1;
293
unsigned int ce1_n : 1;
294
unsigned int ce2_n : 1;
295
unsigned int rdy : 1;
296
unsigned int dummy1 : 16;
297
} reg_pio_rw_man_ctrl;
298
#define REG_RD_ADDR_pio_rw_man_ctrl 88
299
#define REG_WR_ADDR_pio_rw_man_ctrl 88
300
301
/* Register r_din, scope pio, type r */
302
typedef struct {
303
unsigned int data : 8;
304
unsigned int rd_n : 1;
305
unsigned int wr_n : 1;
306
unsigned int a0 : 1;
307
unsigned int a1 : 1;
308
unsigned int ce0_n : 1;
309
unsigned int ce1_n : 1;
310
unsigned int ce2_n : 1;
311
unsigned int rdy : 1;
312
unsigned int dummy1 : 16;
313
} reg_pio_r_din;
314
#define REG_RD_ADDR_pio_r_din 92
315
316
/* Register r_stat, scope pio, type r */
317
typedef struct {
318
unsigned int busy : 1;
319
unsigned int dummy1 : 31;
320
} reg_pio_r_stat;
321
#define REG_RD_ADDR_pio_r_stat 96
322
323
/* Register rw_intr_mask, scope pio, type rw */
324
typedef struct {
325
unsigned int rdy : 1;
326
unsigned int dummy1 : 31;
327
} reg_pio_rw_intr_mask;
328
#define REG_RD_ADDR_pio_rw_intr_mask 100
329
#define REG_WR_ADDR_pio_rw_intr_mask 100
330
331
/* Register rw_ack_intr, scope pio, type rw */
332
typedef struct {
333
unsigned int rdy : 1;
334
unsigned int dummy1 : 31;
335
} reg_pio_rw_ack_intr;
336
#define REG_RD_ADDR_pio_rw_ack_intr 104
337
#define REG_WR_ADDR_pio_rw_ack_intr 104
338
339
/* Register r_intr, scope pio, type r */
340
typedef struct {
341
unsigned int rdy : 1;
342
unsigned int dummy1 : 31;
343
} reg_pio_r_intr;
344
#define REG_RD_ADDR_pio_r_intr 108
345
346
/* Register r_masked_intr, scope pio, type r */
347
typedef struct {
348
unsigned int rdy : 1;
349
unsigned int dummy1 : 31;
350
} reg_pio_r_masked_intr;
351
#define REG_RD_ADDR_pio_r_masked_intr 112
352
353
354
/* Constants */
355
enum {
356
regk_pio_a2 = 0x00000003,
357
regk_pio_no = 0x00000000,
358
regk_pio_normal = 0x00000000,
359
regk_pio_rd = 0x00000001,
360
regk_pio_rw_ce0_cfg_default = 0x00000000,
361
regk_pio_rw_ce1_cfg_default = 0x00000000,
362
regk_pio_rw_ce2_cfg_default = 0x00000000,
363
regk_pio_rw_intr_mask_default = 0x00000000,
364
regk_pio_rw_man_ctrl_default = 0x00000000,
365
regk_pio_rw_oe_default = 0x00000000,
366
regk_pio_wr = 0x00000002,
367
regk_pio_wr_ce2 = 0x00000003,
368
regk_pio_yes = 0x00000001,
369
regk_pio_yes_all = 0x000000ff
370
};
371
#endif /* __pio_defs_h */
372
373