0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _ISP176x_REGS_H_
0016 #define _ISP176x_REGS_H_
0017
0018
0019
0020
0021
0022
0023
0024 #define ISP176x_HC_VERSION 0x002
0025 #define ISP176x_HC_HCSPARAMS 0x004
0026 #define ISP176x_HC_HCCPARAMS 0x008
0027
0028
0029 #define ISP176x_HC_USBCMD 0x020
0030 #define ISP176x_HC_USBSTS 0x024
0031 #define ISP176x_HC_FRINDEX 0x02c
0032
0033 #define ISP176x_HC_CONFIGFLAG 0x060
0034 #define ISP176x_HC_PORTSC1 0x064
0035
0036 #define ISP176x_HC_ISO_PTD_DONEMAP 0x130
0037 #define ISP176x_HC_ISO_PTD_SKIPMAP 0x134
0038 #define ISP176x_HC_ISO_PTD_LASTPTD 0x138
0039 #define ISP176x_HC_INT_PTD_DONEMAP 0x140
0040 #define ISP176x_HC_INT_PTD_SKIPMAP 0x144
0041 #define ISP176x_HC_INT_PTD_LASTPTD 0x148
0042 #define ISP176x_HC_ATL_PTD_DONEMAP 0x150
0043 #define ISP176x_HC_ATL_PTD_SKIPMAP 0x154
0044 #define ISP176x_HC_ATL_PTD_LASTPTD 0x158
0045
0046
0047 #define ISP176x_HC_HW_MODE_CTRL 0x300
0048 #define ISP176x_HC_CHIP_ID 0x304
0049 #define ISP176x_HC_SCRATCH 0x308
0050 #define ISP176x_HC_RESET 0x30c
0051 #define ISP176x_HC_BUFFER_STATUS 0x334
0052 #define ISP176x_HC_MEMORY 0x33c
0053
0054
0055 #define ISP176x_HC_INTERRUPT 0x310
0056 #define ISP176x_HC_INTERRUPT_ENABLE 0x314
0057 #define ISP176x_HC_ISO_IRQ_MASK_OR 0x318
0058 #define ISP176x_HC_INT_IRQ_MASK_OR 0x31c
0059 #define ISP176x_HC_ATL_IRQ_MASK_OR 0x320
0060 #define ISP176x_HC_ISO_IRQ_MASK_AND 0x324
0061 #define ISP176x_HC_INT_IRQ_MASK_AND 0x328
0062 #define ISP176x_HC_ATL_IRQ_MASK_AND 0x32c
0063
0064 #define ISP176x_HC_OTG_CTRL 0x374
0065 #define ISP176x_HC_OTG_CTRL_SET 0x374
0066 #define ISP176x_HC_OTG_CTRL_CLEAR 0x376
0067
0068 enum isp176x_host_controller_fields {
0069
0070 PORT_OWNER, PORT_POWER, PORT_LSTATUS, PORT_RESET, PORT_SUSPEND,
0071 PORT_RESUME, PORT_PE, PORT_CSC, PORT_CONNECT,
0072
0073 HCS_PPC, HCS_N_PORTS,
0074
0075 HCC_ISOC_CACHE, HCC_ISOC_THRES,
0076
0077 CMD_LRESET, CMD_RESET, CMD_RUN,
0078
0079 STS_PCD,
0080
0081 HC_FRINDEX,
0082
0083 FLAG_CF,
0084
0085 HC_ISO_PTD_DONEMAP, HC_ISO_PTD_SKIPMAP, HC_ISO_PTD_LASTPTD,
0086 HC_INT_PTD_DONEMAP, HC_INT_PTD_SKIPMAP, HC_INT_PTD_LASTPTD,
0087 HC_ATL_PTD_DONEMAP, HC_ATL_PTD_SKIPMAP, HC_ATL_PTD_LASTPTD,
0088
0089 ALL_ATX_RESET, HW_ANA_DIGI_OC, HW_DEV_DMA, HW_COMN_IRQ, HW_COMN_DMA,
0090 HW_DATA_BUS_WIDTH, HW_DACK_POL_HIGH, HW_DREQ_POL_HIGH, HW_INTR_HIGH_ACT,
0091 HW_INTF_LOCK, HW_INTR_EDGE_TRIG, HW_GLOBAL_INTR_EN,
0092
0093 HC_CHIP_ID_HIGH, HC_CHIP_ID_LOW, HC_CHIP_REV,
0094
0095 HC_SCRATCH,
0096
0097 SW_RESET_RESET_ATX, SW_RESET_RESET_HC, SW_RESET_RESET_ALL,
0098
0099 ISO_BUF_FILL, INT_BUF_FILL, ATL_BUF_FILL,
0100
0101 MEM_BANK_SEL, MEM_START_ADDR,
0102
0103 HC_DATA,
0104
0105 HC_INTERRUPT,
0106
0107 HC_INT_IRQ_ENABLE, HC_ATL_IRQ_ENABLE,
0108
0109 HC_ISO_IRQ_MASK_OR, HC_INT_IRQ_MASK_OR, HC_ATL_IRQ_MASK_OR,
0110 HC_ISO_IRQ_MASK_AND, HC_INT_IRQ_MASK_AND, HC_ATL_IRQ_MASK_AND,
0111
0112 HW_OTG_DISABLE, HW_SW_SEL_HC_DC, HW_VBUS_DRV, HW_SEL_CP_EXT,
0113 HW_DM_PULLDOWN, HW_DP_PULLDOWN, HW_DP_PULLUP, HW_HC_2_DIS,
0114
0115 HW_OTG_DISABLE_CLEAR, HW_SW_SEL_HC_DC_CLEAR, HW_VBUS_DRV_CLEAR,
0116 HW_SEL_CP_EXT_CLEAR, HW_DM_PULLDOWN_CLEAR, HW_DP_PULLDOWN_CLEAR,
0117 HW_DP_PULLUP_CLEAR, HW_HC_2_DIS_CLEAR,
0118
0119 HC_FIELD_MAX,
0120 };
0121
0122
0123
0124 #define ISP1763_HC_USBCMD 0x8c
0125 #define ISP1763_HC_USBSTS 0x90
0126 #define ISP1763_HC_FRINDEX 0x98
0127
0128 #define ISP1763_HC_CONFIGFLAG 0x9c
0129 #define ISP1763_HC_PORTSC1 0xa0
0130
0131 #define ISP1763_HC_ISO_PTD_DONEMAP 0xa4
0132 #define ISP1763_HC_ISO_PTD_SKIPMAP 0xa6
0133 #define ISP1763_HC_ISO_PTD_LASTPTD 0xa8
0134 #define ISP1763_HC_INT_PTD_DONEMAP 0xaa
0135 #define ISP1763_HC_INT_PTD_SKIPMAP 0xac
0136 #define ISP1763_HC_INT_PTD_LASTPTD 0xae
0137 #define ISP1763_HC_ATL_PTD_DONEMAP 0xb0
0138 #define ISP1763_HC_ATL_PTD_SKIPMAP 0xb2
0139 #define ISP1763_HC_ATL_PTD_LASTPTD 0xb4
0140
0141
0142 #define ISP1763_HC_HW_MODE_CTRL 0xb6
0143 #define ISP1763_HC_CHIP_REV 0x70
0144 #define ISP1763_HC_CHIP_ID 0x72
0145 #define ISP1763_HC_SCRATCH 0x78
0146 #define ISP1763_HC_RESET 0xb8
0147 #define ISP1763_HC_BUFFER_STATUS 0xba
0148 #define ISP1763_HC_MEMORY 0xc4
0149 #define ISP1763_HC_DATA 0xc6
0150
0151
0152 #define ISP1763_HC_INTERRUPT 0xd4
0153 #define ISP1763_HC_INTERRUPT_ENABLE 0xd6
0154 #define ISP1763_HC_ISO_IRQ_MASK_OR 0xd8
0155 #define ISP1763_HC_INT_IRQ_MASK_OR 0xda
0156 #define ISP1763_HC_ATL_IRQ_MASK_OR 0xdc
0157 #define ISP1763_HC_ISO_IRQ_MASK_AND 0xde
0158 #define ISP1763_HC_INT_IRQ_MASK_AND 0xe0
0159 #define ISP1763_HC_ATL_IRQ_MASK_AND 0xe2
0160
0161 #define ISP1763_HC_OTG_CTRL_SET 0xe4
0162 #define ISP1763_HC_OTG_CTRL_CLEAR 0xe6
0163
0164
0165
0166
0167
0168 #define DC_IEPTX(n) (1 << (11 + 2 * (n)))
0169 #define DC_IEPRX(n) (1 << (10 + 2 * (n)))
0170 #define DC_IEPRXTX(n) (3 << (10 + 2 * (n)))
0171
0172 #define ISP176x_DC_CDBGMOD_ACK BIT(6)
0173 #define ISP176x_DC_DDBGMODIN_ACK BIT(4)
0174 #define ISP176x_DC_DDBGMODOUT_ACK BIT(2)
0175
0176 #define ISP176x_DC_IEP0SETUP BIT(8)
0177 #define ISP176x_DC_IEVBUS BIT(7)
0178 #define ISP176x_DC_IEHS_STA BIT(5)
0179 #define ISP176x_DC_IERESM BIT(4)
0180 #define ISP176x_DC_IESUSP BIT(3)
0181 #define ISP176x_DC_IEBRST BIT(0)
0182
0183 #define ISP176x_HW_OTG_DISABLE_CLEAR BIT(26)
0184 #define ISP176x_HW_SW_SEL_HC_DC_CLEAR BIT(23)
0185 #define ISP176x_HW_VBUS_DRV_CLEAR BIT(20)
0186 #define ISP176x_HW_SEL_CP_EXT_CLEAR BIT(19)
0187 #define ISP176x_HW_DM_PULLDOWN_CLEAR BIT(18)
0188 #define ISP176x_HW_DP_PULLDOWN_CLEAR BIT(17)
0189 #define ISP176x_HW_DP_PULLUP_CLEAR BIT(16)
0190 #define ISP176x_HW_OTG_DISABLE BIT(10)
0191 #define ISP176x_HW_SW_SEL_HC_DC BIT(7)
0192 #define ISP176x_HW_VBUS_DRV BIT(4)
0193 #define ISP176x_HW_SEL_CP_EXT BIT(3)
0194 #define ISP176x_HW_DM_PULLDOWN BIT(2)
0195 #define ISP176x_HW_DP_PULLDOWN BIT(1)
0196 #define ISP176x_HW_DP_PULLUP BIT(0)
0197
0198 #define ISP176x_DC_ENDPTYP_ISOC 0x01
0199 #define ISP176x_DC_ENDPTYP_BULK 0x02
0200 #define ISP176x_DC_ENDPTYP_INTERRUPT 0x03
0201
0202
0203 #define ISP176x_DC_ADDRESS 0x0200
0204 #define ISP176x_DC_MODE 0x020c
0205 #define ISP176x_DC_INTCONF 0x0210
0206 #define ISP176x_DC_DEBUG 0x0212
0207 #define ISP176x_DC_INTENABLE 0x0214
0208
0209
0210 #define ISP176x_DC_EPMAXPKTSZ 0x0204
0211 #define ISP176x_DC_EPTYPE 0x0208
0212
0213 #define ISP176x_DC_BUFLEN 0x021c
0214 #define ISP176x_DC_BUFSTAT 0x021e
0215 #define ISP176x_DC_DATAPORT 0x0220
0216
0217 #define ISP176x_DC_CTRLFUNC 0x0228
0218 #define ISP176x_DC_EPINDEX 0x022c
0219
0220
0221 #define ISP176x_DC_DMACMD 0x0230
0222 #define ISP176x_DC_DMATXCOUNT 0x0234
0223 #define ISP176x_DC_DMACONF 0x0238
0224 #define ISP176x_DC_DMAHW 0x023c
0225 #define ISP176x_DC_DMAINTREASON 0x0250
0226 #define ISP176x_DC_DMAINTEN 0x0254
0227 #define ISP176x_DC_DMAEP 0x0258
0228 #define ISP176x_DC_DMABURSTCOUNT 0x0264
0229
0230
0231 #define ISP176x_DC_INTERRUPT 0x0218
0232 #define ISP176x_DC_CHIPID 0x0270
0233 #define ISP176x_DC_FRAMENUM 0x0274
0234 #define ISP176x_DC_SCRATCH 0x0278
0235 #define ISP176x_DC_UNLOCKDEV 0x027c
0236 #define ISP176x_DC_INTPULSEWIDTH 0x0280
0237 #define ISP176x_DC_TESTMODE 0x0284
0238
0239 enum isp176x_device_controller_fields {
0240
0241 DC_DEVEN, DC_DEVADDR,
0242
0243 DC_VBUSSTAT, DC_SFRESET, DC_GLINTENA,
0244
0245 DC_CDBGMOD_ACK, DC_DDBGMODIN_ACK, DC_DDBGMODOUT_ACK, DC_INTPOL,
0246
0247 DC_IEPRXTX_7, DC_IEPRXTX_6, DC_IEPRXTX_5, DC_IEPRXTX_4, DC_IEPRXTX_3,
0248 DC_IEPRXTX_2, DC_IEPRXTX_1, DC_IEPRXTX_0,
0249 DC_IEP0SETUP, DC_IEVBUS, DC_IEHS_STA, DC_IERESM, DC_IESUSP, DC_IEBRST,
0250
0251 DC_EP0SETUP, DC_ENDPIDX, DC_EPDIR,
0252
0253 DC_CLBUF, DC_VENDP, DC_DSEN, DC_STATUS, DC_STALL,
0254
0255 DC_BUFLEN,
0256
0257 DC_FFOSZ,
0258
0259 DC_EPENABLE, DC_ENDPTYP,
0260
0261 DC_FRAMENUM, DC_UFRAMENUM,
0262
0263 DC_CHIP_ID_HIGH, DC_CHIP_ID_LOW,
0264
0265 DC_SCRATCH,
0266
0267 DC_FIELD_MAX,
0268 };
0269
0270
0271
0272 #define ISP1763_DC_ADDRESS 0x00
0273 #define ISP1763_DC_MODE 0x0c
0274 #define ISP1763_DC_INTCONF 0x10
0275 #define ISP1763_DC_INTENABLE 0x14
0276
0277
0278 #define ISP1763_DC_EPMAXPKTSZ 0x04
0279 #define ISP1763_DC_EPTYPE 0x08
0280
0281 #define ISP1763_DC_BUFLEN 0x1c
0282 #define ISP1763_DC_BUFSTAT 0x1e
0283 #define ISP1763_DC_DATAPORT 0x20
0284
0285 #define ISP1763_DC_CTRLFUNC 0x28
0286 #define ISP1763_DC_EPINDEX 0x2c
0287
0288
0289 #define ISP1763_DC_DMACMD 0x30
0290 #define ISP1763_DC_DMATXCOUNT 0x34
0291 #define ISP1763_DC_DMACONF 0x38
0292 #define ISP1763_DC_DMAHW 0x3c
0293 #define ISP1763_DC_DMAINTREASON 0x50
0294 #define ISP1763_DC_DMAINTEN 0x54
0295 #define ISP1763_DC_DMAEP 0x58
0296 #define ISP1763_DC_DMABURSTCOUNT 0x64
0297
0298
0299 #define ISP1763_DC_INTERRUPT 0x18
0300 #define ISP1763_DC_CHIPID_LOW 0x70
0301 #define ISP1763_DC_CHIPID_HIGH 0x72
0302 #define ISP1763_DC_FRAMENUM 0x74
0303 #define ISP1763_DC_SCRATCH 0x78
0304 #define ISP1763_DC_UNLOCKDEV 0x7c
0305 #define ISP1763_DC_INTPULSEWIDTH 0x80
0306 #define ISP1763_DC_TESTMODE 0x84
0307
0308 #endif