This file is indexed.

/usr/include/openwince/arm/pxa2x0/udc.h is in openwince-include 0.3.2-3.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
/*
 * $Id: udc.h,v 1.10 2003/04/26 22:56:35 telka Exp $
 *
 * XScale PXA26x/PXA255/PXA250/PXA210 UDC Registers
 * Copyright (C) 2002, 2003 ETC s.r.o.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the ETC s.r.o. nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Written by Marcel Telka <marcel@telka.sk>, 2002, 2003.
 *
 * Documentation:
 * [1] Intel Corporation, "Intel PXA250 and PXA210 Application Processors
 *     Developer's Manual", February 2002, Order Number: 278522-001
 * [2] Intel Corporation, "Intel PXA26x Processor Family Developer's Manual",
 *     March 2003, Order Number: 278638-002
 * [3] Intel Corporation, "Intel PXA255 Processor Developer's Manual"
 *     March 2003, Order Number: 278693-001
 *
 */

#ifndef	PXA2X0_UDC_H
#define	PXA2X0_UDC_H

#include <common.h>

#if LANGUAGE == C
#include <stdint.h>
#endif

#if defined(PXA2X0_NOPXA250) && !defined(PXA2X0_NOPXA255)
#define PXA2X0_NOPXA255
#endif

#if defined(PXA2X0_NOPXA255) && !defined(PXA2X0_NOPXA260)
#define PXA2X0_NOPXA260
#endif

/* UDC Registers */

#define	UDC_BASE	0x40600000

#if LANGUAGE == C
typedef volatile struct UDC_registers {
	uint32_t udccr;
	uint32_t __reserved1;
#if !defined(PXA2X0_NOPXA255)
	uint32_t udccfr;
#else /* PXA255 and above only */
	uint32_t __reserved2;
#endif
	uint32_t __reserved3;
	uint32_t udccs[16];
	uint32_t uicr0;
	uint32_t uicr1;
	uint32_t usir0;
	uint32_t usir1;
	uint32_t ufnhr;				/* see 12.6.12 in [1] */
	uint32_t ufnlr;				/* see 12.6.13 in [1] */
	uint32_t ubcr2;
	uint32_t ubcr4;
	uint32_t ubcr7;
	uint32_t ubcr9;
	uint32_t ubcr12;
	uint32_t ubcr14;
	uint32_t uddr0;
	uint32_t __reserved4[7];
	uint32_t uddr5;
	uint32_t __reserved5[7];
	uint32_t uddr10;
	uint32_t __reserved6[7];
	uint32_t uddr15;
	uint32_t __reserved7[7];
	uint32_t uddr1;
	uint32_t __reserved8[31];
	uint32_t uddr2;
	uint32_t __reserved9[31];
	uint32_t uddr3;
	uint32_t __reserved10[127];
	uint32_t uddr4;
	uint32_t __reserved11[127];
	uint32_t uddr6;
	uint32_t __reserved12[31];
	uint32_t uddr7;
	uint32_t __reserved13[31];
	uint32_t uddr8;
	uint32_t __reserved14[127];
	uint32_t uddr9;
	uint32_t __reserved15[127];
	uint32_t uddr11;
	uint32_t __reserved16[31];
	uint32_t uddr12;
	uint32_t __reserved17[31];
	uint32_t uddr13;
	uint32_t __reserved18[127];
	uint32_t uddr14;
} UDC_registers_t;

#ifdef PXA2X0_UNMAPPED
#define	UDC_pointer	((UDC_registers_t*) UDC_BASE)
#endif

