0001
0002 #ifndef _ASM_ARCH_PXA27X_UDC_H
0003 #define _ASM_ARCH_PXA27X_UDC_H
0004
0005 #include "pxa-regs.h"
0006
0007 #ifdef _ASM_ARCH_PXA25X_UDC_H
0008 #error You cannot include both PXA25x and PXA27x UDC support
0009 #endif
0010
0011 #define UDCCR __REG(0x40600000)
0012 #define UDCCR_OEN (1 << 31)
0013 #define UDCCR_AALTHNP (1 << 30)
0014
0015 #define UDCCR_AHNP (1 << 29)
0016
0017 #define UDCCR_BHNP (1 << 28)
0018
0019 #define UDCCR_DWRE (1 << 16)
0020 #define UDCCR_ACN (0x03 << 11)
0021 #define UDCCR_ACN_S 11
0022 #define UDCCR_AIN (0x07 << 8)
0023 #define UDCCR_AIN_S 8
0024 #define UDCCR_AAISN (0x07 << 5)
0025
0026 #define UDCCR_AAISN_S 5
0027 #define UDCCR_SMAC (1 << 4)
0028
0029 #define UDCCR_EMCE (1 << 3)
0030
0031 #define UDCCR_UDR (1 << 2)
0032 #define UDCCR_UDA (1 << 1)
0033 #define UDCCR_UDE (1 << 0)
0034
0035 #define UDCICR0 __REG(0x40600004)
0036 #define UDCICR1 __REG(0x40600008)
0037 #define UDCICR_FIFOERR (1 << 1)
0038 #define UDCICR_PKTCOMPL (1 << 0)
0039
0040 #define UDC_INT_FIFOERROR (0x2)
0041 #define UDC_INT_PACKETCMP (0x1)
0042
0043 #define UDCICR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2))
0044 #define UDCICR1_IECC (1 << 31)
0045 #define UDCICR1_IESOF (1 << 30)
0046 #define UDCICR1_IERU (1 << 29)
0047 #define UDCICR1_IESU (1 << 28)
0048 #define UDCICR1_IERS (1 << 27)
0049
0050 #define UDCISR0 __REG(0x4060000C)
0051 #define UDCISR1 __REG(0x40600010)
0052 #define UDCISR_INT(n,intr) (((intr) & 0x03) << (((n) & 0x0F) * 2))
0053 #define UDCISR1_IRCC (1 << 31)
0054 #define UDCISR1_IRSOF (1 << 30)
0055 #define UDCISR1_IRRU (1 << 29)
0056 #define UDCISR1_IRSU (1 << 28)
0057 #define UDCISR1_IRRS (1 << 27)
0058
0059 #define UDCFNR __REG(0x40600014)
0060 #define UDCOTGICR __REG(0x40600018)
0061 #define UDCOTGICR_IESF (1 << 24)
0062 #define UDCOTGICR_IEXR (1 << 17)
0063
0064 #define UDCOTGICR_IEXF (1 << 16)
0065
0066 #define UDCOTGICR_IEVV40R (1 << 9)
0067
0068 #define UDCOTGICR_IEVV40F (1 << 8)
0069
0070 #define UDCOTGICR_IEVV44R (1 << 7)
0071
0072 #define UDCOTGICR_IEVV44F (1 << 6)
0073
0074 #define UDCOTGICR_IESVR (1 << 5)
0075
0076 #define UDCOTGICR_IESVF (1 << 4)
0077
0078 #define UDCOTGICR_IESDR (1 << 3)
0079
0080 #define UDCOTGICR_IESDF (1 << 2)
0081
0082 #define UDCOTGICR_IEIDR (1 << 1)
0083
0084 #define UDCOTGICR_IEIDF (1 << 0)
0085
0086
0087 #define UP2OCR __REG(0x40600020)
0088 #define UP3OCR __REG(0x40600024)
0089
0090 #define UP2OCR_CPVEN (1 << 0)
0091 #define UP2OCR_CPVPE (1 << 1)
0092 #define UP2OCR_DPPDE (1 << 2)
0093 #define UP2OCR_DMPDE (1 << 3)
0094 #define UP2OCR_DPPUE (1 << 4)
0095 #define UP2OCR_DMPUE (1 << 5)
0096 #define UP2OCR_DPPUBE (1 << 6)
0097 #define UP2OCR_DMPUBE (1 << 7)
0098 #define UP2OCR_EXSP (1 << 8)
0099 #define UP2OCR_EXSUS (1 << 9)
0100 #define UP2OCR_IDON (1 << 10)
0101 #define UP2OCR_HXS (1 << 16)
0102 #define UP2OCR_HXOE (1 << 17)
0103 #define UP2OCR_SEOS(x) ((x & 7) << 24)
0104
0105 #define UDCCSN(x) __REG2(0x40600100, (x) << 2)
0106 #define UDCCSR0 __REG(0x40600100)
0107 #define UDCCSR0_SA (1 << 7)
0108 #define UDCCSR0_RNE (1 << 6)
0109 #define UDCCSR0_FST (1 << 5)
0110 #define UDCCSR0_SST (1 << 4)
0111 #define UDCCSR0_DME (1 << 3)
0112 #define UDCCSR0_FTF (1 << 2)
0113 #define UDCCSR0_IPR (1 << 1)
0114 #define UDCCSR0_OPC (1 << 0)
0115
0116 #define UDCCSRA __REG(0x40600104)
0117 #define UDCCSRB __REG(0x40600108)
0118 #define UDCCSRC __REG(0x4060010C)
0119 #define UDCCSRD __REG(0x40600110)
0120 #define UDCCSRE __REG(0x40600114)
0121 #define UDCCSRF __REG(0x40600118)
0122 #define UDCCSRG __REG(0x4060011C)
0123 #define UDCCSRH __REG(0x40600120)
0124 #define UDCCSRI __REG(0x40600124)
0125 #define UDCCSRJ __REG(0x40600128)
0126 #define UDCCSRK __REG(0x4060012C)
0127 #define UDCCSRL __REG(0x40600130)
0128 #define UDCCSRM __REG(0x40600134)
0129 #define UDCCSRN __REG(0x40600138)
0130 #define UDCCSRP __REG(0x4060013C)
0131 #define UDCCSRQ __REG(0x40600140)
0132 #define UDCCSRR __REG(0x40600144)
0133 #define UDCCSRS __REG(0x40600148)
0134 #define UDCCSRT __REG(0x4060014C)
0135 #define UDCCSRU __REG(0x40600150)
0136 #define UDCCSRV __REG(0x40600154)
0137 #define UDCCSRW __REG(0x40600158)
0138 #define UDCCSRX __REG(0x4060015C)
0139
0140 #define UDCCSR_DPE (1 << 9)
0141 #define UDCCSR_FEF (1 << 8)
0142 #define UDCCSR_SP (1 << 7)
0143 #define UDCCSR_BNE (1 << 6)
0144 #define UDCCSR_BNF (1 << 6)
0145 #define UDCCSR_FST (1 << 5)
0146 #define UDCCSR_SST (1 << 4)
0147 #define UDCCSR_DME (1 << 3)
0148 #define UDCCSR_TRN (1 << 2)
0149 #define UDCCSR_PC (1 << 1)
0150 #define UDCCSR_FS (1 << 0)
0151
0152 #define UDCBCN(x) __REG2(0x40600200, (x)<<2)
0153 #define UDCBCR0 __REG(0x40600200)
0154 #define UDCBCRA __REG(0x40600204)
0155 #define UDCBCRB __REG(0x40600208)
0156 #define UDCBCRC __REG(0x4060020C)
0157 #define UDCBCRD __REG(0x40600210)
0158 #define UDCBCRE __REG(0x40600214)
0159 #define UDCBCRF __REG(0x40600218)
0160 #define UDCBCRG __REG(0x4060021C)
0161 #define UDCBCRH __REG(0x40600220)
0162 #define UDCBCRI __REG(0x40600224)
0163 #define UDCBCRJ __REG(0x40600228)
0164 #define UDCBCRK __REG(0x4060022C)
0165 #define UDCBCRL __REG(0x40600230)
0166 #define UDCBCRM __REG(0x40600234)
0167 #define UDCBCRN __REG(0x40600238)
0168 #define UDCBCRP __REG(0x4060023C)
0169 #define UDCBCRQ __REG(0x40600240)
0170 #define UDCBCRR __REG(0x40600244)
0171 #define UDCBCRS __REG(0x40600248)
0172 #define UDCBCRT __REG(0x4060024C)
0173 #define UDCBCRU __REG(0x40600250)
0174 #define UDCBCRV __REG(0x40600254)
0175 #define UDCBCRW __REG(0x40600258)
0176 #define UDCBCRX __REG(0x4060025C)
0177
0178 #define UDCDN(x) __REG2(0x40600300, (x)<<2)
0179 #define PHYS_UDCDN(x) (0x40600300 + ((x)<<2))
0180 #define PUDCDN(x) (volatile u32 *)(io_p2v(PHYS_UDCDN((x))))
0181 #define UDCDR0 __REG(0x40600300)
0182 #define UDCDRA __REG(0x40600304)
0183 #define UDCDRB __REG(0x40600308)
0184 #define UDCDRC __REG(0x4060030C)
0185 #define UDCDRD __REG(0x40600310)
0186 #define UDCDRE __REG(0x40600314)
0187 #define UDCDRF __REG(0x40600318)
0188 #define UDCDRG __REG(0x4060031C)
0189 #define UDCDRH __REG(0x40600320)
0190 #define UDCDRI __REG(0x40600324)
0191 #define UDCDRJ __REG(0x40600328)
0192 #define UDCDRK __REG(0x4060032C)
0193 #define UDCDRL __REG(0x40600330)
0194 #define UDCDRM __REG(0x40600334)
0195 #define UDCDRN __REG(0x40600338)
0196 #define UDCDRP __REG(0x4060033C)
0197 #define UDCDRQ __REG(0x40600340)
0198 #define UDCDRR __REG(0x40600344)
0199 #define UDCDRS __REG(0x40600348)
0200 #define UDCDRT __REG(0x4060034C)
0201 #define UDCDRU __REG(0x40600350)
0202 #define UDCDRV __REG(0x40600354)
0203 #define UDCDRW __REG(0x40600358)
0204 #define UDCDRX __REG(0x4060035C)
0205
0206 #define UDCCN(x) __REG2(0x40600400, (x)<<2)
0207 #define UDCCRA __REG(0x40600404)
0208 #define UDCCRB __REG(0x40600408)
0209 #define UDCCRC __REG(0x4060040C)
0210 #define UDCCRD __REG(0x40600410)
0211 #define UDCCRE __REG(0x40600414)
0212 #define UDCCRF __REG(0x40600418)
0213 #define UDCCRG __REG(0x4060041C)
0214 #define UDCCRH __REG(0x40600420)
0215 #define UDCCRI __REG(0x40600424)
0216 #define UDCCRJ __REG(0x40600428)
0217 #define UDCCRK __REG(0x4060042C)
0218 #define UDCCRL __REG(0x40600430)
0219 #define UDCCRM __REG(0x40600434)
0220 #define UDCCRN __REG(0x40600438)
0221 #define UDCCRP __REG(0x4060043C)
0222 #define UDCCRQ __REG(0x40600440)
0223 #define UDCCRR __REG(0x40600444)
0224 #define UDCCRS __REG(0x40600448)
0225 #define UDCCRT __REG(0x4060044C)
0226 #define UDCCRU __REG(0x40600450)
0227 #define UDCCRV __REG(0x40600454)
0228 #define UDCCRW __REG(0x40600458)
0229 #define UDCCRX __REG(0x4060045C)
0230
0231 #define UDCCONR_CN (0x03 << 25)
0232 #define UDCCONR_CN_S (25)
0233 #define UDCCONR_IN (0x07 << 22)
0234 #define UDCCONR_IN_S (22)
0235 #define UDCCONR_AISN (0x07 << 19)
0236 #define UDCCONR_AISN_S (19)
0237 #define UDCCONR_EN (0x0f << 15)
0238 #define UDCCONR_EN_S (15)
0239 #define UDCCONR_ET (0x03 << 13)
0240 #define UDCCONR_ET_S (13)
0241 #define UDCCONR_ET_INT (0x03 << 13)
0242 #define UDCCONR_ET_BULK (0x02 << 13)
0243 #define UDCCONR_ET_ISO (0x01 << 13)
0244 #define UDCCONR_ET_NU (0x00 << 13)
0245 #define UDCCONR_ED (1 << 12)
0246 #define UDCCONR_MPS (0x3ff << 2)
0247 #define UDCCONR_MPS_S (2)
0248 #define UDCCONR_DE (1 << 1)
0249 #define UDCCONR_EE (1 << 0)
0250
0251
0252 #define UDC_INT_FIFOERROR (0x2)
0253 #define UDC_INT_PACKETCMP (0x1)
0254
0255 #define UDC_FNR_MASK (0x7ff)
0256
0257 #define UDCCSR_WR_MASK (UDCCSR_DME|UDCCSR_FST)
0258 #define UDC_BCR_MASK (0x3ff)
0259
0260 #endif