xref: /openbsd-src/sys/arch/octeon/dev/octhcireg.h (revision 52334306b2a9705ff71115f6fb78beb8340dd9a4)
1*52334306Syasuoka /*	$OpenBSD: octhcireg.h,v 1.4 2022/12/28 01:39:21 yasuoka Exp $	*/
28f569c09Spirofti 
38f569c09Spirofti /*
48f569c09Spirofti  * Copyright (c) 2007 Internet Initiative Japan, Inc.
58f569c09Spirofti  * All rights reserved.
68f569c09Spirofti  *
78f569c09Spirofti  * Redistribution and use in source and binary forms, with or without
88f569c09Spirofti  * modification, are permitted provided that the following conditions
98f569c09Spirofti  * are met:
108f569c09Spirofti  * 1. Redistributions of source code must retain the above copyright
118f569c09Spirofti  *    notice, this list of conditions and the following disclaimer.
128f569c09Spirofti  * 2. Redistributions in binary form must reproduce the above copyright
138f569c09Spirofti  *    notice, this list of conditions and the following disclaimer in the
148f569c09Spirofti  *    documentation and/or other materials provided with the distribution.
158f569c09Spirofti  *
16*52334306Syasuoka  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
178f569c09Spirofti  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
188f569c09Spirofti  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19*52334306Syasuoka  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
208f569c09Spirofti  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
218f569c09Spirofti  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
228f569c09Spirofti  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
238f569c09Spirofti  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
248f569c09Spirofti  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
258f569c09Spirofti  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
268f569c09Spirofti  * SUCH DAMAGE.
278f569c09Spirofti  */
288f569c09Spirofti 
298f569c09Spirofti /*
308f569c09Spirofti  * Cavium Networks OCTEON CN30XX Hardware Reference Manual
318f569c09Spirofti  * CN30XX-HM-1.0
328f569c09Spirofti  * 21.9.1 USBN Registers
338f569c09Spirofti  *
348f569c09Spirofti  * Cavium Networks OCTEON CN30XX Hardware Reference Manual
358f569c09Spirofti  * CN50XX-HM-0.99
368f569c09Spirofti  * 21.8.1 USBN Registers
378f569c09Spirofti  */
388f569c09Spirofti 
398f569c09Spirofti #ifndef _OCTHCIREGREG_H_
408f569c09Spirofti #define _OCTHCIREGREG_H_
418f569c09Spirofti 
428f569c09Spirofti /*
438f569c09Spirofti  * USBN Registers - interface with the USB core
448f569c09Spirofti  */
458f569c09Spirofti #define	USBN_INT_SUM				0x0001180068000000ULL
468f569c09Spirofti #define	USBN_INT_ENB				0x0001180068000008ULL
478f569c09Spirofti #define	USBN_CLK_CTL				0x0001180068000010ULL
488f569c09Spirofti #define	USBN_USBP_CTL_STATUS			0x0001180068000018ULL
498f569c09Spirofti #define	USBN_BIST_STATUS			0x00011800680007f8ULL
508f569c09Spirofti #define	USBN_CTL_STATUS				0x00016F0000000800ULL
518f569c09Spirofti #define	USBN_DMA_TEST				0x00016F0000000808ULL
528f569c09Spirofti 
538f569c09Spirofti #define	USBN_DMA0_INB_CHN0			0x00016F0000000818ULL
548f569c09Spirofti #define	USBN_DMA0_INB_CHN1			0x00016F0000000820ULL
558f569c09Spirofti #define	USBN_DMA0_INB_CHN2			0x00016F0000000828ULL
568f569c09Spirofti #define	USBN_DMA0_INB_CHN3			0x00016F0000000830ULL
578f569c09Spirofti #define	USBN_DMA0_INB_CHN4			0x00016F0000000838ULL
588f569c09Spirofti #define	USBN_DMA0_INB_CHN5			0x00016F0000000840ULL
598f569c09Spirofti #define	USBN_DMA0_INB_CHN6			0x00016F0000000848ULL
608f569c09Spirofti #define	USBN_DMA0_INB_CHN7			0x00016F0000000850ULL
618f569c09Spirofti 
628f569c09Spirofti #define	USBN_DMA0_OUTB_CHN0			0x00016F0000000858ULL
638f569c09Spirofti #define	USBN_DMA0_OUTB_CHN1			0x00016F0000000860ULL
648f569c09Spirofti #define	USBN_DMA0_OUTB_CHN2			0x00016F0000000868ULL
658f569c09Spirofti #define	USBN_DMA0_OUTB_CHN3			0x00016F0000000870ULL
668f569c09Spirofti #define	USBN_DMA0_OUTB_CHN4			0x00016F0000000878ULL
678f569c09Spirofti #define	USBN_DMA0_OUTB_CHN5			0x00016F0000000880ULL
688f569c09Spirofti #define	USBN_DMA0_OUTB_CHN6			0x00016F0000000888ULL
698f569c09Spirofti #define	USBN_DMA0_OUTB_CHN7			0x00016F0000000890ULL
708f569c09Spirofti 
718f569c09Spirofti /* ---- register bits */
728f569c09Spirofti 
738f569c09Spirofti /* for USBN_INT_SUM and USBN_INT_ENB */
748f569c09Spirofti #define USBN_INT_XXX_63_38			0xffffffc000000000ULL
758f569c09Spirofti #define	USBN_INT_ND4O_DPF			0x0000002000000000ULL
768f569c09Spirofti #define	USBN_INT_ND4O_DPE			0x0000001000000000ULL
778f569c09Spirofti #define	USBN_INT_ND4O_RPF			0x0000000800000000ULL
788f569c09Spirofti #define	USBN_INT_ND4O_RPE			0x0000000400000000ULL
798f569c09Spirofti #define USBN_INT_LTL_F_PF			0x0000000200000000ULL
808f569c09Spirofti #define USBN_INT_LTL_F_PE			0x0000000100000000ULL
818f569c09Spirofti #define USBN_INT_U2N_C_PE			0x0000000080000000ULL
828f569c09Spirofti #define USBN_INT_U2N_C_PF			0x0000000040000000ULL
838f569c09Spirofti #define USBN_INT_U2N_D_PF			0x0000000020000000ULL
848f569c09Spirofti #define USBN_INT_U2N_D_PE			0x0000000010000000ULL
858f569c09Spirofti #define USBN_INT_N2U_PE				0x0000000008000000ULL
868f569c09Spirofti #define USBN_INT_N2U_PF				0x0000000004000000ULL
878f569c09Spirofti #define USBN_INT_UOD_PF				0x0000000002000000ULL
888f569c09Spirofti #define USBN_INT_UOD_PE				0x0000000001000000ULL
898f569c09Spirofti #define USBN_INT_RQ_Q3_E			0x0000000000800000ULL
908f569c09Spirofti #define USBN_INT_RQ_Q3_F			0x0000000000400000ULL
918f569c09Spirofti #define USBN_INT_RQ_Q2_E			0x0000000000200000ULL
928f569c09Spirofti #define USBN_INT_RQ_Q2_F			0x0000000000100000ULL
938f569c09Spirofti #define USBN_INT_RG_FI_F			0x0000000000080000ULL
948f569c09Spirofti #define USBN_INT_RG_FI_E			0x0000000000040000ULL
958f569c09Spirofti #define USBN_INT_LT_FI_F			0x0000000000020000ULL
968f569c09Spirofti #define USBN_INT_LT_FI_E			0x0000000000010000ULL
978f569c09Spirofti #define USBN_INT_L2C_A_F			0x0000000000008000ULL
988f569c09Spirofti #define USBN_INT_L2C_S_E			0x0000000000004000ULL
998f569c09Spirofti #define USBN_INT_DCRED_F			0x0000000000002000ULL
1008f569c09Spirofti #define USBN_INT_DCRED_E			0x0000000000001000ULL
1018f569c09Spirofti #define USBN_INT_LT_PU_F			0x0000000000000800ULL
1028f569c09Spirofti #define USBN_INT_LT_PO_E			0x0000000000000400ULL
1038f569c09Spirofti #define USBN_INT_NT_PU_F			0x0000000000000200ULL
1048f569c09Spirofti #define USBN_INT_NT_PO_E			0x0000000000000100ULL
1058f569c09Spirofti #define USBN_INT_PT_PU_F			0x0000000000000080ULL
1068f569c09Spirofti #define USBN_INT_PT_PO_E			0x0000000000000040ULL
1078f569c09Spirofti #define USBN_INT_LR_PU_F			0x0000000000000020ULL
1088f569c09Spirofti #define USBN_INT_LR_PO_E			0x0000000000000010ULL
1098f569c09Spirofti #define USBN_INT_NR_PU_F			0x0000000000000008ULL
1108f569c09Spirofti #define USBN_INT_NR_PO_E			0x0000000000000004ULL
1118f569c09Spirofti #define USBN_INT_PR_PU_F			0x0000000000000002ULL
1128f569c09Spirofti #define USBN_INT_PR_PO_E			0x0000000000000001ULL
1138f569c09Spirofti 
1148f569c09Spirofti #define USBN_CLK_CTL_XXX_63_18			0xfffffffffffc0000ULL
1158f569c09Spirofti #define USBN_CLK_CTL_HCLK_RST			0x0000000000020000ULL
1168f569c09Spirofti #define USBN_CLK_CTL_P_X_ON			0x0000000000010000ULL
1178f569c09Spirofti #define USBN_CLK_CTL_P_RCLK			0x0000000000008000ULL
1188f569c09Spirofti #define USBN_CLK_CTL_P_XENBN			0x0000000000004000ULL
1198f569c09Spirofti #define USBN_CLK_CTL_P_COM_ON			0x0000000000002000ULL
1208f569c09Spirofti #define USBN_CLK_CTL_P_C_SEL			0x0000000000001800ULL
1218f569c09Spirofti #define  SET_USBN_CLK_CTL_P_C_SEL(v) (((v)<<11) & USBN_CLK_CTL_P_C_SEL)
1228f569c09Spirofti #define  GET_USBN_CLK_CTL_P_C_SEL(v) (((v) & USBN_CLK_CTL_P_C_SEL) >> 11)
1238f569c09Spirofti #define USBN_CLK_CTL_CDIV_BYP			0x0000000000000400ULL
1248f569c09Spirofti #define USBN_CLK_CTL_SD_MODE			0x0000000000000300ULL
1258f569c09Spirofti #define USBN_CLK_CTL_S_BIST			0x0000000000000080ULL
1268f569c09Spirofti #define USBN_CLK_CTL_POR			0x0000000000000040ULL
1278f569c09Spirofti #define USBN_CLK_CTL_ENABLE			0x0000000000000020ULL
1288f569c09Spirofti #define USBN_CLK_CTL_PRST			0x0000000000000010ULL
1298f569c09Spirofti #define USBN_CLK_CTL_HRST			0x0000000000000008ULL
1308f569c09Spirofti #define USBN_CLK_CTL_DIVIDE			0x0000000000000007ULL
1318f569c09Spirofti #define  SET_USBN_CLK_CTL_DIVIDE(v) (((v)<<0) & USBN_CLK_CTL_DIVIDE)
1328f569c09Spirofti #define  GET_USBN_CLK_CTL_DIVIDE(v) (((v) & USBN_CLK_CTL_DIVIDE) >> 0)
1338f569c09Spirofti /* CN50xx extension */
1348f569c09Spirofti #define USBN_CLK_CTL_DIVIDE2			0x00000000000c0000ULL
1358f569c09Spirofti #define  SET_USBN_CLK_CTL_DIVIDE2(v) (((v)<<18) & USBN_CLK_CTL_DIVIDE2)
1368f569c09Spirofti #define  GET_USBN_CLK_CTL_DIVIDE2(v) (((v) & USBN_CLK_CTL_DIVIDE2) >> 18)
1378f569c09Spirofti #define USBN_CLK_CTL_P_RTYPE			0x000000000000c000ULL
1388f569c09Spirofti #define  SET_USBN_CLK_CTL_P_RTYPE(v) (((v)<<14) & USBN_CLK_CTL_P_RTYPE)
1398f569c09Spirofti #define  GET_USBN_CLK_CTL_P_RTYPE(v) (((v) & USBN_CLK_CTL_P_RTYPE) >> 14)
1408f569c09Spirofti 
1418f569c09Spirofti #define USBN_USBP_CTL_STATUS_XXX_63_38		0xffffffc000000000ULL
1428f569c09Spirofti #define USBN_USBP_CTL_STATUS_BIST_DONE		0x0000002000000000ULL
1438f569c09Spirofti #define USBN_USBP_CTL_STATUS_BIST_ERR		0x0000001000000000ULL
1448f569c09Spirofti #define USBN_USBP_CTL_STATUS_TDATA_OUT		0x0000000f00000000ULL
1458f569c09Spirofti #define USBN_USBP_CTL_STATUS_SPARES		0x00000000e0000000ULL
1468f569c09Spirofti #define USBN_USBP_CTL_STATUS_USBC_END		0x0000000010000000ULL
1478f569c09Spirofti #define USBN_USBP_CTL_STATUS_USBP_BIST		0x0000000008000000ULL
1488f569c09Spirofti #define USBN_USBP_CTL_STATUS_TCLK		0x0000000004000000ULL
1498f569c09Spirofti #define USBN_USBP_CTL_STATUS_DP_PULLD		0x0000000002000000ULL
1508f569c09Spirofti #define USBN_USBP_CTL_STATUS_DM_PULLD		0x0000000001000000ULL
1518f569c09Spirofti #define USBN_USBP_CTL_STATUS_HST_MODE		0x0000000000800000ULL
1528f569c09Spirofti #define USBN_USBP_CTL_STATUS_TUNING		0x0000000000780000ULL
1538f569c09Spirofti #define USBN_USBP_CTL_STATUS_TX_BS_ENH		0x0000000000040000ULL
1548f569c09Spirofti #define USBN_USBP_CTL_STATUS_TX_BS_EN		0x0000000000020000ULL
1558f569c09Spirofti #define USBN_USBP_CTL_STATUS_LOOP_ENB		0x0000000000010000ULL
1568f569c09Spirofti #define USBN_USBP_CTL_STATUS_VTEST_ENB		0x0000000000008000ULL
1578f569c09Spirofti #define USBN_USBP_CTL_STATUS_BIST_ENB		0x0000000000004000ULL
1588f569c09Spirofti #define USBN_USBP_CTL_STATUS_TDATA_SEL		0x0000000000002000ULL
1598f569c09Spirofti #define USBN_USBP_CTL_STATUS_TADDR_IN		0x0000000000001e00ULL
1608f569c09Spirofti #define USBN_USBP_CTL_STATUS_TDATA_IN		0x00000000000001feULL
1618f569c09Spirofti #define USBN_USBP_CTL_STATUS_ATE_RESET		0x0000000000000001ULL
1628f569c09Spirofti /* CN50xx extension */
1638f569c09Spirofti #define USBN_USBP_CTL_STATUS_TXRISETUNE		0x8000000000000000ULL
1648f569c09Spirofti #define USBN_USBP_CTL_STATUS_TXVREFTUNE		0x7800000000000000ULL
1658f569c09Spirofti #define USBN_USBP_CTL_STATUS_TXFSLSTUNE		0x0780000000000000ULL
1668f569c09Spirofti #define USBN_USBP_CTL_STATUS_TXHSXVTUNE		0x0060000000000000ULL
1678f569c09Spirofti #define USBN_USBP_CTL_STATUS_SQRXTUNE		0x001c000000000000ULL
1688f569c09Spirofti #define USBN_USBP_CTL_STATUS_COMPDISTUNE	0x0003800000000000ULL
1698f569c09Spirofti #define USBN_USBP_CTL_STATUS_OTGTUNE		0x0000700000000000ULL
1708f569c09Spirofti #define USBN_USBP_CTL_STATUS_OTGDISABLE		0x0000080000000000ULL
1718f569c09Spirofti #define USBN_USBP_CTL_STATUS_PORTRESET		0x0000040000000000ULL
1728f569c09Spirofti #define USBN_USBP_CTL_STATUS_DRVVBUS		0x0000020000000000ULL
1738f569c09Spirofti #define USBN_USBP_CTL_STATUS_LSBIST		0x0000010000000000ULL
1748f569c09Spirofti #define USBN_USBP_CTL_STATUS_FSBIST		0x0000008000000000ULL
1758f569c09Spirofti #define USBN_USBP_CTL_STATUS_HSBIST		0x0000004000000000ULL
1768f569c09Spirofti 
1778f569c09Spirofti #define USBN_BIST_STATUS_XXX_63_3		0xfffffffffffffff8ULL
1788f569c09Spirofti #define USBN_BIST_STATUS_USBC_BIS		0x0000000000000004ULL
1798f569c09Spirofti #define USBN_BIST_STATUS_NIF_BIS		0x0000000000000002ULL
1808f569c09Spirofti #define USBN_BIST_STATUS_NOF_BIS		0x0000000000000001ULL
1818f569c09Spirofti /* CN50xx extension */
1828f569c09Spirofti #define USBN_BIST_STATUS_U2NC_BIS		0x0000000000000040ULL
1838f569c09Spirofti #define USBN_BIST_STATUS_U2NF_BIS		0x0000000000000020ULL
1848f569c09Spirofti #define USBN_BIST_STATUS_E2HC_BIS		0x0000000000000010ULL
1858f569c09Spirofti #define USBN_BIST_STATUS_N2UF_BIS		0x0000000000000008ULL
1868f569c09Spirofti 
1878f569c09Spirofti #define USBN_CTL_STATUS_XXX_63_6		0xffffffffffffffc0ULL
1888f569c09Spirofti #define USBN_CTL_STATUS_DMA_0PAG		0x0000000000000020ULL
1898f569c09Spirofti #define USBN_CTL_STATUS_DMA_STT			0x0000000000000010ULL
1908f569c09Spirofti #define USBN_CTL_STATUS_DMA_TEST		0x0000000000000008ULL
1918f569c09Spirofti #define USBN_CTL_STATUS_INV_A2			0x0000000000000004ULL
1928f569c09Spirofti #define USBN_CTL_STATUS_L2C_EMOD		0x0000000000000003ULL
1938f569c09Spirofti 
1948f569c09Spirofti #define USBN_DMA_TEST_XXX_63_40			0xffffff0000000000ULL
1958f569c09Spirofti #define USBN_DMA_TEST_DONE			0x0000008000000000ULL
1968f569c09Spirofti #define USBN_DMA_TEST_REQ			0x0000004000000000ULL
1978f569c09Spirofti #define USBN_DMA_TEST_F_ADDR			0x0000003ffff00000ULL
1988f569c09Spirofti #define USBN_DMA_TEST_COUNT			0x00000000000ffe00ULL
1998f569c09Spirofti #define USBN_DMA_TEST_CHANNEL			0x00000000000001f0ULL
2008f569c09Spirofti #define USBN_DMA_TEST_BURST			0x000000000000000fULL
2018f569c09Spirofti 
2028f569c09Spirofti /* for USBN_DMA0_INB_CHN(0..7) */
2038f569c09Spirofti #define USBN_DMA0_INB_CHNX_XXX_63_36		0xfffffff000000000ULL
2048f569c09Spirofti #define USBN_DMA0_INB_CHNX_ADDR			0x0000000fffffffffULL
2058f569c09Spirofti 
2068f569c09Spirofti /* for USBN_DMA0_OUTB_CHN(0..7) */
2078f569c09Spirofti #define USBN_DMA0_OUTB_CHNX_XXX_63_36		0xfffffff000000000ULL
2088f569c09Spirofti #define USBN_DMA0_OUTB_CHNX_ADDR		0x0000000fffffffffULL
2098f569c09Spirofti 
2100d7516bbSmiod /* ---- %b format strings */
2118f569c09Spirofti 
2128f569c09Spirofti #define	USBN_INT_BITS \
2138f569c09Spirofti 	"\020"		/* hex display */ \
2148f569c09Spirofti 	"\x25"		"ND4O_DPF" \
2158f569c09Spirofti 	"\x24"		"ND4O_DPE" \
2168f569c09Spirofti 	"\x23"		"ND4O_RPF" \
2178f569c09Spirofti 	"\x22"		"ND4O_RPE" \
2188f569c09Spirofti 	"\x21"		"LTL_F_PF" \
2198f569c09Spirofti 	"\x20"		"LTL_F_PE" \
2208f569c09Spirofti 	"\x1f"		"U2N_C_PE" \
2218f569c09Spirofti 	"\x1e"		"U2N_C_PF" \
2228f569c09Spirofti 	"\x1d"		"U2N_D_PF" \
2238f569c09Spirofti 	"\x1c"		"U2N_D_PE" \
2248f569c09Spirofti 	"\x1b"		"N2U_PE" \
2258f569c09Spirofti 	"\x1a"		"N2U_PF" \
2268f569c09Spirofti 	"\x19"		"UOD_PF" \
2278f569c09Spirofti 	"\x18"		"UOD_PE" \
2288f569c09Spirofti 	"\x17"		"RQ_Q3_E" \
2298f569c09Spirofti 	"\x16"		"RQ_Q3_F" \
2308f569c09Spirofti 	"\x15"		"RQ_Q2_E" \
2318f569c09Spirofti 	"\x14"		"RQ_Q2_F" \
2328f569c09Spirofti 	"\x13"		"RG_FI_F" \
2338f569c09Spirofti 	"\x12"		"RG_FI_E" \
2348f569c09Spirofti 	"\x11"		"LT_FI_F" \
2358f569c09Spirofti 	"\x10"		"LT_FI_E" \
2368f569c09Spirofti 	"\x0f"		"L2C_A_F" \
2378f569c09Spirofti 	"\x0e"		"L2C_S_E" \
2388f569c09Spirofti 	"\x0d"		"DCRED_F" \
2398f569c09Spirofti 	"\x0c"		"DCRED_E" \
2408f569c09Spirofti 	"\x0b"		"LT_PU_F" \
2418f569c09Spirofti 	"\x0a"		"LT_PO_E" \
2428f569c09Spirofti 	"\x09"		"NT_PU_F" \
2438f569c09Spirofti 	"\x08"		"NT_PO_E" \
2448f569c09Spirofti 	"\x07"		"PT_PU_F" \
2458f569c09Spirofti 	"\x06"		"PT_PO_E" \
2468f569c09Spirofti 	"\x05"		"LR_PU_F" \
2478f569c09Spirofti 	"\x04"		"LR_PO_E" \
2488f569c09Spirofti 	"\x03"		"NR_PU_F" \
2498f569c09Spirofti 	"\x02"		"NR_PO_E" \
2508f569c09Spirofti 	"\x01"		"PR_PU_F" \
2518f569c09Spirofti 	"\x00"		"PR_PO_E"
2528f569c09Spirofti 
2538f569c09Spirofti #define	USBN_CLK_CTL_BITS \
2548f569c09Spirofti 	"\020"		/* hex display */ \
2558f569c09Spirofti 	"\x12"		"DIVIDE2_2" \
2568f569c09Spirofti 	"\x11"		"HCLK_RST" \
2578f569c09Spirofti 	"\x10"		"RAZ" \
2588f569c09Spirofti 	"\x0e"		"P_RTYPE_2" \
2598f569c09Spirofti 	"\x0d"		"P_COM_ON" \
2608f569c09Spirofti 	"\x0b"		"P_C_SEL_2" \
2618f569c09Spirofti 	"\x0a"		"CDIV_BYP" \
2628f569c09Spirofti 	"\x08"		"SD_MODE_2" \
2638f569c09Spirofti 	"\x07"		"S_BIST" \
2648f569c09Spirofti 	"\x06"		"POR" \
2658f569c09Spirofti 	"\x05"		"ENABLE" \
2668f569c09Spirofti 	"\x04"		"PRST" \
2678f569c09Spirofti 	"\x03"		"HRST" \
2688f569c09Spirofti 	"\x00"		"DIVIDE_3"
2698f569c09Spirofti 
2708f569c09Spirofti #define	USBN_USBP_CTL_STATUS_BITS \
2718f569c09Spirofti 	"\020"		/* hex display */ \
2728f569c09Spirofti 	"\x3f"		"TXRISETUNE" \
2738f569c09Spirofti 	"\x3b"		"TXVREFTUNE_4" \
2748f569c09Spirofti 	"\x37"		"TXFSLSTUNE_4" \
2758f569c09Spirofti 	"\x35"		"TXHSXVTUNE_2" \
2768f569c09Spirofti 	"\x32"		"SQRXTUNE_3" \
2778f569c09Spirofti 	"\x2f"		"COMPDISTUNE_3" \
2788f569c09Spirofti 	"\x2c"		"OTGTUNE_3" \
2798f569c09Spirofti 	"\x2b"		"OTGDISABLE" \
2808f569c09Spirofti 	"\x2a"		"PORTRESET" \
2818f569c09Spirofti 	"\x29"		"DRVVBUS" \
2828f569c09Spirofti 	"\x28"		"LSBIST" \
2838f569c09Spirofti 	"\x27"		"FSBIST" \
2848f569c09Spirofti 	"\x26"		"HSBIST" \
2858f569c09Spirofti 	"\x25"		"BIST_DONE" \
2868f569c09Spirofti 	"\x24"		"BIST_ERR" \
2878f569c09Spirofti 	"\x20"		"TDATA_OUT_4" \
2888f569c09Spirofti 	"\x1d"		"SPARES_3" \
2898f569c09Spirofti 	"\x1c"		"USBC_END" \
2908f569c09Spirofti 	"\x1b"		"USBP_BIST" \
2918f569c09Spirofti 	"\x1a"		"TCLK" \
2928f569c09Spirofti 	"\x19"		"DP_PULLD" \
2938f569c09Spirofti 	"\x18"		"DM_PULLD" \
2948f569c09Spirofti 	"\x17"		"HST_MODE" \
2958f569c09Spirofti 	"\x13"		"TUNING_4" \
2968f569c09Spirofti 	"\x12"		"TX_BS_ENH" \
2978f569c09Spirofti 	"\x11"		"TX_BS_EN" \
2988f569c09Spirofti 	"\x10"		"LOOP_ENB" \
2998f569c09Spirofti 	"\x0f"		"VTEST_ENB" \
3008f569c09Spirofti 	"\x0e"		"BIST_ENB" \
3018f569c09Spirofti 	"\x0d"		"TDATA_SEL" \
3028f569c09Spirofti 	"\x09"		"TADDR_IN_4" \
3038f569c09Spirofti 	"\x01"		"TDATA_IN_8" \
3048f569c09Spirofti 	"\x00"		"ATE_RESET"
3058f569c09Spirofti 
3068f569c09Spirofti #define	USBN_BIST_STATUS_BITS \
3078f569c09Spirofti 	"\020"		/* hex display */ \
3088f569c09Spirofti 	"\x06"		"U2NC_BIS" \
3098f569c09Spirofti 	"\x05"		"U2NF_BIS" \
3108f569c09Spirofti 	"\x04"		"E2HC_BIS" \
3118f569c09Spirofti 	"\x03"		"N2UF_BIS" \
3128f569c09Spirofti 	"\x02"		"USBC_BIS" \
3138f569c09Spirofti 	"\x01"		"NIF_BIS" \
3148f569c09Spirofti 	"\x00"		"NOF_BIS"
3158f569c09Spirofti 
3168f569c09Spirofti #define	USBN_CTL_STATUS_BITS \
3178f569c09Spirofti 	"\020"		/* hex display */ \
3188f569c09Spirofti 	"\x05"		"DMA_0PAG" \
3198f569c09Spirofti 	"\x04"		"DMA_STT" \
3208f569c09Spirofti 	"\x03"		"DMA_TEST" \
3218f569c09Spirofti 	"\x02"		"INV_A2" \
3228f569c09Spirofti 	"\x01"		"L2C_EMOD_1" \
3238f569c09Spirofti 	"\x00"		"L2C_EMOD_0"
3248f569c09Spirofti 
3258f569c09Spirofti #define	USBN_DMA_TEST_BITS \
3268f569c09Spirofti 	"\020"		/* hex display */ \
3278f569c09Spirofti 	"\x27"		"DONE" \
3288f569c09Spirofti 	"\x26"		"REQ" \
3298f569c09Spirofti 	"\x14"		"F_ADDR_18" \
3308f569c09Spirofti 	"\x09"		"COUNT_12" \
3318f569c09Spirofti 	"\x04"		"CHANNEL_5" \
3328f569c09Spirofti 	"\x00"		"BURST_4"
3338f569c09Spirofti 
3348f569c09Spirofti /* ---- bus_space */
3358f569c09Spirofti 
3368f569c09Spirofti #define	USBN_NUNITS				1
3378f569c09Spirofti #define	USBN_BASE				0x0001180068000000ULL
3388f569c09Spirofti #define USBN_SIZE				0x800
3398f569c09Spirofti 
3408f569c09Spirofti #define USBN_INT_SUM_OFFSET			0x00000000
3418f569c09Spirofti #define USBN_INT_ENB_OFFSET			0x00000008
3428f569c09Spirofti #define USBN_CLK_CTL_OFFSET			0x00000010
3438f569c09Spirofti #define USBN_USBP_CTL_STATUS_OFFSET		0x00000018
3448f569c09Spirofti #define USBN_BIST_STATUS_OFFSET			0x000007f8
3458f569c09Spirofti 
3468f569c09Spirofti 
3478f569c09Spirofti /* ---- bus_space 2 */
3488f569c09Spirofti 
3498f569c09Spirofti #define	USBN_2_NUNITS				1
3508f569c09Spirofti #define	USBN_2_BASE				0x00016F0000000800ULL
3518f569c09Spirofti #define USBN_2_SIZE				0x098
3528f569c09Spirofti 
3538f569c09Spirofti #define USBN_CTL_STATUS_OFFSET			0x00000000
3548f569c09Spirofti #define USBN_DMA_TEST_OFFSET			0x00000008
3558f569c09Spirofti #define USBN_DMA0_INB_CHN0_OFFSET		0x00000018
3568f569c09Spirofti #define USBN_DMA0_INB_CHN1_OFFSET		0x00000020
3578f569c09Spirofti #define USBN_DMA0_INB_CHN2_OFFSET		0x00000028
3588f569c09Spirofti #define USBN_DMA0_INB_CHN3_OFFSET		0x00000030
3598f569c09Spirofti #define USBN_DMA0_INB_CHN4_OFFSET		0x00000038
3608f569c09Spirofti #define USBN_DMA0_INB_CHN5_OFFSET		0x00000040
3618f569c09Spirofti #define USBN_DMA0_INB_CHN6_OFFSET		0x00000048
3628f569c09Spirofti #define USBN_DMA0_INB_CHN7_OFFSET		0x00000050
3638f569c09Spirofti #define USBN_DMA0_OUTB_CHN0_OFFSET		0x00000058
3648f569c09Spirofti #define USBN_DMA0_OUTB_CHN1_OFFSET		0x00000060
3658f569c09Spirofti #define USBN_DMA0_OUTB_CHN2_OFFSET		0x00000068
3668f569c09Spirofti #define USBN_DMA0_OUTB_CHN3_OFFSET		0x00000070
3678f569c09Spirofti #define USBN_DMA0_OUTB_CHN4_OFFSET		0x00000078
3688f569c09Spirofti #define USBN_DMA0_OUTB_CHN5_OFFSET		0x00000080
3698f569c09Spirofti #define USBN_DMA0_OUTB_CHN6_OFFSET		0x00000088
3708f569c09Spirofti #define USBN_DMA0_OUTB_CHN7_OFFSET		0x00000090
3718f569c09Spirofti 
3728f569c09Spirofti 
3738f569c09Spirofti 
3748f569c09Spirofti /*
3758f569c09Spirofti  * Cavium Networks OCTEON CN30XX Hardware Reference Manual
3768f569c09Spirofti  * CN30XX-HM-1.0
3778f569c09Spirofti  * 21.9.2 USBC Registers
3788f569c09Spirofti  */
3798f569c09Spirofti 
3808f569c09Spirofti /*
3818f569c09Spirofti  * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3828f569c09Spirofti  * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3838f569c09Spirofti  */
3848f569c09Spirofti 
3858f569c09Spirofti /*
3868f569c09Spirofti  * USBC Registers - control the USB core
3878f569c09Spirofti  */
3888f569c09Spirofti #define USBC_GOTGCTL				0x00016F0010000000ULL
3898f569c09Spirofti #define USBC_GOTGINT				0x00016F0010000004ULL
3908f569c09Spirofti #define USBC_GAHBCFG				0x00016F0010000008ULL
3918f569c09Spirofti #define USBC_GUSBCFG				0x00016F001000000CULL
3928f569c09Spirofti #define USBC_GRSTCTL				0x00016F0010000010ULL
3938f569c09Spirofti #define USBC_GINTSTS				0x00016F0010000014ULL
3948f569c09Spirofti #define USBC_GINTMSK				0x00016F0010000018ULL
3958f569c09Spirofti #define USBC_GRXSTSRH				0x00016F001000001CULL
3968f569c09Spirofti #define USBC_GRXSTSPH				0x00016F0010000020ULL
3978f569c09Spirofti #define USBC_GRXFSIZ				0x00016F0010000024ULL
3988f569c09Spirofti #define USBC_GNPTXFSIZ				0x00016F0010000028ULL
3998f569c09Spirofti #define USBC_GNPTXSTS				0x00016F001000002CULL
4008f569c09Spirofti #define USBC_GSNPSID				0x00016F0010000040ULL
4018f569c09Spirofti #define USBC_GHWCFG1				0x00016F0010000044ULL
4028f569c09Spirofti #define USBC_GHWCFG2				0x00016F0010000048ULL
4038f569c09Spirofti #define USBC_GHWCFG3				0x00016F001000004CULL
4048f569c09Spirofti #define USBC_GHWCFG4				0x00016F0010000050ULL
4058f569c09Spirofti #define USBC_HPTXFSIZ				0x00016F0010000100ULL
4068f569c09Spirofti #define USBC_DPTXFSIZ1				0x00016F0010000104ULL
4078f569c09Spirofti #define USBC_DPTXFSIZ2				0x00016F0010000108ULL
4088f569c09Spirofti #define USBC_DPTXFSIZ3				0x00016F001000010CULL
4098f569c09Spirofti #define USBC_DPTXFSIZ4				0x00016F0010000110ULL
4108f569c09Spirofti #define USBC_HCFG				0x00016F0010000400ULL
4118f569c09Spirofti #define USBC_HFIR				0x00016F0010000404ULL
4128f569c09Spirofti #define USBC_HFNUM				0x00016F0010000408ULL
4138f569c09Spirofti #define USBC_HPTXSTS				0x00016F0010000410ULL
4148f569c09Spirofti #define USBC_HAINT				0x00016F0010000414ULL
4158f569c09Spirofti #define USBC_HAINTMSK				0x00016F0010000418ULL
4168f569c09Spirofti #define USBC_HPRT				0x00016F0010000440ULL
4178f569c09Spirofti #define USBC_HCCHAR0				0x00016F0010000500ULL
4188f569c09Spirofti #define USBC_HCCHAR1				0x00016F0010000520ULL
4198f569c09Spirofti #define USBC_HCCHAR2				0x00016F0010000540ULL
4208f569c09Spirofti #define USBC_HCCHAR3				0x00016F0010000560ULL
4218f569c09Spirofti #define USBC_HCCHAR4				0x00016F0010000580ULL
4228f569c09Spirofti #define USBC_HCCHAR5				0x00016F00100005A0ULL
4238f569c09Spirofti #define USBC_HCCHAR6				0x00016F00100005C0ULL
4248f569c09Spirofti #define USBC_HCCHAR7				0x00016F00100005E0ULL
4258f569c09Spirofti #define USBC_HCSPLT0				0x00016F0010000504ULL
4268f569c09Spirofti #define USBC_HCSPLT1				0x00016F0010000524ULL
4278f569c09Spirofti #define USBC_HCSPLT2				0x00016F0010000544ULL
4288f569c09Spirofti #define USBC_HCSPLT3				0x00016F0010000564ULL
4298f569c09Spirofti #define USBC_HCSPLT4				0x00016F0010000584ULL
4308f569c09Spirofti #define USBC_HCSPLT5				0x00016F00100005A4ULL
4318f569c09Spirofti #define USBC_HCSPLT6				0x00016F00100005C4ULL
4328f569c09Spirofti #define USBC_HCSPLT7				0x00016F00100005E4ULL
4338f569c09Spirofti #define USBC_HCINT0				0x00016F0010000508ULL
4348f569c09Spirofti #define USBC_HCINT1				0x00016F0010000528ULL
4358f569c09Spirofti #define USBC_HCINT2				0x00016F0010000548ULL
4368f569c09Spirofti #define USBC_HCINT3				0x00016F0010000568ULL
4378f569c09Spirofti #define USBC_HCINT4				0x00016F0010000588ULL
4388f569c09Spirofti #define USBC_HCINT5				0x00016F00100005A8ULL
4398f569c09Spirofti #define USBC_HCINT6				0x00016F00100005C8ULL
4408f569c09Spirofti #define USBC_HCINT7				0x00016F00100005E8ULL
4418f569c09Spirofti #define USBC_HCINTMSK0				0x00016F001000050CULL
4428f569c09Spirofti #define USBC_HCINTMSK1				0x00016F001000052CULL
4438f569c09Spirofti #define USBC_HCINTMSK2				0x00016F001000054CULL
4448f569c09Spirofti #define USBC_HCINTMSK3				0x00016F001000056CULL
4458f569c09Spirofti #define USBC_HCINTMSK4				0x00016F001000058CULL
4468f569c09Spirofti #define USBC_HCINTMSK5				0x00016F00100005ACULL
4478f569c09Spirofti #define USBC_HCINTMSK6				0x00016F00100005CCULL
4488f569c09Spirofti #define USBC_HCINTMSK7				0x00016F00100005ECULL
4498f569c09Spirofti #define USBC_HCTSIZ0				0x00016F0010000510ULL
4508f569c09Spirofti #define USBC_HCTSIZ1				0x00016F0010000530ULL
4518f569c09Spirofti #define USBC_HCTSIZ2				0x00016F0010000550ULL
4528f569c09Spirofti #define USBC_HCTSIZ3				0x00016F0010000570ULL
4538f569c09Spirofti #define USBC_HCTSIZ4				0x00016F0010000590ULL
4548f569c09Spirofti #define USBC_HCTSIZ5				0x00016F00100005B0ULL
4558f569c09Spirofti #define USBC_HCTSIZ6				0x00016F00100005D0ULL
4568f569c09Spirofti #define USBC_HCTSIZ7				0x00016F00100005F0ULL
4578f569c09Spirofti #define USBC_DCFG				0x00016F0010000800ULL
4588f569c09Spirofti #define USBC_DCTL				0x00016F0010000804ULL
4598f569c09Spirofti #define USBC_DSTS				0x00016F0010000808ULL
4608f569c09Spirofti #define USBC_DIEPMSK				0x00016F0010000810ULL
4618f569c09Spirofti #define USBC_DOEPMSK				0x00016F0010000814ULL
4628f569c09Spirofti #define USBC_DAINT				0x00016F0010000818ULL
4638f569c09Spirofti #define USBC_DAINTMSK				0x00016F001000081CULL
4648f569c09Spirofti #define USBC_DTKNQR1				0x00016F0010000820ULL
4658f569c09Spirofti #define USBC_DTKNQR2				0x00016F0010000824ULL
4668f569c09Spirofti #define USBC_DTKNQR3				0x00016F0010000830ULL
4678f569c09Spirofti #define USBC_DTKNQR4				0x00016F0010000834ULL
4688f569c09Spirofti #define USBC_DIEPCTL0				0x00016F0010000900ULL
4698f569c09Spirofti #define USBC_DIEPCTL1				0x00016F0010000920ULL
4708f569c09Spirofti #define USBC_DIEPCTL2				0x00016F0010000940ULL
4718f569c09Spirofti #define USBC_DIEPCTL3				0x00016F0010000960ULL
4728f569c09Spirofti #define USBC_DIEPCTL4				0x00016F0010000980ULL
4738f569c09Spirofti #define USBC_DIEPINT0				0x00016F0010000908ULL
4748f569c09Spirofti #define USBC_DIEPINT1				0x00016F0010000928ULL
4758f569c09Spirofti #define USBC_DIEPINT2				0x00016F0010000948ULL
4768f569c09Spirofti #define USBC_DIEPINT3				0x00016F0010000968ULL
4778f569c09Spirofti #define USBC_DIEPINT4				0x00016F0010000988ULL
4788f569c09Spirofti #define USBC_DIEPTSIZ0				0x00016F0010000910ULL
4798f569c09Spirofti #define USBC_DIEPTSIZ1				0x00016F0010000930ULL
4808f569c09Spirofti #define USBC_DIEPTSIZ2				0x00016F0010000950ULL
4818f569c09Spirofti #define USBC_DIEPTSIZ3				0x00016F0010000970ULL
4828f569c09Spirofti #define USBC_DIEPTSIZ4				0x00016F0010000990ULL
4838f569c09Spirofti #define USBC_OEPCTL0				0x00016F0010000B00ULL
4848f569c09Spirofti #define USBC_OEPCTL1				0x00016F0010000B20ULL
4858f569c09Spirofti #define USBC_OEPCTL2				0x00016F0010000B40ULL
4868f569c09Spirofti #define USBC_OEPCTL3				0x00016F0010000B60ULL
4878f569c09Spirofti #define USBC_OEPCTL4				0x00016F0010000B80ULL
4888f569c09Spirofti #define USBC_OEPINT0				0x00016F0010000B08ULL
4898f569c09Spirofti #define USBC_OEPINT1				0x00016F0010000B28ULL
4908f569c09Spirofti #define USBC_OEPINT2				0x00016F0010000B48ULL
4918f569c09Spirofti #define USBC_OEPINT3				0x00016F0010000B68ULL
4928f569c09Spirofti #define USBC_OEPINT4				0x00016F0010000B88ULL
4938f569c09Spirofti #define USBC_OEPTSIZ0				0x00016F0010000B10ULL
4948f569c09Spirofti #define USBC_OEPTSIZ1				0x00016F0010000B30ULL
4958f569c09Spirofti #define USBC_OEPTSIZ2				0x00016F0010000B50ULL
4968f569c09Spirofti #define USBC_OEPTSIZ3				0x00016F0010000B70ULL
4978f569c09Spirofti #define USBC_OEPTSIZ4				0x00016F0010000B90ULL
4988f569c09Spirofti #define USBC_PCGCCTL				0x00016F0010000E00ULL
4998f569c09Spirofti #define USBC_NPTXDFIFO0				0x00016F0010001000ULL
5008f569c09Spirofti #define USBC_NPTXDFIFO1				0x00016F0010002000ULL
5018f569c09Spirofti #define USBC_NPTXDFIFO2				0x00016F0010003000ULL
5028f569c09Spirofti #define USBC_NPTXDFIFO3				0x00016F0010004000ULL
5038f569c09Spirofti #define USBC_NPTXDFIFO4				0x00016F0010005000ULL
5048f569c09Spirofti #define USBC_NPTXDFIFO5				0x00016F0010006000ULL
5058f569c09Spirofti #define USBC_NPTXDFIFO6				0x00016F0010007000ULL
5068f569c09Spirofti #define USBC_NPTXDFIFO7				0x00016F0010008000ULL
5078f569c09Spirofti #define USBC_GRXSTSRD				0x00016F001004001CULL
5088f569c09Spirofti #define USBC_GRXSTSPD				0x00016F0010040020ULL
5098f569c09Spirofti 
5108f569c09Spirofti /* ---- register bits */
5118f569c09Spirofti 
5128f569c09Spirofti #define USBC_GOTGCTL_XXX_31_21			0xffe00000
5138f569c09Spirofti #define USBC_GOTGCTL_XXX_20			UINT32_C(0x00100000)
5148f569c09Spirofti #define USBC_GOTGCTL_BSESVLD			UINT32_C(0x00080000)
5158f569c09Spirofti #define USBC_GOTGCTL_ASESVLD			UINT32_C(0x00040000)
5168f569c09Spirofti #define USBC_GOTGCTL_DBNCTIME			UINT32_C(0x00020000)
5178f569c09Spirofti #define USBC_GOTGCTL_CONIDSTS			UINT32_C(0x00010000)
5188f569c09Spirofti #define USBC_GOTGCTL_XXX_15_12			0x0000f000
5198f569c09Spirofti #define USBC_GOTGCTL_DEVHNPEN			UINT32_C(0x00000800)
5208f569c09Spirofti #define USBC_GOTGCTL_HSTSETHNPEN		UINT32_C(0x00000400)
5218f569c09Spirofti #define USBC_GOTGCTL_HNPREQ			UINT32_C(0x00000200)
5228f569c09Spirofti #define USBC_GOTGCTL_HSTNEGSCS			UINT32_C(0x00000100)
5238f569c09Spirofti #define USBC_GOTGCTL_XXX_7_2			0x000000fc
5248f569c09Spirofti #define USBC_GOTGCTL_SESREQ			UINT32_C(0x00000002)
5258f569c09Spirofti #define USBC_GOTGCTL_SESREQSCS			UINT32_C(0x00000001)
5268f569c09Spirofti 
5278f569c09Spirofti #define USBC_GOTGINT_XXX_31_20			0xfff00000
5288f569c09Spirofti #define USBC_GOTGINT_DBNCEDONE			UINT32_C(0x00080000)
5298f569c09Spirofti #define USBC_GOTGINT_ADEVTOUTCHG		UINT32_C(0x00040000)
5308f569c09Spirofti #define USBC_GOTGINT_HSTNEGDET			UINT32_C(0x00020000)
5318f569c09Spirofti #define USBC_GOTGINT_XXX_16_10			0x0001fc00
5328f569c09Spirofti #define USBC_GOTGINT_HSTNEGSUCSTSCHNG		UINT32_C(0x00000200)
5338f569c09Spirofti #define USBC_GOTGINT_SESREQSUCSTSCHNG		UINT32_C(0x00000100)
5348f569c09Spirofti #define USBC_GOTGINT_XXX_7_3			0x000000f8
5358f569c09Spirofti #define USBC_GOTGINT_SESENDDET			UINT32_C(0x00000004)
5368f569c09Spirofti #define USBC_GOTGINT_XXX_1			UINT32_C(0x00000002)
5378f569c09Spirofti #define USBC_GOTGINT_XXX_0			UINT32_C(0x00000001)
5388f569c09Spirofti 
5398f569c09Spirofti #define USBC_GAHBCFG_XXX_31_9			0xfffffe00
5408f569c09Spirofti #define USBC_GAHBCFG_PTXFEMPLVL			UINT32_C(0x00000100)
5418f569c09Spirofti #define USBC_GAHBCFG_NPTXFEMPLVL		UINT32_C(0x00000080)
5428f569c09Spirofti #define USBC_GAHBCFG_XXX_6			UINT32_C(0x00000040)
5438f569c09Spirofti #define USBC_GAHBCFG_DMAEN			UINT32_C(0x00000020)
5448f569c09Spirofti #define USBC_GAHBCFG_HBSTLEN			0x0000001e
5458f569c09Spirofti #define USBC_GAHBCFG_HBSTLEN_OFFSET		1
5468f569c09Spirofti #define USBC_GAHBCFG_GLBLINTRMSK		UINT32_C(0x00000001)
5478f569c09Spirofti 
5488f569c09Spirofti #define USBC_GUSBCFG_XXX_31_17			0xfffe0000
5498f569c09Spirofti #define USBC_GUSBCFG_OTGI2CSEL			UINT32_C(0x00010000)
5508f569c09Spirofti #define USBC_GUSBCFG_PHYLPWRCLKSEL		UINT32_C(0x00008000)
5518f569c09Spirofti #define USBC_GUSBCFG_XXX_14			UINT32_C(0x00004000)
5528f569c09Spirofti #define USBC_GUSBCFG_USBTRDTIM			0x00003c00
5538f569c09Spirofti #define USBC_GUSBCFG_USBTRDTIM_OFFSET		10
5548f569c09Spirofti #define USBC_GUSBCFG_HNPCAP			UINT32_C(0x00000200)
5558f569c09Spirofti #define USBC_GUSBCFG_SRPCAP			UINT32_C(0x00000100)
5568f569c09Spirofti #define USBC_GUSBCFG_DDRSEL			UINT32_C(0x00000080)
5578f569c09Spirofti #define USBC_GUSBCFG_PHYSEL			UINT32_C(0x00000040)
5588f569c09Spirofti #define USBC_GUSBCFG_FSINTF			UINT32_C(0x00000020)
5598f569c09Spirofti #define USBC_GUSBCFG_ULPI_UTMI_SEL		UINT32_C(0x00000010)
5608f569c09Spirofti #define USBC_GUSBCFG_PHYIF			UINT32_C(0x00000008)
5618f569c09Spirofti #define USBC_GUSBCFG_TOUTCAL			0x00000007
5628f569c09Spirofti #define USBC_GUSBCFG_TOUTCAL_OFFSET		0
5638f569c09Spirofti 
5648f569c09Spirofti #define USBC_GRSTCTL_AHBIDLE			UINT32_C(0x80000000)
5658f569c09Spirofti #define USBC_GRSTCTL_DMAREQ			UINT32_C(0x40000000)
5668f569c09Spirofti #define USBC_GRSTCTL_XXX_29_11			0x3ffff800
5678f569c09Spirofti #define USBC_GRSTCTL_TXFNUM			0x000007c0
5688f569c09Spirofti #define USBC_GRSTCTL_TXFNUM_OFFSET		6
5698f569c09Spirofti #define USBC_GRSTCTL_TXFFLSH			UINT32_C(0x00000020)
5708f569c09Spirofti #define USBC_GRSTCTL_RXFFLSH			UINT32_C(0x00000010)
5718f569c09Spirofti #define USBC_GRSTCTL_INTKNQFLSH			UINT32_C(0x00000008)
5728f569c09Spirofti #define USBC_GRSTCTL_FRMCNTRRST			UINT32_C(0x00000004)
5738f569c09Spirofti #define USBC_GRSTCTL_HSFTRST			UINT32_C(0x00000002)
5748f569c09Spirofti #define USBC_GRSTCTL_CSFTRST			UINT32_C(0x00000001)
5758f569c09Spirofti 
5768f569c09Spirofti #define USBC_GINTSTS_WKUPINT			UINT32_C(0x80000000)
5778f569c09Spirofti #define USBC_GINTSTS_SESSREQINT			UINT32_C(0x40000000)
5788f569c09Spirofti #define USBC_GINTSTS_DISCONNINT			UINT32_C(0x20000000)
5798f569c09Spirofti #define USBC_GINTSTS_CONIDSTSCHNG		UINT32_C(0x10000000)
5808f569c09Spirofti #define USBC_GINTSTS_XXX_27			UINT32_C(0x08000000)
5818f569c09Spirofti #define USBC_GINTSTS_PTXFEMP			UINT32_C(0x04000000)
5828f569c09Spirofti #define USBC_GINTSTS_HCHINT			UINT32_C(0x02000000)
5838f569c09Spirofti #define USBC_GINTSTS_PRTINT			UINT32_C(0x01000000)
5848f569c09Spirofti #define USBC_GINTSTS_XXX_23			UINT32_C(0x00800000)
5858f569c09Spirofti #define USBC_GINTSTS_FETSUSP			UINT32_C(0x00400000)
5868f569c09Spirofti #define USBC_GINTSTS_INCOMPLP			UINT32_C(0x00200000)
5878f569c09Spirofti #define USBC_GINTSTS_INCOMPISOIN		UINT32_C(0x00100000)
5888f569c09Spirofti #define USBC_GINTSTS_OEPINT			UINT32_C(0x00080000)
5898f569c09Spirofti #define USBC_GINTSTS_IEPINT			UINT32_C(0x00040000)
5908f569c09Spirofti #define USBC_GINTSTS_EPMIS			UINT32_C(0x00020000)
5918f569c09Spirofti #define USBC_GINTSTS_XXX_16			UINT32_C(0x00010000)
5928f569c09Spirofti #define USBC_GINTSTS_EOPF			UINT32_C(0x00008000)
5938f569c09Spirofti #define USBC_GINTSTS_ISOOUTDROP			UINT32_C(0x00004000)
5948f569c09Spirofti #define USBC_GINTSTS_ENUMDONE			UINT32_C(0x00002000)
5958f569c09Spirofti #define USBC_GINTSTS_USBRST			UINT32_C(0x00001000)
5968f569c09Spirofti #define USBC_GINTSTS_USBSUSP			UINT32_C(0x00000800)
5978f569c09Spirofti #define USBC_GINTSTS_ERLYSUSP			UINT32_C(0x00000400)
5988f569c09Spirofti #define USBC_GINTSTS_I2CINT			UINT32_C(0x00000200)
5998f569c09Spirofti #define USBC_GINTSTS_ULPICKINT			UINT32_C(0x00000100)
6008f569c09Spirofti #define USBC_GINTSTS_GOUTNAKEFF			UINT32_C(0x00000080)
6018f569c09Spirofti #define USBC_GINTSTS_GINNAKEFF			UINT32_C(0x00000040)
6028f569c09Spirofti #define USBC_GINTSTS_NPTXFEMP			UINT32_C(0x00000020)
6038f569c09Spirofti #define USBC_GINTSTS_RXFLVL			UINT32_C(0x00000010)
6048f569c09Spirofti #define USBC_GINTSTS_SOF			UINT32_C(0x00000008)
6058f569c09Spirofti #define USBC_GINTSTS_OTGINT			UINT32_C(0x00000004)
6068f569c09Spirofti #define USBC_GINTSTS_MODEMIS			UINT32_C(0x00000002)
6078f569c09Spirofti #define USBC_GINTSTS_CURMOD			UINT32_C(0x00000001)
6088f569c09Spirofti #define USBC_GINTSTS_CURMOD_OFFSET		0
6098f569c09Spirofti #define  USBC_GINTSTS_CURMOD_DEVICE		0x0
6108f569c09Spirofti #define  USBC_GINTSTS_CURMOD_HOST		0x1
6118f569c09Spirofti 
6128f569c09Spirofti #define USBC_GINTMSK_WKUPINTMSK			UINT32_C(0x80000000)
6138f569c09Spirofti #define USBC_GINTMSK_SESSREQINTMSK		UINT32_C(0x40000000)
6148f569c09Spirofti #define USBC_GINTMSK_DISCONNINTMSK		UINT32_C(0x20000000)
6158f569c09Spirofti #define USBC_GINTMSK_CONIDSTSTCHNGMSK		UINT32_C(0x10000000)
6168f569c09Spirofti #define USBC_GINTMSK_XXX_27			UINT32_C(0x08000000)
6178f569c09Spirofti #define USBC_GINTMSK_PTXFEMPMSK			UINT32_C(0x04000000)
6188f569c09Spirofti #define USBC_GINTMSK_HCHINTMSK			UINT32_C(0x02000000)
6198f569c09Spirofti #define USBC_GINTMSK_PRTINTMSK			UINT32_C(0x01000000)
6208f569c09Spirofti #define USBC_GINTMSK_XXX_23			UINT32_C(0x00800000)
6218f569c09Spirofti #define USBC_GINTMSK_FETSUSPMSK			UINT32_C(0x00400000)
6228f569c09Spirofti #define USBC_GINTMSK_INCOMPISOOUTMSK		UINT32_C(0x00200000)
6238f569c09Spirofti #define USBC_GINTMSK_INCOMPISOINMSK		UINT32_C(0x00100000)
6248f569c09Spirofti #define USBC_GINTMSK_OEPINTMSK			UINT32_C(0x00080000)
6258f569c09Spirofti #define USBC_GINTMSK_INEPINTMSK			UINT32_C(0x00040000)
6268f569c09Spirofti #define USBC_GINTMSK_EPMISMSK			UINT32_C(0x00020000)
6278f569c09Spirofti #define USBC_GINTMSK_XXX_16			UINT32_C(0x00010000)
6288f569c09Spirofti #define USBC_GINTMSK_EOPFMSK			UINT32_C(0x00008000)
6298f569c09Spirofti #define USBC_GINTMSK_ISOOUTDROPMSK		UINT32_C(0x00004000)
6308f569c09Spirofti #define USBC_GINTMSK_ENUMDONEMSK		UINT32_C(0x00002000)
6318f569c09Spirofti #define USBC_GINTMSK_USBRSTMSK			UINT32_C(0x00001000)
6328f569c09Spirofti #define USBC_GINTMSK_USBSUSPMSK			UINT32_C(0x00000800)
6338f569c09Spirofti #define USBC_GINTMSK_ERLYSUSPMSK		UINT32_C(0x00000400)
6348f569c09Spirofti #define USBC_GINTMSK_I2CINT			UINT32_C(0x00000200)
6358f569c09Spirofti #define USBC_GINTMSK_ULPICKINTMSK		UINT32_C(0x00000100)
6368f569c09Spirofti #define USBC_GINTMSK_GOUTNAKEFFMSK		UINT32_C(0x00000080)
6378f569c09Spirofti #define USBC_GINTMSK_GINNAKEFFMSK		UINT32_C(0x00000040)
6388f569c09Spirofti #define USBC_GINTMSK_NPTXFEMPMSK		UINT32_C(0x00000020)
6398f569c09Spirofti #define USBC_GINTMSK_RXFLVLMSK			UINT32_C(0x00000010)
6408f569c09Spirofti #define USBC_GINTMSK_SOFMSK			UINT32_C(0x00000008)
6418f569c09Spirofti #define USBC_GINTMSK_OTGINTMSK			UINT32_C(0x00000004)
6428f569c09Spirofti #define USBC_GINTMSK_MODEMISMSK			UINT32_C(0x00000002)
6438f569c09Spirofti #define USBC_GINTMSK_XXX_0			UINT32_C(0x00000001)
6448f569c09Spirofti 
6458f569c09Spirofti #define USBC_GRXSTSRH_XXX_31_21			0xffe00000
6468f569c09Spirofti #define USBC_GRXSTSRH_PKTSTS			0x001e0000
6478f569c09Spirofti #define USBC_GRXSTSRH_PKTSTS_OFFSET		17
6488f569c09Spirofti #define USBC_GRXSTSRH_DPID			0x00018000
6498f569c09Spirofti #define USBC_GRXSTSRH_DPID_OFFSET		15
6508f569c09Spirofti #define  USBC_GRXSTSRH_DPID_DATA0		0x00
6518f569c09Spirofti #define  USBC_GRXSTSRH_DPID_DATA1		0x10
6528f569c09Spirofti #define  USBC_GRXSTSRH_DPID_DATA2		0x01
6538f569c09Spirofti #define  USBC_GRXSTSRH_DPID_MDATA		0x11
6548f569c09Spirofti #define USBC_GRXSTSRH_BCNT			0x00007ff0
6558f569c09Spirofti #define USBC_GRXSTSRH_BCNT_OFFSET		4
6568f569c09Spirofti #define USBC_GRXSTSRH_CHNUM			0x0000000f
6578f569c09Spirofti #define USBC_GRXSTSRH_CHNUM_OFFSET		0
6588f569c09Spirofti 
6598f569c09Spirofti #define USBC_GRXSTSPH_XXX_31_21			0xffe00000
6608f569c09Spirofti #define USBC_GRXSTSPH_PKTSTS			0x001e0000
6618f569c09Spirofti #define USBC_GRXSTSPH_PKTSTS_OFFSET		17
6628f569c09Spirofti #define  USBC_GRXSTSPH_PKTSTS_IN_DATA_RECV	0x2
6638f569c09Spirofti #define  USBC_GRXSTSPH_PKTSTS_IN_XFER_COMPL	0x3
6648f569c09Spirofti #define  USBC_GRXSTSPH_PKTSTS_TGL_ERR		0x5
6658f569c09Spirofti #define  USBC_GRXSTSPH_PKTSTS_CH_HLTD		0x7
6668f569c09Spirofti #define USBC_GRXSTSPH_DPID			0x00018000
6678f569c09Spirofti #define USBC_GRXSTSPH_DPID_OFFSET		15
6688f569c09Spirofti #define  USBC_GRXSTSPH_DPID_DATA0		0x00
6698f569c09Spirofti #define  USBC_GRXSTSPH_DPID_DATA1		0x10
6708f569c09Spirofti #define  USBC_GRXSTSPH_DPID_DATA2		0x01
6718f569c09Spirofti #define  USBC_GRXSTSPH_DPID_MDATA		0x11
6728f569c09Spirofti #define USBC_GRXSTSPH_BCNT			0x00007ff0
6738f569c09Spirofti #define USBC_GRXSTSPH_BCNT_OFFSET		4
6748f569c09Spirofti #define USBC_GRXSTSPH_CHNUM			0x0000000f
6758f569c09Spirofti #define USBC_GRXSTSPH_CHNUM_OFFSET		0
6768f569c09Spirofti 
6778f569c09Spirofti #define USBC_GRXSTSRD_XXX_31_25			0xfe000000
6788f569c09Spirofti #define USBC_GRXSTSRD_FN			0x01e00000
6798f569c09Spirofti #define USBC_GRXSTSRD_PKTSTS			0x001e0000
6808f569c09Spirofti #define USBC_GRXSTSRD_DPID			0x00018000
6818f569c09Spirofti #define USBC_GRXSTSRD_BCNT			0x00007ff0
6828f569c09Spirofti #define USBC_GRXSTSRD_EPNUM			0x0000000f
6838f569c09Spirofti 
6848f569c09Spirofti #define USBC_GRXSTSPD_XXX_31_25			0xfe000000
6858f569c09Spirofti #define USBC_GRXSTSPD_FN			0x01e00000
6868f569c09Spirofti #define USBC_GRXSTSPD_PKTSTS			0x001e0000
6878f569c09Spirofti #define USBC_GRXSTSPD_DPID			0x00018000
6888f569c09Spirofti #define USBC_GRXSTSPD_BCNT			0x00007ff0
6898f569c09Spirofti #define USBC_GRXSTSPD_EPNUM			0x0000000f
6908f569c09Spirofti 
6918f569c09Spirofti #define USBC_GRXFSIZ_XXX_31_16			0xffff0000
6928f569c09Spirofti #define USBC_GRXFSIZ_RXFDEP			0x0000ffff
6938f569c09Spirofti 
6948f569c09Spirofti #define USBC_GNPTXFSIZ_NPTXFEDP			0xffff0000
6958f569c09Spirofti #define USBC_GNPTXFSIZ_NPTXFEDP_OFFSET		16
6968f569c09Spirofti #define USBC_GNPTXFSIZ_NPTXFSTADDR		0x0000ffff
6978f569c09Spirofti 
6988f569c09Spirofti #define USBC_GNPTXSTS_XXX_31			UINT32_C(0x80000000)
6998f569c09Spirofti #define USBC_GNPTXSTS_NPTXQTOP_CHNUM		0x78000000
7008f569c09Spirofti #define USBC_GNPTXSTS_NPTXQTOP_ENTRY		0x06000000
7018f569c09Spirofti #define USBC_GNPTXSTS_NPTXQTOP_TERMINATE	UINT32_C(0x01000000)
7028f569c09Spirofti #define USBC_GNPTXSTS_NPTXQSPCAVAIL		0x00ff0000
7038f569c09Spirofti #define USBC_GNPTXSTS_NPTXQSPCAVAIL_OFFSET	16
7048f569c09Spirofti #define USBC_GNPTXSTS_NPTXFSPCAVAIL		0x0000ffff
7058f569c09Spirofti #define USBC_GNPTXSTS_NPTXFSPCAVAIL_OFFSET	0
7068f569c09Spirofti 
7078f569c09Spirofti #define USBC_GSNPSID_SYNOPSYSID			0xffffffff
7088f569c09Spirofti 
7098f569c09Spirofti #define USBC_GHWCFG1_EPDIR			0xffffffff
7108f569c09Spirofti 
7118f569c09Spirofti #define USBC_GHWCFG2_XXX_31			UINT32_C(0x80000000)
7128f569c09Spirofti #define USBC_GHWCFG2_TKNQDEPTH			0x7c000000
7138f569c09Spirofti #define USBC_GHWCFG2_PTXQDEPTH			0x03000000
7148f569c09Spirofti #define USBC_GHWCFG2_PTXQDEPTH_OFFSET		24
7158f569c09Spirofti #define USBC_GHWCFG2_NPTXQDEPTH			0x00c00000
7168f569c09Spirofti #define USBC_GHWCFG2_NPTXQDEPTH_OFFSET		22
7178f569c09Spirofti #define USBC_GHWCFG2_XXX_21_20			0x00300000
7188f569c09Spirofti #define USBC_GHWCFG2_DYNFIFOSIZING		UINT32_C(0x00080000)
7198f569c09Spirofti #define USBC_GHWCFG2_PERIOSUPPORT		UINT32_C(0x00040000)
7208f569c09Spirofti #define USBC_GHWCFG2_NUMHSTCHN1			0x0003c000
7218f569c09Spirofti #define USBC_GHWCFG2_NUMHSTCHN1_OFFSET		14
7228f569c09Spirofti #define USBC_GHWCFG2_NUMDEVEPS			0x00003c00
7238f569c09Spirofti #define USBC_GHWCFG2_FSPHYTYPE			0x00000300
7248f569c09Spirofti #define USBC_GHWCFG2_HSPHYTYPE			0x000000c0
7258f569c09Spirofti #define USBC_GHWCFG2_SINGPNT			UINT32_C(0x00000020)
7268f569c09Spirofti #define USBC_GHWCFG2_OTGARCH			0x00000018
7278f569c09Spirofti #define USBC_GHWCFG2_OTGARCH_OFFSET		3
7288f569c09Spirofti #define  USBC_GHWCFG2_OTGARCH_SLAVEONLY		0x0
7298f569c09Spirofti #define  USBC_GHWCFG2_OTGARCH_EXTERNALDMA	0x1
7308f569c09Spirofti #define  USBC_GHWCFG2_OTGARCH_INTERNALDMA	0x2
7318f569c09Spirofti #define  USBC_GHWCFG2_OTGARCH_RESERVED		0x3
7328f569c09Spirofti #define USBC_GHWCFG2_OTGMODE			0x00000007
7338f569c09Spirofti 
7348f569c09Spirofti #define USBC_GHWCFG3_DFIFODEPTH			0xffff0000
7358f569c09Spirofti #define USBC_GHWCFG3_DFIFODEPTH_OFFSET		16
7368f569c09Spirofti #define USBC_GHWCFG3_XXX_15_13			0x0000e000
7378f569c09Spirofti #define USBC_GHWCFG3_AHBPHYSYNC			UINT32_C(0x00001000)
7388f569c09Spirofti #define USBC_GHWCFG3_RSTTYPE			UINT32_C(0x00000800)
7398f569c09Spirofti #define USBC_GHWCFG3_OPTFEATURE			UINT32_C(0x00000400)
7408f569c09Spirofti #define USBC_GHWCFG3_VENDOR_CONTROL_INTERFACE_SUPPORT	UINT32_C(0x00000200)
7418f569c09Spirofti #define USBC_GHWCFG3_I2C_SELECTION		UINT32_C(0x00000100)
7428f569c09Spirofti #define USBC_GHWCFG3_OTGEN			UINT32_C(0x00000080)
7438f569c09Spirofti #define USBC_GHWCFG3_PKTSIZEWIDTH		0x00000070
7448f569c09Spirofti #define USBC_GHWCFG3_XFERSIZEWIDTH		0x0000000f
7458f569c09Spirofti 
7468f569c09Spirofti #define USBC_GHWCFG4_XXX_31_25			0xfe000000
7478f569c09Spirofti #define USBC_GHWCFG4_SESSENDFLTR		UINT32_C(0x01000000)
7488f569c09Spirofti #define USBC_GHWCFG4_BVAILDFLTR			UINT32_C(0x01000000)
7498f569c09Spirofti #define USBC_GHWCFG4_AVAILDFLTR			UINT32_C(0x00800000)
7508f569c09Spirofti #define USBC_GHWCFG4_VBUSVALIDFLTR		UINT32_C(0x00400000)
7518f569c09Spirofti #define USBC_GHWCFG4_IDDGFLTR			UINT32_C(0x00200000)
7528f569c09Spirofti #define USBC_GHWCFG4_NUMCTLEPS			0x000f0000
7538f569c09Spirofti #define USBC_GHWCFG4_PHYDATAWIDTH		0x0000c000
7548f569c09Spirofti #define USBC_GHWCFG4_XXX_13_6			0x00003fc0
7558f569c09Spirofti #define USBC_GHWCFG4_AHBFREQ			UINT32_C(0x00000020)
7568f569c09Spirofti #define USBC_GHWCFG4_ENABLEPWROPT		UINT32_C(0x00000010)
7578f569c09Spirofti #define USBC_GHWCFG4_NUMDEVPERIOEPS		0x0000000f
7588f569c09Spirofti 
7598f569c09Spirofti #define USBC_HPTXFSIZ_PTXFSIZE			0xffff0000
7608f569c09Spirofti #define USBC_HPTXFSIZ_PTXFSIZE_OFFSET		16
7618f569c09Spirofti #define	USBC_HPTXFSIZ_PTXFSTADDR		0x0000ffff
7628f569c09Spirofti #define USBC_HPTXFSIZ_PTXFSTADDR_OFFSET		0
7638f569c09Spirofti 
7648f569c09Spirofti /* for USBC_DPTXFSIZ(1..4) */
7658f569c09Spirofti #define USBC_DPTXFSIZX_DPTXFSIZE		0xffff0000
7668f569c09Spirofti #define USBC_DPTXFSIZX_PTXFSTADDR		0x0000ffff
7678f569c09Spirofti 
7688f569c09Spirofti #define USBC_HCFG_XXX_31_3			0xfffffff8
7698f569c09Spirofti #define USBC_HCFG_FSLSSUPP			UINT32_C(0x00000004)
7708f569c09Spirofti #define USBC_HCFG_FSLSPCLKSEL			0x00000003
7718f569c09Spirofti #define USBC_HCFG_FSLSPCLKSEL_OFFSET		0
7728f569c09Spirofti #define  USBC_HCFG_FSLSPCLKSEL_30_60_MHZ	0x00
7738f569c09Spirofti #define  USBC_HCFG_FSLSPCLKSEL_48_MHZ		0x01
7748f569c09Spirofti #define  USBC_HCFG_FSLSPCLKSEL_6_MHZ		0x10
7758f569c09Spirofti 
7768f569c09Spirofti #define USBC_HFIR_XXX_31_16			0xffff0000
7778f569c09Spirofti #define USBC_HFIR_FRINT				0x0000ffff
7788f569c09Spirofti #define USBC_HFIR_FRINT_OFFSET			0
7798f569c09Spirofti 
7808f569c09Spirofti #define USBC_HFNUM_FRREM			0xffff0000
7818f569c09Spirofti #define USBC_HFNUM_FRNUM			0x0000ffff
7828f569c09Spirofti 
7838f569c09Spirofti #define USBC_HPTXSTS_PTXQTOP			0xff000000
7848f569c09Spirofti #define USBC_HPTXSTS_PTXQSPCAVAIL		0x00ff0000
7858f569c09Spirofti #define USBC_HPTXSTS_PTXQSPCAVAIL_OFFSET	16
7868f569c09Spirofti #define USBC_HPTXSTS_PTXFSPCAVAIL		0x0000ffff
7878f569c09Spirofti #define USBC_HPTXSTS_PTXFSPCAVAIL_OFFSET	0
7888f569c09Spirofti 
7898f569c09Spirofti #define USBC_HAINT_XXX_31_16			0xffff0000
7908f569c09Spirofti /* #define USBC_HAINT_HAINT			__BITS32(15, 0) */
7918f569c09Spirofti #define USBC_HAINT_HAINT_F			UINT32_C(0x00008000)
7928f569c09Spirofti #define USBC_HAINT_HAINT_E			UINT32_C(0x00004000)
7938f569c09Spirofti #define USBC_HAINT_HAINT_D			UINT32_C(0x00002000)
7948f569c09Spirofti #define USBC_HAINT_HAINT_C			UINT32_C(0x00001000)
7958f569c09Spirofti #define USBC_HAINT_HAINT_B			UINT32_C(0x00000800)
7968f569c09Spirofti #define USBC_HAINT_HAINT_A			UINT32_C(0x00000400)
7978f569c09Spirofti #define USBC_HAINT_HAINT_9			UINT32_C(0x00000200)
7988f569c09Spirofti #define USBC_HAINT_HAINT_8			UINT32_C(0x00000100)
7998f569c09Spirofti #define USBC_HAINT_HAINT_7			UINT32_C(0x00000080)
8008f569c09Spirofti #define USBC_HAINT_HAINT_6			UINT32_C(0x00000040)
8018f569c09Spirofti #define USBC_HAINT_HAINT_5			UINT32_C(0x00000020)
8028f569c09Spirofti #define USBC_HAINT_HAINT_4			UINT32_C(0x00000010)
8038f569c09Spirofti #define USBC_HAINT_HAINT_3			UINT32_C(0x00000008)
8048f569c09Spirofti #define USBC_HAINT_HAINT_2			UINT32_C(0x00000004)
8058f569c09Spirofti #define USBC_HAINT_HAINT_1			UINT32_C(0x00000002)
8068f569c09Spirofti #define USBC_HAINT_HAINT_0			UINT32_C(0x00000001)
8078f569c09Spirofti 
8088f569c09Spirofti #define USBC_HAINTMSK_XXX_31_16			0xffff0000
8098f569c09Spirofti /*#define USBC_HAINTMSK_HAINTMSK			__BITS32(15, 0) */
8108f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_F		UINT32_C(0x00008000)
8118f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_E		UINT32_C(0x00004000)
8128f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_D		UINT32_C(0x00002000)
8138f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_C		UINT32_C(0x00001000)
8148f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_B		UINT32_C(0x00000800)
8158f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_A		UINT32_C(0x00000400)
8168f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_9		UINT32_C(0x00000200)
8178f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_8		UINT32_C(0x00000100)
8188f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_7		UINT32_C(0x00000080)
8198f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_6		UINT32_C(0x00000040)
8208f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_5		UINT32_C(0x00000020)
8218f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_4		UINT32_C(0x00000010)
8228f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_3		UINT32_C(0x00000008)
8238f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_2		UINT32_C(0x00000004)
8248f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_1		UINT32_C(0x00000002)
8258f569c09Spirofti #define USBC_HAINTMSK_HAINTMSK_0		UINT32_C(0x00000001)
8268f569c09Spirofti 
8278f569c09Spirofti #define USBC_HPRT_XXX_31_19			0xfff80000
8288f569c09Spirofti #define USBC_HPRT_PRTSPD			0x00060000
8298f569c09Spirofti #define USBC_HPRT_PRTSPD_OFFSET			17
8308f569c09Spirofti #define  USBC_HPRT_PRTSPD_HIGH			0x0
8318f569c09Spirofti #define  USBC_HPRT_PRTSPD_FULL			0x1
8328f569c09Spirofti #define  USBC_HPRT_PRTSPD_LOW			0x2
8338f569c09Spirofti #define  USBC_HPRT_PRTSPD_RESERVED		0x3
8348f569c09Spirofti #define USBC_HPRT_PRTTSTCTL			0x0001e000
8358f569c09Spirofti #define USBC_HPRT_PRTPWR			UINT32_C(0x00001000)
8368f569c09Spirofti #define USBC_HPRT_PRTLNSTS			0x00000c00
8378f569c09Spirofti #define USBC_HPRT_XXX_9				UINT32_C(0x00000200)
8388f569c09Spirofti #define USBC_HPRT_PRTRST			UINT32_C(0x00000100)
8398f569c09Spirofti #define USBC_HPRT_PRTSUSP			UINT32_C(0x00000080)
8408f569c09Spirofti #define USBC_HPRT_PRTRES			UINT32_C(0x00000040)
8418f569c09Spirofti #define USBC_HPRT_PRTOVRCURRCHNG		UINT32_C(0x00000020)
8428f569c09Spirofti #define USBC_HPRT_PRTOVRCURRACT			UINT32_C(0x00000010)
8438f569c09Spirofti #define USBC_HPRT_PRTENCHNG			UINT32_C(0x00000008)
8448f569c09Spirofti #define USBC_HPRT_PRTENA			UINT32_C(0x00000004)
8458f569c09Spirofti #define USBC_HPRT_PRTCONNDET			UINT32_C(0x00000002)
8468f569c09Spirofti #define USBC_HPRT_PRTCONNSTS			UINT32_C(0x00000001)
8478f569c09Spirofti 
8488f569c09Spirofti /* for USBC_HCCHAR(0..7) */
8498f569c09Spirofti #define USBC_HCCHARX_CHENA			UINT32_C(0x80000000)
8508f569c09Spirofti #define USBC_HCCHARX_CHDIS			UINT32_C(0x40000000)
8518f569c09Spirofti #define USBC_HCCHARX_ODDFRM			UINT32_C(0x20000000)
8528f569c09Spirofti #define USBC_HCCHARX_DEVADDR			0x1fc00000
8538f569c09Spirofti #define USBC_HCCHARX_DEVADDR_OFFSET		22
8548f569c09Spirofti #define USBC_HCCHARX_EC				0x00300000
8558f569c09Spirofti #define USBC_HCCHARX_EC_OFFSET			20
8568f569c09Spirofti #define USBC_HCCHARX_EPTYPE			0x000c0000
8578f569c09Spirofti #define USBC_HCCHARX_EPTYPE_OFFSET		18
8588f569c09Spirofti #define  USBC_HCCHARX_EPTYPE_CONTROL		0x00
8598f569c09Spirofti #define  USBC_HCCHARX_EPTYPE_ISOCHRONOUS	0x01
8608f569c09Spirofti #define  USBC_HCCHARX_EPTYPE_BULK		0x02
8618f569c09Spirofti #define  USBC_HCCHARX_EPTYPE_INTERRUPT		0x03
8628f569c09Spirofti #define USBC_HCCHARX_LSPDDEV			UINT32_C(0x00020000)
8638f569c09Spirofti #define USBC_HCCHARX_XXX_16			UINT32_C(0x00010000)
8648f569c09Spirofti #define USBC_HCCHARX_EPDIR			UINT32_C(0x00008000)
8658f569c09Spirofti #define USBC_HCCHARX_EPNUM			0x00007800
8668f569c09Spirofti #define USBC_HCCHARX_EPNUM_OFFSET		11
8678f569c09Spirofti #define USBC_HCCHARX_MPS			0x000007ff
8688f569c09Spirofti #define USBC_HCCHARX_MPS_OFFSET			0
8698f569c09Spirofti 
8708f569c09Spirofti /* for USBC_HCSPLT(0..7) */
8718f569c09Spirofti #define USBC_HCSPLTX_SPLTENA			UINT32_C(0x80000000)
8728f569c09Spirofti #define USBC_HCSPLTX_XXX_30_17			0x7ffe0000
8738f569c09Spirofti #define USBC_HCSPLTX_COMPSPLT			UINT32_C(0x00010000)
8748f569c09Spirofti #define USBC_HCSPLTX_XACTPOS			0x0000c000
8758f569c09Spirofti #define USBC_HCSPLTX_HUBADDR			0x00003f80
8768f569c09Spirofti #define USBC_HCSPLTX_PRTADDR			0x0000007f
8778f569c09Spirofti 
8788f569c09Spirofti /* for USBC_HCINT(0..7) */
8798f569c09Spirofti #define USBC_HCINTX_XXX_31_11			0xfffff800
8808f569c09Spirofti #define	USBC_HCINTX_DATATGLERR			UINT32_C(0x00000400)
8818f569c09Spirofti #define	USBC_HCINTX_FRMOVRUN			UINT32_C(0x00000200)
8828f569c09Spirofti #define	USBC_HCINTX_BBLERR			UINT32_C(0x00000100)
8838f569c09Spirofti #define	USBC_HCINTX_XACTERR			UINT32_C(0x00000080)
8848f569c09Spirofti #define	USBC_HCINTX_NYET			UINT32_C(0x00000040)
8858f569c09Spirofti #define	USBC_HCINTX_ACK				UINT32_C(0x00000020)
8868f569c09Spirofti #define	USBC_HCINTX_NAK				UINT32_C(0x00000010)
8878f569c09Spirofti #define	USBC_HCINTX_STALL			UINT32_C(0x00000008)
8888f569c09Spirofti #define	USBC_HCINTX_AHBERR			UINT32_C(0x00000004)
8898f569c09Spirofti #define	USBC_HCINTX_CHHLTD			UINT32_C(0x00000002)
8908f569c09Spirofti #define	USBC_HCINTX_XFERCOMPL			UINT32_C(0x00000001)
8918f569c09Spirofti 
8928f569c09Spirofti /* for USBC_HCINTMSK(0..7) */
8938f569c09Spirofti #define USBC_HCINTMSKX_XXX_31_11		0xfffff800
8948f569c09Spirofti #define	USBC_HCINTMSKX_DATATGLERRMSK		UINT32_C(0x00000400)
8958f569c09Spirofti #define	USBC_HCINTMSKX_FRMOVRUNMSK		UINT32_C(0x00000200)
8968f569c09Spirofti #define	USBC_HCINTMSKX_BBLERRMSK		UINT32_C(0x00000100)
8978f569c09Spirofti #define	USBC_HCINTMSKX_XACTERRMSK		UINT32_C(0x00000080)
8988f569c09Spirofti #define	USBC_HCINTMSKX_NYETMSK			UINT32_C(0x00000040)
8998f569c09Spirofti #define	USBC_HCINTMSKX_ACKMSK			UINT32_C(0x00000020)
9008f569c09Spirofti #define	USBC_HCINTMSKX_NAKMSK			UINT32_C(0x00000010)
9018f569c09Spirofti #define	USBC_HCINTMSKX_STALLMSK			UINT32_C(0x00000008)
9028f569c09Spirofti #define	USBC_HCINTMSKX_AHBERRMSK		UINT32_C(0x00000004)
9038f569c09Spirofti #define	USBC_HCINTMSKX_CHHLTDMSK		UINT32_C(0x00000002)
9048f569c09Spirofti #define	USBC_HCINTMSKX_XFERCOMPLMSK		UINT32_C(0x00000001)
9058f569c09Spirofti 
9068f569c09Spirofti /* for USBC_HCTSIZ(0..7) */
9078f569c09Spirofti #define USBC_HCTSIZX_DOPNG			UINT32_C(0x80000000)
9088f569c09Spirofti #define USBC_HCTSIZX_PID			0x60000000
9098f569c09Spirofti #define USBC_HCTSIZX_PID_OFFSET			29
9108f569c09Spirofti #define  USBC_HCTSIZX_PID_DATA0			0x00
9118f569c09Spirofti #define  USBC_HCTSIZX_PID_DATA2			0x01
9128f569c09Spirofti #define  USBC_HCTSIZX_PID_DATA1			0x02
9138f569c09Spirofti #define  USBC_HCTSIZX_PID_MDATA_SETUP		0x03
9148f569c09Spirofti #define USBC_HCTSIZX_PKTCNT			0x1ff80000
9158f569c09Spirofti #define USBC_HCTSIZX_PKTCNT_OFFSET		19
9168f569c09Spirofti #define USBC_HCTSIZX_XFERSIZE			0x0007ffff
9178f569c09Spirofti #define USBC_HCTSIZX_XFERSIZE_OFFSET		0
9188f569c09Spirofti 
9198f569c09Spirofti /* XXX Device Mode Registers */
9208f569c09Spirofti 
9218f569c09Spirofti 
9228f569c09Spirofti 
9238f569c09Spirofti /* for USBC_NPTXDFIFO(0..7) */
9248f569c09Spirofti #define USBC_NPTXDFIFOX_DATA			0xffffffff
9258f569c09Spirofti 
9268f569c09Spirofti /* ---- bus_space */
9278f569c09Spirofti 
9288f569c09Spirofti #define	USBC_BASE				0x00016F0010000000ULL
9298f569c09Spirofti #define USBC_SIZE				0x40020
9308f569c09Spirofti 
9318f569c09Spirofti #define USBC_GOTGCTL_OFFSET			0x00000000
9328f569c09Spirofti #define USBC_GOTGINT_OFFSET			0x00000004
9338f569c09Spirofti #define USBC_GAHBCFG_OFFSET			0x00000008
9348f569c09Spirofti #define USBC_GUSBCFG_OFFSET			0x0000000C
9358f569c09Spirofti #define USBC_GRSTCTL_OFFSET			0x00000010
9368f569c09Spirofti #define USBC_GINTSTS_OFFSET			0x00000014
9378f569c09Spirofti #define USBC_GINTMSK_OFFSET			0x00000018
9388f569c09Spirofti #define USBC_GRXSTSRH_OFFSET			0x0000001C
9398f569c09Spirofti #define USBC_GRXSTSPH_OFFSET			0x00000020
9408f569c09Spirofti #define USBC_GRXFSIZ_OFFSET			0x00000024
9418f569c09Spirofti #define USBC_GNPTXFSIZ_OFFSET			0x00000028
9428f569c09Spirofti #define USBC_GNPTXSTS_OFFSET			0x0000002C
9438f569c09Spirofti #define USBC_GSNPSID_OFFSET			0x00000040
9448f569c09Spirofti #define USBC_GHWCFG1_OFFSET			0x00000044
9458f569c09Spirofti #define USBC_GHWCFG2_OFFSET			0x00000048
9468f569c09Spirofti #define USBC_GHWCFG3_OFFSET			0x0000004C
9478f569c09Spirofti #define USBC_GHWCFG4_OFFSET			0x00000050
9488f569c09Spirofti #define USBC_HPTXFSIZ_OFFSET			0x00000100
9498f569c09Spirofti #define USBC_DPTXFSIZ1_OFFSET			0x00000104
9508f569c09Spirofti #define USBC_DPTXFSIZ2_OFFSET			0x00000108
9518f569c09Spirofti #define USBC_DPTXFSIZ3_OFFSET			0x0000010C
9528f569c09Spirofti #define USBC_DPTXFSIZ4_OFFSET			0x00000110
9538f569c09Spirofti #define USBC_HCFG_OFFSET			0x00000400
9548f569c09Spirofti #define USBC_HFIR_OFFSET			0x00000404
9558f569c09Spirofti #define USBC_HFNUM_OFFSET			0x00000408
9568f569c09Spirofti #define USBC_HPTXSTS_OFFSET			0x00000410
9578f569c09Spirofti #define USBC_HAINT_OFFSET			0x00000414
9588f569c09Spirofti #define USBC_HAINTMSK_OFFSET			0x00000418
9598f569c09Spirofti #define USBC_HPRT_OFFSET			0x00000440
9608f569c09Spirofti #define USBC_HCCHAR0_OFFSET			0x00000500
9618f569c09Spirofti #define USBC_HCCHAR1_OFFSET			0x00000520
9628f569c09Spirofti #define USBC_HCCHAR2_OFFSET			0x00000540
9638f569c09Spirofti #define USBC_HCCHAR3_OFFSET			0x00000560
9648f569c09Spirofti #define USBC_HCCHAR4_OFFSET			0x00000580
9658f569c09Spirofti #define USBC_HCCHAR5_OFFSET			0x000005A0
9668f569c09Spirofti #define USBC_HCCHAR6_OFFSET			0x000005C0
9678f569c09Spirofti #define USBC_HCCHAR7_OFFSET			0x000005E0
9688f569c09Spirofti #define USBC_HCSPLT0_OFFSET			0x00000504
9698f569c09Spirofti #define USBC_HCSPLT1_OFFSET			0x00000524
9708f569c09Spirofti #define USBC_HCSPLT2_OFFSET			0x00000544
9718f569c09Spirofti #define USBC_HCSPLT3_OFFSET			0x00000564
9728f569c09Spirofti #define USBC_HCSPLT4_OFFSET			0x00000584
9738f569c09Spirofti #define USBC_HCSPLT5_OFFSET			0x000005A4
9748f569c09Spirofti #define USBC_HCSPLT6_OFFSET			0x000005C4
9758f569c09Spirofti #define USBC_HCSPLT7_OFFSET			0x000005E4
9768f569c09Spirofti #define USBC_HCINT0_OFFSET			0x00000508
9778f569c09Spirofti #define USBC_HCINT1_OFFSET			0x00000528
9788f569c09Spirofti #define USBC_HCINT2_OFFSET			0x00000548
9798f569c09Spirofti #define USBC_HCINT3_OFFSET			0x00000568
9808f569c09Spirofti #define USBC_HCINT4_OFFSET			0x00000588
9818f569c09Spirofti #define USBC_HCINT5_OFFSET			0x000005A8
9828f569c09Spirofti #define USBC_HCINT6_OFFSET			0x000005C8
9838f569c09Spirofti #define USBC_HCINT7_OFFSET			0x000005E8
9848f569c09Spirofti #define USBC_HCINTMSK0_OFFSET			0x0000050C
9858f569c09Spirofti #define USBC_HCINTMSK1_OFFSET			0x0000052C
9868f569c09Spirofti #define USBC_HCINTMSK2_OFFSET			0x0000054C
9878f569c09Spirofti #define USBC_HCINTMSK3_OFFSET			0x0000056C
9888f569c09Spirofti #define USBC_HCINTMSK4_OFFSET			0x0000058C
9898f569c09Spirofti #define USBC_HCINTMSK5_OFFSET			0x000005AC
9908f569c09Spirofti #define USBC_HCINTMSK6_OFFSET			0x000005CC
9918f569c09Spirofti #define USBC_HCINTMSK7_OFFSET			0x000005EC
9928f569c09Spirofti #define USBC_HCTSIZ0_OFFSET			0x00000510
9938f569c09Spirofti #define USBC_HCTSIZ1_OFFSET			0x00000530
9948f569c09Spirofti #define USBC_HCTSIZ2_OFFSET			0x00000550
9958f569c09Spirofti #define USBC_HCTSIZ3_OFFSET			0x00000570
9968f569c09Spirofti #define USBC_HCTSIZ4_OFFSET			0x00000590
9978f569c09Spirofti #define USBC_HCTSIZ5_OFFSET			0x000005B0
9988f569c09Spirofti #define USBC_HCTSIZ6_OFFSET			0x000005D0
9998f569c09Spirofti #define USBC_HCTSIZ7_OFFSET			0x000005F0
10008f569c09Spirofti #define USBC_DCFG_OFFSET			0x00000800
10018f569c09Spirofti #define USBC_DCTL_OFFSET			0x00000804
10028f569c09Spirofti #define USBC_DSTS_OFFSET			0x00000808
10038f569c09Spirofti #define USBC_DIEPMSK_OFFSET			0x00000810
10048f569c09Spirofti #define USBC_DOEPMSK_OFFSET			0x00000814
10058f569c09Spirofti #define USBC_DAINT_OFFSET			0x00000818
10068f569c09Spirofti #define USBC_DAINTMSK_OFFSET			0x0000081C
10078f569c09Spirofti #define USBC_DTKNQR1_OFFSET			0x00000820
10088f569c09Spirofti #define USBC_DTKNQR2_OFFSET			0x00000824
10098f569c09Spirofti #define USBC_DTKNQR3_OFFSET			0x00000830
10108f569c09Spirofti #define USBC_DTKNQR4_OFFSET			0x00000834
10118f569c09Spirofti #define USBC_DIEPCTL0_OFFSET			0x00000900
10128f569c09Spirofti #define USBC_DIEPCTL1_OFFSET			0x00000920
10138f569c09Spirofti #define USBC_DIEPCTL2_OFFSET			0x00000940
10148f569c09Spirofti #define USBC_DIEPCTL3_OFFSET			0x00000960
10158f569c09Spirofti #define USBC_DIEPCTL4_OFFSET			0x00000980
10168f569c09Spirofti #define USBC_DIEPINT0_OFFSET			0x00000908
10178f569c09Spirofti #define USBC_DIEPINT1_OFFSET			0x00000928
10188f569c09Spirofti #define USBC_DIEPINT2_OFFSET			0x00000948
10198f569c09Spirofti #define USBC_DIEPINT3_OFFSET			0x00000968
10208f569c09Spirofti #define USBC_DIEPINT4_OFFSET			0x00000988
10218f569c09Spirofti #define USBC_DIEPTSIZ0_OFFSET			0x00000910
10228f569c09Spirofti #define USBC_DIEPTSIZ1_OFFSET			0x00000930
10238f569c09Spirofti #define USBC_DIEPTSIZ2_OFFSET			0x00000950
10248f569c09Spirofti #define USBC_DIEPTSIZ3_OFFSET			0x00000970
10258f569c09Spirofti #define USBC_DIEPTSIZ4_OFFSET			0x00000990
10268f569c09Spirofti #define USBC_OEPCTL0_OFFSET			0x00000B00
10278f569c09Spirofti #define USBC_OEPCTL1_OFFSET			0x00000B20
10288f569c09Spirofti #define USBC_OEPCTL2_OFFSET			0x00000B40
10298f569c09Spirofti #define USBC_OEPCTL3_OFFSET			0x00000B60
10308f569c09Spirofti #define USBC_OEPCTL4_OFFSET			0x00000B80
10318f569c09Spirofti #define USBC_OEPINT0_OFFSET			0x00000B08
10328f569c09Spirofti #define USBC_OEPINT1_OFFSET			0x00000B28
10338f569c09Spirofti #define USBC_OEPINT2_OFFSET			0x00000B48
10348f569c09Spirofti #define USBC_OEPINT3_OFFSET			0x00000B68
10358f569c09Spirofti #define USBC_OEPINT4_OFFSET			0x00000B88
10368f569c09Spirofti #define USBC_OEPTSIZ0_OFFSET			0x00000B10
10378f569c09Spirofti #define USBC_OEPTSIZ1_OFFSET			0x00000B30
10388f569c09Spirofti #define USBC_OEPTSIZ2_OFFSET			0x00000B50
10398f569c09Spirofti #define USBC_OEPTSIZ3_OFFSET			0x00000B70
10408f569c09Spirofti #define USBC_OEPTSIZ4_OFFSET			0x00000B90
10418f569c09Spirofti #define USBC_PCGCCTL_OFFSET			0x00000E00
10428f569c09Spirofti #define USBC_NPTXDFIFO0_OFFSET			0x00001000
10438f569c09Spirofti #define USBC_NPTXDFIFO1_OFFSET			0x00002000
10448f569c09Spirofti #define USBC_NPTXDFIFO2_OFFSET			0x00003000
10458f569c09Spirofti #define USBC_NPTXDFIFO3_OFFSET			0x00004000
10468f569c09Spirofti #define USBC_NPTXDFIFO4_OFFSET			0x00005000
10478f569c09Spirofti #define USBC_NPTXDFIFO5_OFFSET			0x00006000
10488f569c09Spirofti #define USBC_NPTXDFIFO6_OFFSET			0x00007000
10498f569c09Spirofti #define USBC_NPTXDFIFO7_OFFSET			0x00008000
10508f569c09Spirofti #define USBC_GRXSTSRD_OFFSET			0x0004001C
10518f569c09Spirofti #define USBC_GRXSTSPD_OFFSET			0x00040020
10528f569c09Spirofti 
10538f569c09Spirofti 
10548f569c09Spirofti #endif /* _OCTHCIREGREG_H_ */
1055