#define	UDCCR			UDC_pointer->udccr
#if !defined(PXA2X0_NOPXA255)
#define	UDCCFR			UDC_pointer->udccfr
#endif /* PXA255 and above only */
#define	UDCCS(i)		UDC_pointer->udccs[i]
#define	UDCCS0			UDCCS(0)
#define	UDCCS1			UDCCS(1)
#define	UDCCS2			UDCCS(2)
#define	UDCCS3			UDCCS(3)
#define	UDCCS4			UDCCS(4)
#define	UDCCS5			UDCCS(5)
#define	UDCCS6			UDCCS(6)
#define	UDCCS7			UDCCS(7)
#define	UDCCS8			UDCCS(8)
#define	UDCCS9			UDCCS(9)
#define	UDCCS10			UDCCS(10)
#define	UDCCS11			UDCCS(11)
#define	UDCCS12			UDCCS(12)
#define	UDCCS13			UDCCS(13)
#define	UDCCS14			UDCCS(14)
#define	UDCCS15			UDCCS(15)
#define	UFNHR			UDC_pointer->ufnhr
#define	UFNLR			UDC_pointer->ufnlr
#define	UBCR2			UDC_pointer->ubcr2
#define	UBCR4			UDC_pointer->ubcr4
#define	UBCR7			UDC_pointer->ubcr7
#define	UBCR9			UDC_pointer->ubcr9
#define	UBCR12			UDC_pointer->ubcr12
#define	UBCR14			UDC_pointer->ubcr14
#define	UDDR0			UDC_pointer->uddr0
#define	UDDR1			UDC_pointer->uddr1
#define	UDDR2			UDC_pointer->uddr2
#define	UDDR3			UDC_pointer->uddr3
#define	UDDR4			UDC_pointer->uddr4
#define	UDDR5			UDC_pointer->uddr5
#define	UDDR6			UDC_pointer->uddr6
#define	UDDR7			UDC_pointer->uddr7
#define	UDDR8			UDC_pointer->uddr8
#define	UDDR9			UDC_pointer->uddr9
#define	UDDR10			UDC_pointer->uddr10
#define	UDDR11			UDC_pointer->uddr11
#define	UDDR12			UDC_pointer->uddr12
#define	UDDR13			UDC_pointer->uddr13
#define	UDDR14			UDC_pointer->uddr14
#define	UDDR15			UDC_pointer->uddr15
#define	UICR0			UDC_pointer->uicr0
#define	UICR1			UDC_pointer->uicr1
#define	USIR0			UDC_pointer->usir0
#define	USIR1			UDC_pointer->usir1
#endif /* LANGUAGE == C */

#define	UDCCR_OFFSET		0x000
#if !defined(PXA2X0_NOPXA255)
#define	UDCCFR_OFFSET		0x008
#endif /* PXA255 and above only */
#define	UDCCS_OFFSET(i)		(0x010 + ((i) << 2))
#define	UDCCS0_OFFSET		UDCCS_OFFSET(0)
#define	UDCCS1_OFFSET		UDCCS_OFFSET(1)
#define	UDCCS2_OFFSET		UDCCS_OFFSET(2)
#define	UDCCS3_OFFSET		UDCCS_OFFSET(3)
#define	UDCCS4_OFFSET		UDCCS_OFFSET(4)
#define	UDCCS5_OFFSET		UDCCS_OFFSET(5)
#define	UDCCS6_OFFSET		UDCCS_OFFSET(6)
#define	UDCCS7_OFFSET		UDCCS_OFFSET(7)
#define	UDCCS8_OFFSET		UDCCS_OFFSET(8)
#define	UDCCS9_OFFSET		UDCCS_OFFSET(9)
#define	UDCCS10_OFFSET		UDCCS_OFFSET(10)
#define	UDCCS11_OFFSET		UDCCS_OFFSET(11)
#define	UDCCS12_OFFSET		UDCCS_OFFSET(12)
#define	UDCCS13_OFFSET		UDCCS_OFFSET(13)
#define	UDCCS14_OFFSET		UDCCS_OFFSET(14)
#define	UDCCS15_OFFSET		UDCCS_OFFSET(15)
#define	UFNHR_OFFSET		0x060
#define	UFNLR_OFFSET		0x064
#define	UBCR2_OFFSET		0x068
#define	UBCR4_OFFSET		0x06C
#define	UBCR7_OFFSET		0x070
#define	UBCR9_OFFSET		0x074
#define	UBCR12_OFFSET		0x078
#define	UBCR14_OFFSET		0x07C
#define	UDDR0_OFFSET		0x080
#define	UDDR1_OFFSET		0x100
#define	UDDR2_OFFSET		0x180
#define	UDDR3_OFFSET		0x200
#define	UDDR4_OFFSET		0x400
#define	UDDR5_OFFSET		0x0A0
#define	UDDR6_OFFSET		0x600
#define	UDDR7_OFFSET		0x680
#define	UDDR8_OFFSET		0x700
#define	UDDR9_OFFSET		0x900
#define	UDDR10_OFFSET		0x0C0
#define	UDDR11_OFFSET		0xB00
#define	UDDR12_OFFSET		0xB80
#define	UDDR13_OFFSET		0xC00
#define	UDDR14_OFFSET		0xE00
#define	UDDR15_OFFSET		0x0E0
#define	UICR0_OFFSET		0x050
#define	UICR1_OFFSET		0x054
#define	USIR0_OFFSET		0x058
#define	USIR1_OFFSET		0x05C

