1#ifndef _ASM_ARCH_PXA27X_UDC_H
2#define _ASM_ARCH_PXA27X_UDC_H
3
4#ifdef _ASM_ARCH_PXA25X_UDC_H
5#error You cannot include both PXA25x and PXA27x UDC support
6#endif
7
8#define UDCCR __REG(0x40600000)
9#define UDCCR_OEN (1 << 31)
10#define UDCCR_AALTHNP (1 << 30)
11
12#define UDCCR_AHNP (1 << 29)
13
14#define UDCCR_BHNP (1 << 28)
15
16#define UDCCR_DWRE (1 << 16)
17#define UDCCR_ACN (0x03 << 11)
18#define UDCCR_ACN_S 11
19#define UDCCR_AIN (0x07 << 8)
20#define UDCCR_AIN_S 8
21#define UDCCR_AAISN (0x07 << 5)
22
23#define UDCCR_AAISN_S 5
24#define UDCCR_SMAC (1 << 4)
25
26#define UDCCR_EMCE (1 << 3)
27
28#define UDCCR_UDR (1 << 2)
29#define UDCCR_UDA (1 << 1)
30#define UDCCR_UDE (1 << 0)
31
32#define UDCICR0 __REG(0x40600004)
33#define UDCICR1 __REG(0x40600008)
34#define UDCICR_FIFOERR (1 << 1)
35#define UDCICR_PKTCOMPL (1 << 0)
36
37#define UDC_INT_FIFOERROR (0x2)
38#define UDC_INT_PACKETCMP (0x1)
39
40#define UDCICR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2))
41#define UDCICR1_IECC (1 << 31)
42#define UDCICR1_IESOF (1 << 30)
43#define UDCICR1_IERU (1 << 29)
44#define UDCICR1_IESU (1 << 28)
45#define UDCICR1_IERS (1 << 27)
46
47#define UDCISR0 __REG(0x4060000C)
48#define UDCISR1 __REG(0x40600010)
49#define UDCISR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2))
50#define UDCISR1_IRCC (1 << 31)
51#define UDCISR1_IRSOF (1 << 30)
52#define UDCISR1_IRRU (1 << 29)
53#define UDCISR1_IRSU (1 << 28)
54#define UDCISR1_IRRS (1 << 27)
55
56#define UDCFNR __REG(0x40600014)
57#define UDCOTGICR __REG(0x40600018)
58#define UDCOTGICR_IESF (1 << 24)
59#define UDCOTGICR_IEXR (1 << 17)
60
61#define UDCOTGICR_IEXF (1 << 16)
62
63#define UDCOTGICR_IEVV40R (1 << 9)
64
65#define UDCOTGICR_IEVV40F (1 << 8)
66
67#define UDCOTGICR_IEVV44R (1 << 7)
68
69#define UDCOTGICR_IEVV44F (1 << 6)
70
71#define UDCOTGICR_IESVR (1 << 5)
72
73#define UDCOTGICR_IESVF (1 << 4)
74
75#define UDCOTGICR_IESDR (1 << 3)
76
77#define UDCOTGICR_IESDF (1 << 2)
78
79#define UDCOTGICR_IEIDR (1 << 1)
80
81#define UDCOTGICR_IEIDF (1 << 0)
82
83
84#define UP2OCR __REG(0x40600020)
85#define UP3OCR __REG(0x40600024)
86
87#define UP2OCR_CPVEN (1 << 0)
88#define UP2OCR_CPVPE (1 << 1)
89#define UP2OCR_DPPDE (1 << 2)
90#define UP2OCR_DMPDE (1 << 3)
91#define UP2OCR_DPPUE (1 << 4)
92#define UP2OCR_DMPUE (1 << 5)
93#define UP2OCR_DPPUBE (1 << 6)
94#define UP2OCR_DMPUBE (1 << 7)
95#define UP2OCR_EXSP (1 << 8)
96#define UP2OCR_EXSUS (1 << 9)
97#define UP2OCR_IDON (1 << 10)
98#define UP2OCR_HXS (1 << 16)
99#define UP2OCR_HXOE (1 << 17)
100#define UP2OCR_SEOS(x) ((x & 7) << 24)
101
102#define UDCCSN(x) __REG2(0x40600100, (x) << 2)
103#define UDCCSR0 __REG(0x40600100)
104#define UDCCSR0_SA (1 << 7)
105#define UDCCSR0_RNE (1 << 6)
106#define UDCCSR0_FST (1 << 5)
107#define UDCCSR0_SST (1 << 4)
108#define UDCCSR0_DME (1 << 3)
109#define UDCCSR0_FTF (1 << 2)
110#define UDCCSR0_IPR (1 << 1)
111#define UDCCSR0_OPC (1 << 0)
112
113#define UDCCSRA __REG(0x40600104)
114#define UDCCSRB __REG(0x40600108)
115#define UDCCSRC __REG(0x4060010C)
116#define UDCCSRD __REG(0x40600110)
117#define UDCCSRE __REG(0x40600114)
118#define UDCCSRF __REG(0x40600118)
119#define UDCCSRG __REG(0x4060011C)
120#define UDCCSRH __REG(0x40600120)
121#define UDCCSRI __REG(0x40600124)
122#define UDCCSRJ __REG(0x40600128)
123#define UDCCSRK __REG(0x4060012C)
124#define UDCCSRL __REG(0x40600130)
125#define UDCCSRM __REG(0x40600134)
126#define UDCCSRN __REG(0x40600138)
127#define UDCCSRP __REG(0x4060013C)
128#define UDCCSRQ __REG(0x40600140)
129#define UDCCSRR __REG(0x40600144)
130#define UDCCSRS __REG(0x40600148)
131#define UDCCSRT __REG(0x4060014C)
132#define UDCCSRU __REG(0x40600150)
133#define UDCCSRV __REG(0x40600154)
134#define UDCCSRW __REG(0x40600158)
135#define UDCCSRX __REG(0x4060015C)
136
137#define UDCCSR_DPE (1 << 9)
138#define UDCCSR_FEF (1 << 8)
139#define UDCCSR_SP (1 << 7)
140#define UDCCSR_BNE (1 << 6)
141#define UDCCSR_BNF (1 << 6)
142#define UDCCSR_FST (1 << 5)
143#define UDCCSR_SST (1 << 4)
144#define UDCCSR_DME (1 << 3)
145#define UDCCSR_TRN (1 << 2)
146#define UDCCSR_PC (1 << 1)
147#define UDCCSR_FS (1 << 0)
148
149#define UDCBCN(x) __REG2(0x40600200, (x)<<2)
150#define UDCBCR0 __REG(0x40600200)
151#define UDCBCRA __REG(0x40600204)
152#define UDCBCRB __REG(0x40600208)
153#define UDCBCRC __REG(0x4060020C)
154#define UDCBCRD __REG(0x40600210)
155#define UDCBCRE __REG(0x40600214)
156#define UDCBCRF __REG(0x40600218)
157#define UDCBCRG __REG(0x4060021C)
158#define UDCBCRH __REG(0x40600220)
159#define UDCBCRI __REG(0x40600224)
160#define UDCBCRJ __REG(0x40600228)
161#define UDCBCRK __REG(0x4060022C)
162#define UDCBCRL __REG(0x40600230)
163#define UDCBCRM __REG(0x40600234)
164#define UDCBCRN __REG(0x40600238)
165#define UDCBCRP __REG(0x4060023C)
166#define UDCBCRQ __REG(0x40600240)
167#define UDCBCRR __REG(0x40600244)
168#define UDCBCRS __REG(0x40600248)
169#define UDCBCRT __REG(0x4060024C)
170#define UDCBCRU __REG(0x40600250)
171#define UDCBCRV __REG(0x40600254)
172#define UDCBCRW __REG(0x40600258)
173#define UDCBCRX __REG(0x4060025C)
174
175#define UDCDN(x) __REG2(0x40600300, (x)<<2)
176#define PHYS_UDCDN(x) (0x40600300 + ((x)<<2))
177#define PUDCDN(x) (volatile u32 *)(io_p2v(PHYS_UDCDN((x))))
178#define UDCDR0 __REG(0x40600300)
179#define UDCDRA __REG(0x40600304)
180#define UDCDRB __REG(0x40600308)
181#define UDCDRC __REG(0x4060030C)
182#define UDCDRD __REG(0x40600310)
183#define UDCDRE __REG(0x40600314)
184#define UDCDRF __REG(0x40600318)
185#define UDCDRG __REG(0x4060031C)
186#define UDCDRH __REG(0x40600320)
187#define UDCDRI __REG(0x40600324)
188#define UDCDRJ __REG(0x40600328)
189#define UDCDRK __REG(0x4060032C)
190#define UDCDRL __REG(0x40600330)
191#define UDCDRM __REG(0x40600334)
192#define UDCDRN __REG(0x40600338)
193#define UDCDRP __REG(0x4060033C)
194#define UDCDRQ __REG(0x40600340)
195#define UDCDRR __REG(0x40600344)
196#define UDCDRS __REG(0x40600348)
197#define UDCDRT __REG(0x4060034C)
198#define UDCDRU __REG(0x40600350)
199#define UDCDRV __REG(0x40600354)
200#define UDCDRW __REG(0x40600358)
201#define UDCDRX __REG(0x4060035C)
202
203#define UDCCN(x) __REG2(0x40600400, (x)<<2)
204#define UDCCRA __REG(0x40600404)
205#define UDCCRB __REG(0x40600408)
206#define UDCCRC __REG(0x4060040C)
207#define UDCCRD __REG(0x40600410)
208#define UDCCRE __REG(0x40600414)
209#define UDCCRF __REG(0x40600418)
210#define UDCCRG __REG(0x4060041C)
211#define UDCCRH __REG(0x40600420)
212#define UDCCRI __REG(0x40600424)
213#define UDCCRJ __REG(0x40600428)
214#define UDCCRK __REG(0x4060042C)
215#define UDCCRL __REG(0x40600430)
216#define UDCCRM __REG(0x40600434)
217#define UDCCRN __REG(0x40600438)
218#define UDCCRP __REG(0x4060043C)
219#define UDCCRQ __REG(0x40600440)
220#define UDCCRR __REG(0x40600444)
221#define UDCCRS __REG(0x40600448)
222#define UDCCRT __REG(0x4060044C)
223#define UDCCRU __REG(0x40600450)
224#define UDCCRV __REG(0x40600454)
225#define UDCCRW __REG(0x40600458)
226#define UDCCRX __REG(0x4060045C)
227
228#define UDCCONR_CN (0x03 << 25)
229#define UDCCONR_CN_S (25)
230#define UDCCONR_IN (0x07 << 22)
231#define UDCCONR_IN_S (22)
232#define UDCCONR_AISN (0x07 << 19)
233#define UDCCONR_AISN_S (19)
234#define UDCCONR_EN (0x0f << 15)
235#define UDCCONR_EN_S (15)
236#define UDCCONR_ET (0x03 << 13)
237#define UDCCONR_ET_S (13)
238#define UDCCONR_ET_INT (0x03 << 13)
239#define UDCCONR_ET_BULK (0x02 << 13)
240#define UDCCONR_ET_ISO (0x01 << 13)
241#define UDCCONR_ET_NU (0x00 << 13)
242#define UDCCONR_ED (1 << 12)
243#define UDCCONR_MPS (0x3ff << 2)
244#define UDCCONR_MPS_S (2)
245#define UDCCONR_DE (1 << 1)
246#define UDCCONR_EE (1 << 0)
247
248
249#define UDC_INT_FIFOERROR (0x2)
250#define UDC_INT_PACKETCMP (0x1)
251
252#define UDC_FNR_MASK (0x7ff)
253
254#define UDCCSR_WR_MASK (UDCCSR_DME|UDCCSR_FST)
255#define UDC_BCR_MASK (0x3ff)
256
257#endif
258