xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-mxs/regs-usbphy.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Freescale i.MX28 USB PHY Register Definitions
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
5*4882a593Smuzhiyun  * on behalf of DENX Software Engineering GmbH
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #ifndef __REGS_USBPHY_H__
11*4882a593Smuzhiyun #define __REGS_USBPHY_H__
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun struct mxs_usbphy_regs {
14*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_pwd)
15*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_tx)
16*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_rx)
17*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_ctrl)
18*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_status)
19*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_debug)
20*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_debug0_status)
21*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_debug1)
22*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_version)
23*4882a593Smuzhiyun 	mxs_reg_32(hw_usbphy_ip)
24*4882a593Smuzhiyun };
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #define	USBPHY_PWD_RXPWDRX				(1 << 20)
27*4882a593Smuzhiyun #define	USBPHY_PWD_RXPWDDIFF				(1 << 19)
28*4882a593Smuzhiyun #define	USBPHY_PWD_RXPWD1PT1				(1 << 18)
29*4882a593Smuzhiyun #define	USBPHY_PWD_RXPWDENV				(1 << 17)
30*4882a593Smuzhiyun #define	USBPHY_PWD_TXPWDV2I				(1 << 12)
31*4882a593Smuzhiyun #define	USBPHY_PWD_TXPWDIBIAS				(1 << 11)
32*4882a593Smuzhiyun #define	USBPHY_PWD_TXPWDFS				(1 << 10)
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #define	USBPHY_TX_USBPHY_TX_EDGECTRL_OFFSET		26
35*4882a593Smuzhiyun #define	USBPHY_TX_USBPHY_TX_EDGECTRL_MASK		(0x7 << 26)
36*4882a593Smuzhiyun #define	USBPHY_TX_USBPHY_TX_SYNC_INVERT			(1 << 25)
37*4882a593Smuzhiyun #define	USBPHY_TX_USBPHY_TX_SYNC_MUX			(1 << 24)
38*4882a593Smuzhiyun #define	USBPHY_TX_TXENCAL45DP				(1 << 21)
39*4882a593Smuzhiyun #define	USBPHY_TX_TXCAL45DP_OFFSET			16
40*4882a593Smuzhiyun #define	USBPHY_TX_TXCAL45DP_MASK			(0xf << 16)
41*4882a593Smuzhiyun #define	USBPHY_TX_TXENCAL45DM				(1 << 13)
42*4882a593Smuzhiyun #define	USBPHY_TX_TXCAL45DM_OFFSET			8
43*4882a593Smuzhiyun #define	USBPHY_TX_TXCAL45DM_MASK			(0xf << 8)
44*4882a593Smuzhiyun #define	USBPHY_TX_D_CAL_OFFSET				0
45*4882a593Smuzhiyun #define	USBPHY_TX_D_CAL_MASK				0xf
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #define	USBPHY_RX_RXDBYPASS				(1 << 22)
48*4882a593Smuzhiyun #define	USBPHY_RX_DISCONADJ_OFFSET			4
49*4882a593Smuzhiyun #define	USBPHY_RX_DISCONADJ_MASK			(0x7 << 4)
50*4882a593Smuzhiyun #define	USBPHY_RX_ENVADJ_OFFSET				0
51*4882a593Smuzhiyun #define	USBPHY_RX_ENVADJ_MASK				0x7
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun #define	USBPHY_CTRL_SFTRST				(1 << 31)
54*4882a593Smuzhiyun #define	USBPHY_CTRL_CLKGATE				(1 << 30)
55*4882a593Smuzhiyun #define	USBPHY_CTRL_UTMI_SUSPENDM			(1 << 29)
56*4882a593Smuzhiyun #define	USBPHY_CTRL_HOST_FORCE_LS_SE0			(1 << 28)
57*4882a593Smuzhiyun #define	USBPHY_CTRL_ENAUTOSET_USBCLKS			(1 << 26)
58*4882a593Smuzhiyun #define	USBPHY_CTRL_ENAUTOCLR_USBCLKGATE		(1 << 25)
59*4882a593Smuzhiyun #define	USBPHY_CTRL_FSDLL_RST_EN			(1 << 24)
60*4882a593Smuzhiyun #define	USBPHY_CTRL_ENVBUSCHG_WKUP			(1 << 23)
61*4882a593Smuzhiyun #define	USBPHY_CTRL_ENIDCHG_WKUP			(1 << 22)
62*4882a593Smuzhiyun #define	USBPHY_CTRL_ENDPDMCHG_WKUP			(1 << 21)
63*4882a593Smuzhiyun #define	USBPHY_CTRL_ENAUTOCLR_PHY_PWD			(1 << 20)
64*4882a593Smuzhiyun #define	USBPHY_CTRL_ENAUTOCLR_CLKGATE			(1 << 19)
65*4882a593Smuzhiyun #define	USBPHY_CTRL_ENAUTO_PWRON_PLL			(1 << 18)
66*4882a593Smuzhiyun #define	USBPHY_CTRL_WAKEUP_IRQ				(1 << 17)
67*4882a593Smuzhiyun #define	USBPHY_CTRL_ENIRQWAKEUP				(1 << 16)
68*4882a593Smuzhiyun #define	USBPHY_CTRL_ENUTMILEVEL3			(1 << 15)
69*4882a593Smuzhiyun #define	USBPHY_CTRL_ENUTMILEVEL2			(1 << 14)
70*4882a593Smuzhiyun #define	USBPHY_CTRL_DATA_ON_LRADC			(1 << 13)
71*4882a593Smuzhiyun #define	USBPHY_CTRL_DEVPLUGIN_IRQ			(1 << 12)
72*4882a593Smuzhiyun #define	USBPHY_CTRL_ENIRQDEVPLUGIN			(1 << 11)
73*4882a593Smuzhiyun #define	USBPHY_CTRL_RESUME_IRQ				(1 << 10)
74*4882a593Smuzhiyun #define	USBPHY_CTRL_ENIRQRESUMEDETECT			(1 << 9)
75*4882a593Smuzhiyun #define	USBPHY_CTRL_RESUMEIRQSTICKY			(1 << 8)
76*4882a593Smuzhiyun #define	USBPHY_CTRL_ENOTGIDDETECT			(1 << 7)
77*4882a593Smuzhiyun #define	USBPHY_CTRL_DEVPLUGIN_POLARITY			(1 << 5)
78*4882a593Smuzhiyun #define	USBPHY_CTRL_ENDEVPLUGINDETECT			(1 << 4)
79*4882a593Smuzhiyun #define	USBPHY_CTRL_HOSTDISCONDETECT_IRQ		(1 << 3)
80*4882a593Smuzhiyun #define	USBPHY_CTRL_ENIRQHOSTDISCON			(1 << 2)
81*4882a593Smuzhiyun #define	USBPHY_CTRL_ENHOSTDISCONDETECT			(1 << 1)
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #define	USBPHY_STATUS_RESUME_STATUS			(1 << 10)
84*4882a593Smuzhiyun #define	USBPHY_STATUS_OTGID_STATUS			(1 << 8)
85*4882a593Smuzhiyun #define	USBPHY_STATUS_DEVPLUGIN_STATUS			(1 << 6)
86*4882a593Smuzhiyun #define	USBPHY_STATUS_HOSTDISCONDETECT_STATUS		(1 << 3)
87*4882a593Smuzhiyun 
88*4882a593Smuzhiyun #define	USBPHY_DEBUG_CLKGATE				(1 << 30)
89*4882a593Smuzhiyun #define	USBPHY_DEBUG_HOST_RESUME_DEBUG			(1 << 29)
90*4882a593Smuzhiyun #define	USBPHY_DEBUG_SQUELCHRESETLENGTH_OFFSET		25
91*4882a593Smuzhiyun #define	USBPHY_DEBUG_SQUELCHRESETLENGTH_MASK		(0xf << 25)
92*4882a593Smuzhiyun #define	USBPHY_DEBUG_ENSQUELCHRESET			(1 << 24)
93*4882a593Smuzhiyun #define	USBPHY_DEBUG_SQUELCHRESETCOUNT_OFFSET		16
94*4882a593Smuzhiyun #define	USBPHY_DEBUG_SQUELCHRESETCOUNT_MASK		(0x1f << 16)
95*4882a593Smuzhiyun #define	USBPHY_DEBUG_ENTX2RXCOUNT			(1 << 12)
96*4882a593Smuzhiyun #define	USBPHY_DEBUG_TX2RXCOUNT_OFFSET			8
97*4882a593Smuzhiyun #define	USBPHY_DEBUG_TX2RXCOUNT_MASK			(0xf << 8)
98*4882a593Smuzhiyun #define	USBPHY_DEBUG_ENHSTPULLDOWN_OFFSET		4
99*4882a593Smuzhiyun #define	USBPHY_DEBUG_ENHSTPULLDOWN_MASK			(0x3 << 4)
100*4882a593Smuzhiyun #define	USBPHY_DEBUG_HSTPULLDOWN_OFFSET			2
101*4882a593Smuzhiyun #define	USBPHY_DEBUG_HSTPULLDOWN_MASK			(0x3 << 2)
102*4882a593Smuzhiyun #define	USBPHY_DEBUG_DEBUG_INTERFACE_HOLD		(1 << 1)
103*4882a593Smuzhiyun #define	USBPHY_DEBUG_OTGIDPIDLOCK			(1 << 0)
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_SQUELCH_COUNT_OFFSET	26
106*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_SQUELCH_COUNT_MASK		(0x3f << 26)
107*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_UTMI_RXERROR_OFFSET	16
108*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_UTMI_RXERROR_MASK		(0x3ff << 16)
109*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_LOOP_BACK_OFFSET		0
110*4882a593Smuzhiyun #define	USBPHY_DEBUG0_STATUS_LOOP_BACK_MASK		0xffff
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun #define	USBPHY_DEBUG1_ENTAILADJVD_OFFSET		13
113*4882a593Smuzhiyun #define	USBPHY_DEBUG1_ENTAILADJVD_MASK			(0x3 << 13)
114*4882a593Smuzhiyun #define	USBPHY_DEBUG1_ENTX2TX				(1 << 12)
115*4882a593Smuzhiyun #define	USBPHY_DEBUG1_DBG_ADDRESS_OFFSET		0
116*4882a593Smuzhiyun #define	USBPHY_DEBUG1_DBG_ADDRESS_MASK			0xf
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun #define	USBPHY_VERSION_MAJOR_MASK			(0xff << 24)
119*4882a593Smuzhiyun #define	USBPHY_VERSION_MAJOR_OFFSET			24
120*4882a593Smuzhiyun #define	USBPHY_VERSION_MINOR_MASK			(0xff << 16)
121*4882a593Smuzhiyun #define	USBPHY_VERSION_MINOR_OFFSET			16
122*4882a593Smuzhiyun #define	USBPHY_VERSION_STEP_MASK			0xffff
123*4882a593Smuzhiyun #define	USBPHY_VERSION_STEP_OFFSET			0
124*4882a593Smuzhiyun 
125*4882a593Smuzhiyun #define	USBPHY_IP_DIV_SEL_OFFSET			23
126*4882a593Smuzhiyun #define	USBPHY_IP_DIV_SEL_MASK				(0x3 << 23)
127*4882a593Smuzhiyun #define	USBPHY_IP_LFR_SEL_OFFSET			21
128*4882a593Smuzhiyun #define	USBPHY_IP_LFR_SEL_MASK				(0x3 << 21)
129*4882a593Smuzhiyun #define	USBPHY_IP_CP_SEL_OFFSET				19
130*4882a593Smuzhiyun #define	USBPHY_IP_CP_SEL_MASK				(0x3 << 19)
131*4882a593Smuzhiyun #define	USBPHY_IP_TSTI_TX_DP				(1 << 18)
132*4882a593Smuzhiyun #define	USBPHY_IP_TSTI_TX_DM				(1 << 17)
133*4882a593Smuzhiyun #define	USBPHY_IP_ANALOG_TESTMODE			(1 << 16)
134*4882a593Smuzhiyun #define	USBPHY_IP_EN_USB_CLKS				(1 << 2)
135*4882a593Smuzhiyun #define	USBPHY_IP_PLL_LOCKED				(1 << 1)
136*4882a593Smuzhiyun #define	USBPHY_IP_PLL_POWER				(1 << 0)
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun #endif	/* __REGS_USBPHY_H__ */
139