/* UDCCR bits - see Table 12-20 in [1], Table 12-12 in [2], Table 12-12 in [3] */

#define	UDCCR_REM		bit(7)
#define	UDCCR_RSTIR		bit(6)
#define	UDCCR_SRM		bit(5)
#define	UDCCR_SUSIR		bit(4)
#define	UDCCR_RESIR		bit(3)
#define	UDCCR_RSM		bit(2)
#define	UDCCR_UDA		bit(1)
#define	UDCCR_UDE		bit(0)

#if !defined(PXA2X0_NOPXA255)
/* UDCCFR bits - see Table 12-13 in [3] */
#define	UDCCFR_AREN		bit(7)
#define	UDCCFR_ACM		bit(2)
#endif /* PXA255 and above only */

/* UDCCS0 bits - see Table 12-21 in [1], Table 12-13 in [2], Table 12-14 in [3] */

#define	UDCCS0_SA		bit(7)
#define	UDCCS0_RNE		bit(6)
#define	UDCCS0_FST		bit(5)
#define	UDCCS0_SST		bit(4)
#define	UDCCS0_DRWF		bit(3)
#define	UDCCS0_FTF		bit(2)
#define	UDCCS0_IPR		bit(1)
#define	UDCCS0_OPR		bit(0)

/* UDCCS1 bits - see Table 12-22 in [1], Table 12-14 in [2], Table 12-15 in [3] */

#define	UDCCS1_TSP		bit(7)
#define	UDCCS1_FST		bit(5)
#define	UDCCS1_SST		bit(4)
#define	UDCCS1_TUR		bit(3)
#define	UDCCS1_FTF		bit(2)
#define	UDCCS1_TPC		bit(1)
#define	UDCCS1_TFS		bit(0)

/* UDCCS2 bits - see Table 12-23 in [1], Table 12-15 in [2], Table 12-16 in [3] */

#define	UDCCS2_RSP		bit(7)
#define	UDCCS2_RNE		bit(6)
#define	UDCCS2_FST		bit(5)
#define	UDCCS2_SST		bit(4)
#define	UDCCS2_DME		bit(3)
#define	UDCCS2_RPC		bit(1)
#define	UDCCS2_RFS		bit(0)

/* UDCCS3 bits - see Table 12-24 in [1], Table 12-16 in [2], Table 12-17 in [3] */

#define	UDCCS3_TSP		bit(7)
#define	UDCCS3_TUR		bit(3)
#define	UDCCS3_FTF		bit(2)
#define	UDCCS3_TPC		bit(1)
#define	UDCCS3_TFS		bit(0)

/* UDCCS4 bits - see Table 12-25 in [1], Table 12-17 in [2], Table 12-18 in [3] */

#define	UDCCS4_RSP		bit(7)
#define	UDCCS4_RNE		bit(6)
#define	UDCCS4_DME		bit(3)
#define	UDCCS4_ROF		bit(2)
#define	UDCCS4_RPC		bit(1)
#define	UDCCS4_RFS		bit(0)

/* UDCCS5 bits - see Table 12-26 in [1], Table 12-18 in [2], Table 12-19 in [3] */

