162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Driver for the NXP ISP1760 chip
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2021 Linaro, Rui Miguel Silva
662306a36Sopenharmony_ci * Copyright 2014 Laurent Pinchart
762306a36Sopenharmony_ci * Copyright 2007 Sebastian Siewior
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * Contacts:
1062306a36Sopenharmony_ci *     Sebastian Siewior <bigeasy@linutronix.de>
1162306a36Sopenharmony_ci *     Laurent Pinchart <laurent.pinchart@ideasonboard.com>
1262306a36Sopenharmony_ci *     Rui Miguel Silva <rui.silva@linaro.org>
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#ifndef _ISP176x_REGS_H_
1662306a36Sopenharmony_ci#define _ISP176x_REGS_H_
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/* -----------------------------------------------------------------------------
1962306a36Sopenharmony_ci * Host Controller
2062306a36Sopenharmony_ci */
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci/* ISP1760/31 */
2362306a36Sopenharmony_ci/* EHCI capability registers */
2462306a36Sopenharmony_ci#define ISP176x_HC_VERSION		0x002
2562306a36Sopenharmony_ci#define ISP176x_HC_HCSPARAMS		0x004
2662306a36Sopenharmony_ci#define ISP176x_HC_HCCPARAMS		0x008
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci/* EHCI operational registers */
2962306a36Sopenharmony_ci#define ISP176x_HC_USBCMD		0x020
3062306a36Sopenharmony_ci#define ISP176x_HC_USBSTS		0x024
3162306a36Sopenharmony_ci#define ISP176x_HC_FRINDEX		0x02c
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#define ISP176x_HC_CONFIGFLAG		0x060
3462306a36Sopenharmony_ci#define ISP176x_HC_PORTSC1		0x064
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#define ISP176x_HC_ISO_PTD_DONEMAP	0x130
3762306a36Sopenharmony_ci#define ISP176x_HC_ISO_PTD_SKIPMAP	0x134
3862306a36Sopenharmony_ci#define ISP176x_HC_ISO_PTD_LASTPTD	0x138
3962306a36Sopenharmony_ci#define ISP176x_HC_INT_PTD_DONEMAP	0x140
4062306a36Sopenharmony_ci#define ISP176x_HC_INT_PTD_SKIPMAP	0x144
4162306a36Sopenharmony_ci#define ISP176x_HC_INT_PTD_LASTPTD	0x148
4262306a36Sopenharmony_ci#define ISP176x_HC_ATL_PTD_DONEMAP	0x150
4362306a36Sopenharmony_ci#define ISP176x_HC_ATL_PTD_SKIPMAP	0x154
4462306a36Sopenharmony_ci#define ISP176x_HC_ATL_PTD_LASTPTD	0x158
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci/* Configuration Register */
4762306a36Sopenharmony_ci#define ISP176x_HC_HW_MODE_CTRL		0x300
4862306a36Sopenharmony_ci#define ISP176x_HC_CHIP_ID		0x304
4962306a36Sopenharmony_ci#define ISP176x_HC_SCRATCH		0x308
5062306a36Sopenharmony_ci#define ISP176x_HC_RESET		0x30c
5162306a36Sopenharmony_ci#define ISP176x_HC_BUFFER_STATUS	0x334
5262306a36Sopenharmony_ci#define ISP176x_HC_MEMORY		0x33c
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci/* Interrupt Register */
5562306a36Sopenharmony_ci#define ISP176x_HC_INTERRUPT		0x310
5662306a36Sopenharmony_ci#define ISP176x_HC_INTERRUPT_ENABLE	0x314
5762306a36Sopenharmony_ci#define ISP176x_HC_ISO_IRQ_MASK_OR	0x318
5862306a36Sopenharmony_ci#define ISP176x_HC_INT_IRQ_MASK_OR	0x31c
5962306a36Sopenharmony_ci#define ISP176x_HC_ATL_IRQ_MASK_OR	0x320
6062306a36Sopenharmony_ci#define ISP176x_HC_ISO_IRQ_MASK_AND	0x324
6162306a36Sopenharmony_ci#define ISP176x_HC_INT_IRQ_MASK_AND	0x328
6262306a36Sopenharmony_ci#define ISP176x_HC_ATL_IRQ_MASK_AND	0x32c
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci#define ISP176x_HC_OTG_CTRL		0x374
6562306a36Sopenharmony_ci#define ISP176x_HC_OTG_CTRL_SET		0x374
6662306a36Sopenharmony_ci#define ISP176x_HC_OTG_CTRL_CLEAR	0x376
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cienum isp176x_host_controller_fields {
6962306a36Sopenharmony_ci	/* HC_PORTSC1 */
7062306a36Sopenharmony_ci	PORT_OWNER, PORT_POWER, PORT_LSTATUS, PORT_RESET, PORT_SUSPEND,
7162306a36Sopenharmony_ci	PORT_RESUME, PORT_PE, PORT_CSC, PORT_CONNECT,
7262306a36Sopenharmony_ci	/* HC_HCSPARAMS */
7362306a36Sopenharmony_ci	HCS_PPC, HCS_N_PORTS,
7462306a36Sopenharmony_ci	/* HC_HCCPARAMS */
7562306a36Sopenharmony_ci	HCC_ISOC_CACHE, HCC_ISOC_THRES,
7662306a36Sopenharmony_ci	/* HC_USBCMD */
7762306a36Sopenharmony_ci	CMD_LRESET, CMD_RESET, CMD_RUN,
7862306a36Sopenharmony_ci	/* HC_USBSTS */
7962306a36Sopenharmony_ci	STS_PCD,
8062306a36Sopenharmony_ci	/* HC_FRINDEX */
8162306a36Sopenharmony_ci	HC_FRINDEX,
8262306a36Sopenharmony_ci	/* HC_CONFIGFLAG */
8362306a36Sopenharmony_ci	FLAG_CF,
8462306a36Sopenharmony_ci	/* ISO/INT/ATL PTD */
8562306a36Sopenharmony_ci	HC_ISO_PTD_DONEMAP, HC_ISO_PTD_SKIPMAP, HC_ISO_PTD_LASTPTD,
8662306a36Sopenharmony_ci	HC_INT_PTD_DONEMAP, HC_INT_PTD_SKIPMAP, HC_INT_PTD_LASTPTD,
8762306a36Sopenharmony_ci	HC_ATL_PTD_DONEMAP, HC_ATL_PTD_SKIPMAP, HC_ATL_PTD_LASTPTD,
8862306a36Sopenharmony_ci	/* HC_HW_MODE_CTRL */
8962306a36Sopenharmony_ci	ALL_ATX_RESET, HW_ANA_DIGI_OC, HW_DEV_DMA, HW_COMN_IRQ, HW_COMN_DMA,
9062306a36Sopenharmony_ci	HW_DATA_BUS_WIDTH, HW_DACK_POL_HIGH, HW_DREQ_POL_HIGH, HW_INTR_HIGH_ACT,
9162306a36Sopenharmony_ci	HW_INTF_LOCK, HW_INTR_EDGE_TRIG, HW_GLOBAL_INTR_EN,
9262306a36Sopenharmony_ci	/* HC_CHIP_ID */
9362306a36Sopenharmony_ci	HC_CHIP_ID_HIGH, HC_CHIP_ID_LOW, HC_CHIP_REV,
9462306a36Sopenharmony_ci	/* HC_SCRATCH */
9562306a36Sopenharmony_ci	HC_SCRATCH,
9662306a36Sopenharmony_ci	/* HC_RESET */
9762306a36Sopenharmony_ci	SW_RESET_RESET_ATX, SW_RESET_RESET_HC, SW_RESET_RESET_ALL,
9862306a36Sopenharmony_ci	/* HC_BUFFER_STATUS */
9962306a36Sopenharmony_ci	ISO_BUF_FILL, INT_BUF_FILL, ATL_BUF_FILL,
10062306a36Sopenharmony_ci	/* HC_MEMORY */
10162306a36Sopenharmony_ci	MEM_BANK_SEL, MEM_START_ADDR,
10262306a36Sopenharmony_ci	/* HC_DATA */
10362306a36Sopenharmony_ci	HC_DATA,
10462306a36Sopenharmony_ci	/* HC_INTERRUPT */
10562306a36Sopenharmony_ci	HC_INTERRUPT,
10662306a36Sopenharmony_ci	/* HC_INTERRUPT_ENABLE */
10762306a36Sopenharmony_ci	HC_INT_IRQ_ENABLE, HC_ATL_IRQ_ENABLE,
10862306a36Sopenharmony_ci	/* INTERRUPT MASKS */
10962306a36Sopenharmony_ci	HC_ISO_IRQ_MASK_OR, HC_INT_IRQ_MASK_OR, HC_ATL_IRQ_MASK_OR,
11062306a36Sopenharmony_ci	HC_ISO_IRQ_MASK_AND, HC_INT_IRQ_MASK_AND, HC_ATL_IRQ_MASK_AND,
11162306a36Sopenharmony_ci	/* HW_OTG_CTRL_SET */
11262306a36Sopenharmony_ci	HW_OTG_DISABLE, HW_SW_SEL_HC_DC, HW_VBUS_DRV, HW_SEL_CP_EXT,
11362306a36Sopenharmony_ci	HW_DM_PULLDOWN, HW_DP_PULLDOWN, HW_DP_PULLUP, HW_HC_2_DIS,
11462306a36Sopenharmony_ci	/* HW_OTG_CTRL_CLR */
11562306a36Sopenharmony_ci	HW_OTG_DISABLE_CLEAR, HW_SW_SEL_HC_DC_CLEAR, HW_VBUS_DRV_CLEAR,
11662306a36Sopenharmony_ci	HW_SEL_CP_EXT_CLEAR, HW_DM_PULLDOWN_CLEAR, HW_DP_PULLDOWN_CLEAR,
11762306a36Sopenharmony_ci	HW_DP_PULLUP_CLEAR, HW_HC_2_DIS_CLEAR,
11862306a36Sopenharmony_ci	/* Last element */
11962306a36Sopenharmony_ci	HC_FIELD_MAX,
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci/* ISP1763 */
12362306a36Sopenharmony_ci/* EHCI operational registers */
12462306a36Sopenharmony_ci#define ISP1763_HC_USBCMD		0x8c
12562306a36Sopenharmony_ci#define ISP1763_HC_USBSTS		0x90
12662306a36Sopenharmony_ci#define ISP1763_HC_FRINDEX		0x98
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci#define ISP1763_HC_CONFIGFLAG		0x9c
12962306a36Sopenharmony_ci#define ISP1763_HC_PORTSC1		0xa0
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci#define ISP1763_HC_ISO_PTD_DONEMAP	0xa4
13262306a36Sopenharmony_ci#define ISP1763_HC_ISO_PTD_SKIPMAP	0xa6
13362306a36Sopenharmony_ci#define ISP1763_HC_ISO_PTD_LASTPTD	0xa8
13462306a36Sopenharmony_ci#define ISP1763_HC_INT_PTD_DONEMAP	0xaa
13562306a36Sopenharmony_ci#define ISP1763_HC_INT_PTD_SKIPMAP	0xac
13662306a36Sopenharmony_ci#define ISP1763_HC_INT_PTD_LASTPTD	0xae
13762306a36Sopenharmony_ci#define ISP1763_HC_ATL_PTD_DONEMAP	0xb0
13862306a36Sopenharmony_ci#define ISP1763_HC_ATL_PTD_SKIPMAP	0xb2
13962306a36Sopenharmony_ci#define ISP1763_HC_ATL_PTD_LASTPTD	0xb4
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci/* Configuration Register */
14262306a36Sopenharmony_ci#define ISP1763_HC_HW_MODE_CTRL		0xb6
14362306a36Sopenharmony_ci#define ISP1763_HC_CHIP_REV		0x70
14462306a36Sopenharmony_ci#define ISP1763_HC_CHIP_ID		0x72
14562306a36Sopenharmony_ci#define ISP1763_HC_SCRATCH		0x78
14662306a36Sopenharmony_ci#define ISP1763_HC_RESET		0xb8
14762306a36Sopenharmony_ci#define ISP1763_HC_BUFFER_STATUS	0xba
14862306a36Sopenharmony_ci#define ISP1763_HC_MEMORY		0xc4
14962306a36Sopenharmony_ci#define ISP1763_HC_DATA			0xc6
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci/* Interrupt Register */
15262306a36Sopenharmony_ci#define ISP1763_HC_INTERRUPT		0xd4
15362306a36Sopenharmony_ci#define ISP1763_HC_INTERRUPT_ENABLE	0xd6
15462306a36Sopenharmony_ci#define ISP1763_HC_ISO_IRQ_MASK_OR	0xd8
15562306a36Sopenharmony_ci#define ISP1763_HC_INT_IRQ_MASK_OR	0xda
15662306a36Sopenharmony_ci#define ISP1763_HC_ATL_IRQ_MASK_OR	0xdc
15762306a36Sopenharmony_ci#define ISP1763_HC_ISO_IRQ_MASK_AND	0xde
15862306a36Sopenharmony_ci#define ISP1763_HC_INT_IRQ_MASK_AND	0xe0
15962306a36Sopenharmony_ci#define ISP1763_HC_ATL_IRQ_MASK_AND	0xe2
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci#define ISP1763_HC_OTG_CTRL_SET		0xe4
16262306a36Sopenharmony_ci#define ISP1763_HC_OTG_CTRL_CLEAR	0xe6
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci/* -----------------------------------------------------------------------------
16562306a36Sopenharmony_ci * Peripheral Controller
16662306a36Sopenharmony_ci */
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci#define DC_IEPTX(n)			(1 << (11 + 2 * (n)))
16962306a36Sopenharmony_ci#define DC_IEPRX(n)			(1 << (10 + 2 * (n)))
17062306a36Sopenharmony_ci#define DC_IEPRXTX(n)			(3 << (10 + 2 * (n)))
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci#define ISP176x_DC_CDBGMOD_ACK		BIT(6)
17362306a36Sopenharmony_ci#define ISP176x_DC_DDBGMODIN_ACK	BIT(4)
17462306a36Sopenharmony_ci#define ISP176x_DC_DDBGMODOUT_ACK	BIT(2)
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci#define ISP176x_DC_IEP0SETUP		BIT(8)
17762306a36Sopenharmony_ci#define ISP176x_DC_IEVBUS		BIT(7)
17862306a36Sopenharmony_ci#define ISP176x_DC_IEHS_STA		BIT(5)
17962306a36Sopenharmony_ci#define ISP176x_DC_IERESM		BIT(4)
18062306a36Sopenharmony_ci#define ISP176x_DC_IESUSP		BIT(3)
18162306a36Sopenharmony_ci#define ISP176x_DC_IEBRST		BIT(0)
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci#define ISP176x_HW_OTG_DISABLE_CLEAR	BIT(26)
18462306a36Sopenharmony_ci#define ISP176x_HW_SW_SEL_HC_DC_CLEAR	BIT(23)
18562306a36Sopenharmony_ci#define ISP176x_HW_VBUS_DRV_CLEAR	BIT(20)
18662306a36Sopenharmony_ci#define ISP176x_HW_SEL_CP_EXT_CLEAR	BIT(19)
18762306a36Sopenharmony_ci#define ISP176x_HW_DM_PULLDOWN_CLEAR	BIT(18)
18862306a36Sopenharmony_ci#define ISP176x_HW_DP_PULLDOWN_CLEAR	BIT(17)
18962306a36Sopenharmony_ci#define ISP176x_HW_DP_PULLUP_CLEAR	BIT(16)
19062306a36Sopenharmony_ci#define ISP176x_HW_OTG_DISABLE		BIT(10)
19162306a36Sopenharmony_ci#define ISP176x_HW_SW_SEL_HC_DC		BIT(7)
19262306a36Sopenharmony_ci#define ISP176x_HW_VBUS_DRV		BIT(4)
19362306a36Sopenharmony_ci#define ISP176x_HW_SEL_CP_EXT		BIT(3)
19462306a36Sopenharmony_ci#define ISP176x_HW_DM_PULLDOWN		BIT(2)
19562306a36Sopenharmony_ci#define ISP176x_HW_DP_PULLDOWN		BIT(1)
19662306a36Sopenharmony_ci#define ISP176x_HW_DP_PULLUP		BIT(0)
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci#define ISP176x_DC_ENDPTYP_ISOC		0x01
19962306a36Sopenharmony_ci#define ISP176x_DC_ENDPTYP_BULK		0x02
20062306a36Sopenharmony_ci#define ISP176x_DC_ENDPTYP_INTERRUPT	0x03
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci/* Initialization Registers */
20362306a36Sopenharmony_ci#define ISP176x_DC_ADDRESS		0x0200
20462306a36Sopenharmony_ci#define ISP176x_DC_MODE			0x020c
20562306a36Sopenharmony_ci#define ISP176x_DC_INTCONF		0x0210
20662306a36Sopenharmony_ci#define ISP176x_DC_DEBUG		0x0212
20762306a36Sopenharmony_ci#define ISP176x_DC_INTENABLE		0x0214
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci/* Data Flow Registers */
21062306a36Sopenharmony_ci#define ISP176x_DC_EPMAXPKTSZ		0x0204
21162306a36Sopenharmony_ci#define ISP176x_DC_EPTYPE		0x0208
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci#define ISP176x_DC_BUFLEN		0x021c
21462306a36Sopenharmony_ci#define ISP176x_DC_BUFSTAT		0x021e
21562306a36Sopenharmony_ci#define ISP176x_DC_DATAPORT		0x0220
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci#define ISP176x_DC_CTRLFUNC		0x0228
21862306a36Sopenharmony_ci#define ISP176x_DC_EPINDEX		0x022c
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci/* DMA Registers */
22162306a36Sopenharmony_ci#define ISP176x_DC_DMACMD		0x0230
22262306a36Sopenharmony_ci#define ISP176x_DC_DMATXCOUNT		0x0234
22362306a36Sopenharmony_ci#define ISP176x_DC_DMACONF		0x0238
22462306a36Sopenharmony_ci#define ISP176x_DC_DMAHW		0x023c
22562306a36Sopenharmony_ci#define ISP176x_DC_DMAINTREASON		0x0250
22662306a36Sopenharmony_ci#define ISP176x_DC_DMAINTEN		0x0254
22762306a36Sopenharmony_ci#define ISP176x_DC_DMAEP		0x0258
22862306a36Sopenharmony_ci#define ISP176x_DC_DMABURSTCOUNT	0x0264
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci/* General Registers */
23162306a36Sopenharmony_ci#define ISP176x_DC_INTERRUPT		0x0218
23262306a36Sopenharmony_ci#define ISP176x_DC_CHIPID		0x0270
23362306a36Sopenharmony_ci#define ISP176x_DC_FRAMENUM		0x0274
23462306a36Sopenharmony_ci#define ISP176x_DC_SCRATCH		0x0278
23562306a36Sopenharmony_ci#define ISP176x_DC_UNLOCKDEV		0x027c
23662306a36Sopenharmony_ci#define ISP176x_DC_INTPULSEWIDTH	0x0280
23762306a36Sopenharmony_ci#define ISP176x_DC_TESTMODE		0x0284
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_cienum isp176x_device_controller_fields {
24062306a36Sopenharmony_ci	/* DC_ADDRESS */
24162306a36Sopenharmony_ci	DC_DEVEN, DC_DEVADDR,
24262306a36Sopenharmony_ci	/* DC_MODE */
24362306a36Sopenharmony_ci	DC_VBUSSTAT, DC_SFRESET, DC_GLINTENA,
24462306a36Sopenharmony_ci	/* DC_INTCONF */
24562306a36Sopenharmony_ci	DC_CDBGMOD_ACK, DC_DDBGMODIN_ACK, DC_DDBGMODOUT_ACK, DC_INTPOL,
24662306a36Sopenharmony_ci	/* DC_INTENABLE */
24762306a36Sopenharmony_ci	DC_IEPRXTX_7, DC_IEPRXTX_6, DC_IEPRXTX_5, DC_IEPRXTX_4, DC_IEPRXTX_3,
24862306a36Sopenharmony_ci	DC_IEPRXTX_2, DC_IEPRXTX_1, DC_IEPRXTX_0,
24962306a36Sopenharmony_ci	DC_IEP0SETUP, DC_IEVBUS, DC_IEHS_STA, DC_IERESM, DC_IESUSP, DC_IEBRST,
25062306a36Sopenharmony_ci	/* DC_EPINDEX */
25162306a36Sopenharmony_ci	DC_EP0SETUP, DC_ENDPIDX, DC_EPDIR,
25262306a36Sopenharmony_ci	/* DC_CTRLFUNC */
25362306a36Sopenharmony_ci	DC_CLBUF, DC_VENDP, DC_DSEN, DC_STATUS, DC_STALL,
25462306a36Sopenharmony_ci	/* DC_BUFLEN */
25562306a36Sopenharmony_ci	DC_BUFLEN,
25662306a36Sopenharmony_ci	/* DC_EPMAXPKTSZ */
25762306a36Sopenharmony_ci	DC_FFOSZ,
25862306a36Sopenharmony_ci	/* DC_EPTYPE */
25962306a36Sopenharmony_ci	DC_EPENABLE, DC_ENDPTYP,
26062306a36Sopenharmony_ci	/* DC_FRAMENUM */
26162306a36Sopenharmony_ci	DC_FRAMENUM, DC_UFRAMENUM,
26262306a36Sopenharmony_ci	/* DC_CHIP_ID */
26362306a36Sopenharmony_ci	DC_CHIP_ID_HIGH, DC_CHIP_ID_LOW,
26462306a36Sopenharmony_ci	/* DC_SCRATCH */
26562306a36Sopenharmony_ci	DC_SCRATCH,
26662306a36Sopenharmony_ci	/* Last element */
26762306a36Sopenharmony_ci	DC_FIELD_MAX,
26862306a36Sopenharmony_ci};
26962306a36Sopenharmony_ci
27062306a36Sopenharmony_ci/* ISP1763 */
27162306a36Sopenharmony_ci/* Initialization Registers */
27262306a36Sopenharmony_ci#define ISP1763_DC_ADDRESS		0x00
27362306a36Sopenharmony_ci#define ISP1763_DC_MODE			0x0c
27462306a36Sopenharmony_ci#define ISP1763_DC_INTCONF		0x10
27562306a36Sopenharmony_ci#define ISP1763_DC_INTENABLE		0x14
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci/* Data Flow Registers */
27862306a36Sopenharmony_ci#define ISP1763_DC_EPMAXPKTSZ		0x04
27962306a36Sopenharmony_ci#define ISP1763_DC_EPTYPE		0x08
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci#define ISP1763_DC_BUFLEN		0x1c
28262306a36Sopenharmony_ci#define ISP1763_DC_BUFSTAT		0x1e
28362306a36Sopenharmony_ci#define ISP1763_DC_DATAPORT		0x20
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci#define ISP1763_DC_CTRLFUNC		0x28
28662306a36Sopenharmony_ci#define ISP1763_DC_EPINDEX		0x2c
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci/* DMA Registers */
28962306a36Sopenharmony_ci#define ISP1763_DC_DMACMD		0x30
29062306a36Sopenharmony_ci#define ISP1763_DC_DMATXCOUNT		0x34
29162306a36Sopenharmony_ci#define ISP1763_DC_DMACONF		0x38
29262306a36Sopenharmony_ci#define ISP1763_DC_DMAHW		0x3c
29362306a36Sopenharmony_ci#define ISP1763_DC_DMAINTREASON		0x50
29462306a36Sopenharmony_ci#define ISP1763_DC_DMAINTEN		0x54
29562306a36Sopenharmony_ci#define ISP1763_DC_DMAEP		0x58
29662306a36Sopenharmony_ci#define ISP1763_DC_DMABURSTCOUNT	0x64
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci/* General Registers */
29962306a36Sopenharmony_ci#define ISP1763_DC_INTERRUPT		0x18
30062306a36Sopenharmony_ci#define ISP1763_DC_CHIPID_LOW		0x70
30162306a36Sopenharmony_ci#define ISP1763_DC_CHIPID_HIGH		0x72
30262306a36Sopenharmony_ci#define ISP1763_DC_FRAMENUM		0x74
30362306a36Sopenharmony_ci#define ISP1763_DC_SCRATCH		0x78
30462306a36Sopenharmony_ci#define ISP1763_DC_UNLOCKDEV		0x7c
30562306a36Sopenharmony_ci#define ISP1763_DC_INTPULSEWIDTH	0x80
30662306a36Sopenharmony_ci#define ISP1763_DC_TESTMODE		0x84
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci#endif
309