#define	UDCCS5_TSP		bit(7)
#define	UDCCS5_FST		bit(5)
#define	UDCCS5_SST		bit(4)
#define	UDCCS5_TUR		bit(3)
#define	UDCCS5_FTF		bit(2)
#define	UDCCS5_TPC		bit(1)
#define	UDCCS5_TFS		bit(0)

/* UDCCS6 bits - see Table 12-22 in [1], Table 12-14 in [2], Table 12-15 in [3] */

#define	UDCCS6_TSP		bit(7)
#define	UDCCS6_FST		bit(5)
#define	UDCCS6_SST		bit(4)
#define	UDCCS6_TUR		bit(3)
#define	UDCCS6_FTF		bit(2)
#define	UDCCS6_TPC		bit(1)
#define	UDCCS6_TFS		bit(0)

/* UDCCS7 bits - see Table 12-23 in [1], Table 12-15 in [2], Table 12-16 in [3] */

#define	UDCCS7_RSP		bit(7)
#define	UDCCS7_RNE		bit(6)
#define	UDCCS7_FST		bit(5)
#define	UDCCS7_SST		bit(4)
#define	UDCCS7_DME		bit(3)
#define	UDCCS7_RPC		bit(1)
#define	UDCCS7_RFS		bit(0)

/* UDCCS8 bits - see Table 12-24 in [1], Table 12-16 in [2], Table 12-17 in [3] */

#define	UDCCS8_TSP		bit(7)
#define	UDCCS8_TUR		bit(3)
#define	UDCCS8_FTF		bit(2)
#define	UDCCS8_TPC		bit(1)
#define	UDCCS8_TFS		bit(0)

/* UDCCS9 bits - see Table 12-25 in [1], Table 12-17 in [2], Table 12-18 in [3] */

#define	UDCCS9_RSP		bit(7)
#define	UDCCS9_RNE		bit(6)
#define	UDCCS9_DME		bit(3)
#define	UDCCS9_ROF		bit(2)
#define	UDCCS9_RPC		bit(1)
#define	UDCCS9_RFS		bit(0)

/* UDCCS10 bits - see Table 12-26 in [1], Table 12-18 in [2], Table 12-19 in [3] */

#define	UDCCS10_TSP		bit(7)
#define	UDCCS10_FST		bit(5)
#define	UDCCS10_SST		bit(4)
#define	UDCCS10_TUR		bit(3)
#define	UDCCS10_FTF		bit(2)
#define	UDCCS10_TPC		bit(1)
#define	UDCCS10_TFS		bit(0)

/* UDCCS11 bits - see Table 12-22 in [1], Table 12-14 in [2], Table 12-15 in [3] */

#define	UDCCS11_TSP		bit(7)
#define	UDCCS11_FST		bit(5)
#define	UDCCS11_SST		bit(4)
#define	UDCCS11_TUR		bit(3)
#define	UDCCS11_FTF		bit(2)
#define	UDCCS11_TPC		bit(1)
#define	UDCCS11_TFS		bit(0)

/* UDCCS12 bits - see Table 12-23 in [1], Table 12-15 in [2], Table 12-16 in [3] */

#define	UDCCS12_RSP		bit(7)
#define	UDCCS12_RNE		bit(6)
#define	UDCCS12_FST		bit(5)
#define	UDCCS12_SST		bit(4)
#define	UDCCS12_DME		bit(3)
#define	UDCCS12_RPC		bit(1)
#define	UDCCS12_RFS		bit(0)

/* UDCCS13 bits - see Table 12-24 in [1], Table 12-16 in [2], Table 12-17 in [3] */

#define	UDCCS13_TSP		bit(7)
#define	UDCCS13_TUR		bit(3)
#define	UDCCS13_FTF		bit(2)
#define	UDCCS13_TPC		bit(1)
#define	UDCCS13_TFS		bit(0)

/* UDCCS14 bits - see Table 12-25 in [1], Table 12-17 in [2], Table 12-18 in [3] */

#define	UDCCS14_RSP		bit(7)
#define	UDCCS14_RNE		bit(6)
#define	UDCCS14_DME		bit(3)
#define	UDCCS14_ROF		bit(2)
#define	UDCCS14_RPC		bit(1)
#define	UDCCS14_RFS		bit(0)

/* UDCCS15 bits - see Table 12-26 in [1], Table 12-18 in [2], Table 12-19 in [3] */

#define	UDCCS15_TSP		bit(7)
#define	UDCCS15_FST		bit(5)
#define	UDCCS15_SST		bit(4)
#define	UDCCS15_TUR		bit(3)
#define	UDCCS15_FTF		bit(2)
#define	UDCCS15_TPC		bit(1)
#define	UDCCS15_TFS		bit(0)

/* UICR0 bits - see Table 12-27 in [1], Table 12-19 in [2], Table 12-20 in [3] */

#define	UICR0_IM7		bit(7)
#define	UICR0_IM6		bit(6)
#define	UICR0_IM5		bit(5)
#define	UICR0_IM4		bit(4)
#define	UICR0_IM3		bit(3)
#define	UICR0_IM2		bit(2)
#define	UICR0_IM1		bit(1)
#define	UICR0_IM0		bit(0)

/* UICR1 bits - see Table 12-28 in [1], Table 12-20 in [2], Table 12-21 in [3] */

#define	UICR1_IM15		bit(7)
#define	UICR1_IM14		bit(6)
#define	UICR1_IM13		bit(5)
#define	UICR1_IM12		bit(4)
#define	UICR1_IM11		bit(3)
#define	UICR1_IM10		bit(2)
#define	UICR1_IM9		bit(1)
#define	UICR1_IM8		bit(0)

/* USIR0 bits - see Table 12-29 in [1], Table 12-21 in [2], Table 12-22 in [3] */

#define	USIR0_IR7		bit(7)
#define	USIR0_IR6		bit(6)
#define	USIR0_IR5		bit(5)
#define	USIR0_IR4		bit(4)
#define	USIR0_IR3		bit(3)
#define	USIR0_IR2		bit(2)
#define	USIR0_IR1		bit(1)
#define	USIR0_IR0		bit(0)

/* USIR1 bits - see Table 12-30 in [1], Table 12-22 in [2], Table 12-23 in [3] */

#define	USIR1_IR15		bit(7)
#define	USIR1_IR14		bit(6)
#define	USIR1_IR13		bit(5)
#define	USIR1_IR12		bit(4)
#define	USIR1_IR11		bit(3)
#define	USIR1_IR10		bit(2)
#define	USIR1_IR9		bit(1)
#define	USIR1_IR8		bit(0)

/* UFNHR bits - see Table 12-31 in [1], Table 12-23 in [2], Table 12-24 in [3] */

#define	UFNHR_SIR		bit(7)
#define	UFNHR_SIM		bit(6)
#define	UFNHR_IPE14		bit(5)
#define	UFNHR_IPE9		bit(4)
#define	UFNHR_IPE4		bit(3)
#define	UFNHR_FNMSB_MASK	bits(2,0)
#define	UFNHR_FNMSB(x)		bits_val(2,0,x)
#define	get_UFNHR_FNMSB(x)	bits_get(2,0,x)

/* UFNLR bits - see Table 12-32 in [1], Table 12-24 in [2], Table 12-25 in [3] */

#define	UNFLR_FNLSB_MASK	bits(7,0)
#define	UFNLR_FNLSB(x)		bits_val(7,0,x)
#define	get_UFNLR_FNLSB(x)	bits_get(7,0,x)

/* UBCRx bits - see Table 12-33 in [1], Table 12-25 in [2], Table 12-26 in [3] */

#define	UBCR_BC_MASK		bits(7,0)
#define	UBCR_BC(x)		bits_val(7,0,x)
#define	get_UBCR_BC(x)		bits_get(7,0,x)

/* UDDRx bits - see 12.6.15 - 12.6.20 in [1], 12.6.15 - 12.6.20 in [2], 12.6.16 - 12.6.21 in [3] */

#define	UDDR_DATA_MASK		bits(7,0)
#define	UDDR_DATA(x)		bits_val(7,0,x)
#define	get_UDDR_DATA(x)	bits_get(7,0,x)

#endif /* PXA2X0_UDC_H */