xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-tegra/usb.h (revision 8f9fd6caafb838bdb0d6a1c0a7e96997aec27b90)
17ae18f37SLucas Stach /*
27ae18f37SLucas Stach  * Copyright (c) 2011 The Chromium OS Authors.
37e44d932SJim Lin  * Copyright (c) 2013 NVIDIA Corporation
47ae18f37SLucas Stach  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
67ae18f37SLucas Stach  */
77ae18f37SLucas Stach 
87ae18f37SLucas Stach #ifndef _TEGRA_USB_H_
97ae18f37SLucas Stach #define _TEGRA_USB_H_
107ae18f37SLucas Stach 
11*8f9fd6caSStefan Agner /* USB Controller (USBx_CONTROLLER_) regs */
12*8f9fd6caSStefan Agner struct usb_ctlr {
13*8f9fd6caSStefan Agner 	/* 0x000 */
14*8f9fd6caSStefan Agner 	uint id;
15*8f9fd6caSStefan Agner 	uint reserved0;
16*8f9fd6caSStefan Agner 	uint host;
17*8f9fd6caSStefan Agner 	uint device;
18*8f9fd6caSStefan Agner 
19*8f9fd6caSStefan Agner 	/* 0x010 */
20*8f9fd6caSStefan Agner 	uint txbuf;
21*8f9fd6caSStefan Agner 	uint rxbuf;
22*8f9fd6caSStefan Agner 	uint reserved1[2];
23*8f9fd6caSStefan Agner 
24*8f9fd6caSStefan Agner 	/* 0x020 */
25*8f9fd6caSStefan Agner 	uint reserved2[56];
26*8f9fd6caSStefan Agner 
27*8f9fd6caSStefan Agner 	/* 0x100 */
28*8f9fd6caSStefan Agner 	u16 cap_length;
29*8f9fd6caSStefan Agner 	u16 hci_version;
30*8f9fd6caSStefan Agner 	uint hcs_params;
31*8f9fd6caSStefan Agner 	uint hcc_params;
32*8f9fd6caSStefan Agner 	uint reserved3[5];
33*8f9fd6caSStefan Agner 
34*8f9fd6caSStefan Agner 	/* 0x120 */
35*8f9fd6caSStefan Agner 	uint dci_version;
36*8f9fd6caSStefan Agner 	uint dcc_params;
37*8f9fd6caSStefan Agner 	uint reserved4[2];
38*8f9fd6caSStefan Agner 
39*8f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
40*8f9fd6caSStefan Agner 	/* 0x130 */
41*8f9fd6caSStefan Agner 	uint reserved4_2[4];
42*8f9fd6caSStefan Agner 
43*8f9fd6caSStefan Agner 	/* 0x140 */
44*8f9fd6caSStefan Agner 	uint usb_cmd;
45*8f9fd6caSStefan Agner 	uint usb_sts;
46*8f9fd6caSStefan Agner 	uint usb_intr;
47*8f9fd6caSStefan Agner 	uint frindex;
48*8f9fd6caSStefan Agner 
49*8f9fd6caSStefan Agner 	/* 0x150 */
50*8f9fd6caSStefan Agner 	uint reserved5;
51*8f9fd6caSStefan Agner 	uint periodic_list_base;
52*8f9fd6caSStefan Agner 	uint async_list_addr;
53*8f9fd6caSStefan Agner 	uint async_tt_sts;
54*8f9fd6caSStefan Agner 
55*8f9fd6caSStefan Agner 	/* 0x160 */
56*8f9fd6caSStefan Agner 	uint burst_size;
57*8f9fd6caSStefan Agner 	uint tx_fill_tuning;
58*8f9fd6caSStefan Agner 	uint reserved6;   /* is this port_sc1 on some controllers? */
59*8f9fd6caSStefan Agner 	uint icusb_ctrl;
60*8f9fd6caSStefan Agner 
61*8f9fd6caSStefan Agner 	/* 0x170 */
62*8f9fd6caSStefan Agner 	uint ulpi_viewport;
63*8f9fd6caSStefan Agner 	uint reserved7;
64*8f9fd6caSStefan Agner 	uint endpt_nak;
65*8f9fd6caSStefan Agner 	uint endpt_nak_enable;
66*8f9fd6caSStefan Agner 
67*8f9fd6caSStefan Agner 	/* 0x180 */
68*8f9fd6caSStefan Agner 	uint reserved;
69*8f9fd6caSStefan Agner 	uint port_sc1;
70*8f9fd6caSStefan Agner 	uint reserved8[6];
71*8f9fd6caSStefan Agner 
72*8f9fd6caSStefan Agner 	/* 0x1a0 */
73*8f9fd6caSStefan Agner 	uint reserved9;
74*8f9fd6caSStefan Agner 	uint otgsc;
75*8f9fd6caSStefan Agner 	uint usb_mode;
76*8f9fd6caSStefan Agner 	uint endpt_setup_stat;
77*8f9fd6caSStefan Agner 
78*8f9fd6caSStefan Agner 	/* 0x1b0 */
79*8f9fd6caSStefan Agner 	uint reserved10[20];
80*8f9fd6caSStefan Agner 
81*8f9fd6caSStefan Agner 	/* 0x200 */
82*8f9fd6caSStefan Agner 	uint reserved11[0x80];
83*8f9fd6caSStefan Agner #else
84*8f9fd6caSStefan Agner 	/* 0x130 */
85*8f9fd6caSStefan Agner 	uint usb_cmd;
86*8f9fd6caSStefan Agner 	uint usb_sts;
87*8f9fd6caSStefan Agner 	uint usb_intr;
88*8f9fd6caSStefan Agner 	uint frindex;
89*8f9fd6caSStefan Agner 
90*8f9fd6caSStefan Agner 	/* 0x140 */
91*8f9fd6caSStefan Agner 	uint reserved5;
92*8f9fd6caSStefan Agner 	uint periodic_list_base;
93*8f9fd6caSStefan Agner 	uint async_list_addr;
94*8f9fd6caSStefan Agner 	uint reserved5_1;
95*8f9fd6caSStefan Agner 
96*8f9fd6caSStefan Agner 	/* 0x150 */
97*8f9fd6caSStefan Agner 	uint burst_size;
98*8f9fd6caSStefan Agner 	uint tx_fill_tuning;
99*8f9fd6caSStefan Agner 	uint reserved6;
100*8f9fd6caSStefan Agner 	uint icusb_ctrl;
101*8f9fd6caSStefan Agner 
102*8f9fd6caSStefan Agner 	/* 0x160 */
103*8f9fd6caSStefan Agner 	uint ulpi_viewport;
104*8f9fd6caSStefan Agner 	uint reserved7[3];
105*8f9fd6caSStefan Agner 
106*8f9fd6caSStefan Agner 	/* 0x170 */
107*8f9fd6caSStefan Agner 	uint reserved;
108*8f9fd6caSStefan Agner 	uint port_sc1;
109*8f9fd6caSStefan Agner 	uint reserved8[6];
110*8f9fd6caSStefan Agner 
111*8f9fd6caSStefan Agner 	/* 0x190 */
112*8f9fd6caSStefan Agner 	uint reserved9[8];
113*8f9fd6caSStefan Agner 
114*8f9fd6caSStefan Agner 	/* 0x1b0 */
115*8f9fd6caSStefan Agner 	uint reserved10;
116*8f9fd6caSStefan Agner 	uint hostpc1_devlc;
117*8f9fd6caSStefan Agner 	uint reserved10_1[2];
118*8f9fd6caSStefan Agner 
119*8f9fd6caSStefan Agner 	/* 0x1c0 */
120*8f9fd6caSStefan Agner 	uint reserved10_2[4];
121*8f9fd6caSStefan Agner 
122*8f9fd6caSStefan Agner 	/* 0x1d0 */
123*8f9fd6caSStefan Agner 	uint reserved10_3[4];
124*8f9fd6caSStefan Agner 
125*8f9fd6caSStefan Agner 	/* 0x1e0 */
126*8f9fd6caSStefan Agner 	uint reserved10_4[4];
127*8f9fd6caSStefan Agner 
128*8f9fd6caSStefan Agner 	/* 0x1f0 */
129*8f9fd6caSStefan Agner 	uint reserved10_5;
130*8f9fd6caSStefan Agner 	uint otgsc;
131*8f9fd6caSStefan Agner 	uint usb_mode;
132*8f9fd6caSStefan Agner 	uint reserved10_6;
133*8f9fd6caSStefan Agner 
134*8f9fd6caSStefan Agner 	/* 0x200 */
135*8f9fd6caSStefan Agner 	uint endpt_nak;
136*8f9fd6caSStefan Agner 	uint endpt_nak_enable;
137*8f9fd6caSStefan Agner 	uint endpt_setup_stat;
138*8f9fd6caSStefan Agner 	uint reserved11_1[0x7D];
139*8f9fd6caSStefan Agner #endif
140*8f9fd6caSStefan Agner 
141*8f9fd6caSStefan Agner 	/* 0x400 */
142*8f9fd6caSStefan Agner 	uint susp_ctrl;
143*8f9fd6caSStefan Agner 	uint phy_vbus_sensors;
144*8f9fd6caSStefan Agner 	uint phy_vbus_wakeup_id;
145*8f9fd6caSStefan Agner 	uint phy_alt_vbus_sys;
146*8f9fd6caSStefan Agner 
147*8f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
148*8f9fd6caSStefan Agner 	/* 0x410 */
149*8f9fd6caSStefan Agner 	uint usb1_legacy_ctrl;
150*8f9fd6caSStefan Agner 	uint reserved12[4];
151*8f9fd6caSStefan Agner 
152*8f9fd6caSStefan Agner 	/* 0x424 */
153*8f9fd6caSStefan Agner 	uint ulpi_timing_ctrl_0;
154*8f9fd6caSStefan Agner 	uint ulpi_timing_ctrl_1;
155*8f9fd6caSStefan Agner 	uint reserved13[53];
156*8f9fd6caSStefan Agner #else
157*8f9fd6caSStefan Agner 
158*8f9fd6caSStefan Agner 	/* 0x410 */
159*8f9fd6caSStefan Agner 	uint usb1_legacy_ctrl;
160*8f9fd6caSStefan Agner 	uint reserved12[3];
161*8f9fd6caSStefan Agner 
162*8f9fd6caSStefan Agner 	/* 0x420 */
163*8f9fd6caSStefan Agner 	uint reserved13[56];
164*8f9fd6caSStefan Agner #endif
165*8f9fd6caSStefan Agner 
166*8f9fd6caSStefan Agner 	/* 0x500 */
167*8f9fd6caSStefan Agner 	uint reserved14[64 * 3];
168*8f9fd6caSStefan Agner 
169*8f9fd6caSStefan Agner 	/* 0x800 */
170*8f9fd6caSStefan Agner 	uint utmip_pll_cfg0;
171*8f9fd6caSStefan Agner 	uint utmip_pll_cfg1;
172*8f9fd6caSStefan Agner 	uint utmip_xcvr_cfg0;
173*8f9fd6caSStefan Agner 	uint utmip_bias_cfg0;
174*8f9fd6caSStefan Agner 
175*8f9fd6caSStefan Agner 	/* 0x810 */
176*8f9fd6caSStefan Agner 	uint utmip_hsrx_cfg0;
177*8f9fd6caSStefan Agner 	uint utmip_hsrx_cfg1;
178*8f9fd6caSStefan Agner 	uint utmip_fslsrx_cfg0;
179*8f9fd6caSStefan Agner 	uint utmip_fslsrx_cfg1;
180*8f9fd6caSStefan Agner 
181*8f9fd6caSStefan Agner 	/* 0x820 */
182*8f9fd6caSStefan Agner 	uint utmip_tx_cfg0;
183*8f9fd6caSStefan Agner 	uint utmip_misc_cfg0;
184*8f9fd6caSStefan Agner 	uint utmip_misc_cfg1;
185*8f9fd6caSStefan Agner 	uint utmip_debounce_cfg0;
186*8f9fd6caSStefan Agner 
187*8f9fd6caSStefan Agner 	/* 0x830 */
188*8f9fd6caSStefan Agner 	uint utmip_bat_chrg_cfg0;
189*8f9fd6caSStefan Agner 	uint utmip_spare_cfg0;
190*8f9fd6caSStefan Agner 	uint utmip_xcvr_cfg1;
191*8f9fd6caSStefan Agner 	uint utmip_bias_cfg1;
192*8f9fd6caSStefan Agner };
193*8f9fd6caSStefan Agner 
1947ae18f37SLucas Stach /* USB1_LEGACY_CTRL */
1957ae18f37SLucas Stach #define USB1_NO_LEGACY_MODE		1
1967ae18f37SLucas Stach 
1977ae18f37SLucas Stach #define VBUS_SENSE_CTL_SHIFT			1
1987ae18f37SLucas Stach #define VBUS_SENSE_CTL_MASK			(3 << VBUS_SENSE_CTL_SHIFT)
1997ae18f37SLucas Stach #define VBUS_SENSE_CTL_VBUS_WAKEUP		0
2007ae18f37SLucas Stach #define VBUS_SENSE_CTL_AB_SESS_VLD_OR_VBUS_WAKEUP	1
2017ae18f37SLucas Stach #define VBUS_SENSE_CTL_AB_SESS_VLD		2
2027ae18f37SLucas Stach #define VBUS_SENSE_CTL_A_SESS_VLD		3
2037ae18f37SLucas Stach 
2047ae18f37SLucas Stach /* USBx_IF_USB_SUSP_CTRL_0 */
2057ae18f37SLucas Stach #define UTMIP_PHY_ENB			        (1 << 12)
2067ae18f37SLucas Stach #define UTMIP_RESET			        (1 << 11)
2077ae18f37SLucas Stach #define USB_PHY_CLK_VALID			(1 << 7)
2087ae18f37SLucas Stach #define USB_SUSP_CLR				(1 << 5)
2097ae18f37SLucas Stach 
210*8f9fd6caSStefan Agner #if defined(CONFIG_TEGRA20) || defined(CONFIG_TEGRA30)
2117e44d932SJim Lin /* USB2_IF_USB_SUSP_CTRL_0 */
2127e44d932SJim Lin #define ULPI_PHY_ENB				(1 << 13)
2137e44d932SJim Lin 
214*8f9fd6caSStefan Agner /* USB2_IF_ULPI_TIMING_CTRL_0 */
215*8f9fd6caSStefan Agner #define ULPI_OUTPUT_PINMUX_BYP			(1 << 10)
216*8f9fd6caSStefan Agner #define ULPI_CLKOUT_PINMUX_BYP			(1 << 11)
217*8f9fd6caSStefan Agner 
218*8f9fd6caSStefan Agner /* USB2_IF_ULPI_TIMING_CTRL_1 */
219*8f9fd6caSStefan Agner #define ULPI_DATA_TRIMMER_LOAD			(1 << 0)
220*8f9fd6caSStefan Agner #define ULPI_DATA_TRIMMER_SEL(x)		(((x) & 0x7) << 1)
221*8f9fd6caSStefan Agner #define ULPI_STPDIRNXT_TRIMMER_LOAD		(1 << 16)
222*8f9fd6caSStefan Agner #define ULPI_STPDIRNXT_TRIMMER_SEL(x)	(((x) & 0x7) << 17)
223*8f9fd6caSStefan Agner #define ULPI_DIR_TRIMMER_LOAD			(1 << 24)
224*8f9fd6caSStefan Agner #define ULPI_DIR_TRIMMER_SEL(x)			(((x) & 0x7) << 25)
225*8f9fd6caSStefan Agner #endif
226*8f9fd6caSStefan Agner 
2277e44d932SJim Lin /* USBx_UTMIP_MISC_CFG0 */
2287e44d932SJim Lin #define UTMIP_SUSPEND_EXIT_ON_EDGE		(1 << 22)
2297e44d932SJim Lin 
2307ae18f37SLucas Stach /* USBx_UTMIP_MISC_CFG1 */
231*8f9fd6caSStefan Agner #define UTMIP_PHY_XTAL_CLOCKEN			(1 << 30)
232*8f9fd6caSStefan Agner 
233*8f9fd6caSStefan Agner /*
234*8f9fd6caSStefan Agner  * Tegra 3 and later: Moved to Clock and Reset register space, see
235*8f9fd6caSStefan Agner  * CLK_RST_CONTROLLER_UTMIP_PLL_CFG2_0
236*8f9fd6caSStefan Agner  */
2377ae18f37SLucas Stach #define UTMIP_PLLU_STABLE_COUNT_SHIFT		6
2387ae18f37SLucas Stach #define UTMIP_PLLU_STABLE_COUNT_MASK		\
2397ae18f37SLucas Stach 				(0xfff << UTMIP_PLLU_STABLE_COUNT_SHIFT)
240*8f9fd6caSStefan Agner /*
241*8f9fd6caSStefan Agner  * Tegra 3 and later: Moved to Clock and Reset register space, see
242*8f9fd6caSStefan Agner  * CLK_RST_CONTROLLER_UTMIP_PLL_CFG2_0
243*8f9fd6caSStefan Agner  */
2447ae18f37SLucas Stach #define UTMIP_PLL_ACTIVE_DLY_COUNT_SHIFT	18
2457ae18f37SLucas Stach #define UTMIP_PLL_ACTIVE_DLY_COUNT_MASK		\
2467ae18f37SLucas Stach 				(0x1f << UTMIP_PLL_ACTIVE_DLY_COUNT_SHIFT)
2477ae18f37SLucas Stach 
2487ae18f37SLucas Stach /* USBx_UTMIP_PLL_CFG1_0 */
249*8f9fd6caSStefan Agner /* Tegra 3 and later: Moved to Clock and Reset register space */
2507ae18f37SLucas Stach #define UTMIP_PLLU_ENABLE_DLY_COUNT_SHIFT	27
2517ae18f37SLucas Stach #define UTMIP_PLLU_ENABLE_DLY_COUNT_MASK	\
2527e44d932SJim Lin 				(0x1f << UTMIP_PLLU_ENABLE_DLY_COUNT_SHIFT)
2537ae18f37SLucas Stach #define UTMIP_XTAL_FREQ_COUNT_SHIFT		0
2547ae18f37SLucas Stach #define UTMIP_XTAL_FREQ_COUNT_MASK		0xfff
2557ae18f37SLucas Stach 
2567e44d932SJim Lin /* USBx_UTMIP_BIAS_CFG0_0 */
2577e44d932SJim Lin #define UTMIP_HSDISCON_LEVEL_MSB		(1 << 24)
2587e44d932SJim Lin #define UTMIP_OTGPD				(1 << 11)
2597e44d932SJim Lin #define UTMIP_BIASPD				(1 << 10)
2607e44d932SJim Lin #define UTMIP_HSDISCON_LEVEL_SHIFT		2
2617e44d932SJim Lin #define UTMIP_HSDISCON_LEVEL_MASK		\
2627e44d932SJim Lin 				(0x3 << UTMIP_HSDISCON_LEVEL_SHIFT)
2637e44d932SJim Lin #define UTMIP_HSSQUELCH_LEVEL_SHIFT		0
2647e44d932SJim Lin #define UTMIP_HSSQUELCH_LEVEL_MASK		\
2657e44d932SJim Lin 				(0x3 << UTMIP_HSSQUELCH_LEVEL_SHIFT)
2667e44d932SJim Lin 
2677ae18f37SLucas Stach /* USBx_UTMIP_BIAS_CFG1_0 */
2687e44d932SJim Lin #define UTMIP_FORCE_PDTRK_POWERDOWN		1
2697ae18f37SLucas Stach #define UTMIP_BIAS_PDTRK_COUNT_SHIFT		3
2707ae18f37SLucas Stach #define UTMIP_BIAS_PDTRK_COUNT_MASK		\
2717ae18f37SLucas Stach 				(0x1f << UTMIP_BIAS_PDTRK_COUNT_SHIFT)
2727ae18f37SLucas Stach 
2737e44d932SJim Lin /* USBx_UTMIP_DEBOUNCE_CFG0_0 */
2747ae18f37SLucas Stach #define UTMIP_DEBOUNCE_CFG0_SHIFT		0
2757ae18f37SLucas Stach #define UTMIP_DEBOUNCE_CFG0_MASK		0xffff
2767ae18f37SLucas Stach 
2777ae18f37SLucas Stach /* USBx_UTMIP_TX_CFG0_0 */
2787ae18f37SLucas Stach #define UTMIP_FS_PREAMBLE_J			(1 << 19)
2797ae18f37SLucas Stach 
2807ae18f37SLucas Stach /* USBx_UTMIP_BAT_CHRG_CFG0_0 */
2817ae18f37SLucas Stach #define UTMIP_PD_CHRG				1
2827ae18f37SLucas Stach 
2837ae18f37SLucas Stach /* USBx_UTMIP_SPARE_CFG0_0 */
2847ae18f37SLucas Stach #define FUSE_SETUP_SEL				(1 << 3)
2857ae18f37SLucas Stach 
2867ae18f37SLucas Stach /* USBx_UTMIP_HSRX_CFG0_0 */
2877ae18f37SLucas Stach #define UTMIP_IDLE_WAIT_SHIFT			15
2887ae18f37SLucas Stach #define UTMIP_IDLE_WAIT_MASK			(0x1f << UTMIP_IDLE_WAIT_SHIFT)
2897ae18f37SLucas Stach #define UTMIP_ELASTIC_LIMIT_SHIFT		10
2907ae18f37SLucas Stach #define UTMIP_ELASTIC_LIMIT_MASK		\
2917ae18f37SLucas Stach 				(0x1f << UTMIP_ELASTIC_LIMIT_SHIFT)
2927ae18f37SLucas Stach 
2937e44d932SJim Lin /* USBx_UTMIP_HSRX_CFG1_0 */
2947ae18f37SLucas Stach #define UTMIP_HS_SYNC_START_DLY_SHIFT		1
2957ae18f37SLucas Stach #define UTMIP_HS_SYNC_START_DLY_MASK		\
2967e44d932SJim Lin 				(0x1f << UTMIP_HS_SYNC_START_DLY_SHIFT)
2977ae18f37SLucas Stach 
2987ae18f37SLucas Stach /* USBx_CONTROLLER_2_USB2D_ICUSB_CTRL_0 */
2997ae18f37SLucas Stach #define IC_ENB1					(1 << 3)
3007ae18f37SLucas Stach 
301*8f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
302*8f9fd6caSStefan Agner /* PORTSC1, USB1 */
303*8f9fd6caSStefan Agner #define PTS1_SHIFT				31
304*8f9fd6caSStefan Agner #define PTS1_MASK				(1 << PTS1_SHIFT)
305*8f9fd6caSStefan Agner #define STS1					(1 << 30)
306*8f9fd6caSStefan Agner 
307*8f9fd6caSStefan Agner /* PORTSC, USB2, USB3 */
308*8f9fd6caSStefan Agner #define PTS_SHIFT		30
309*8f9fd6caSStefan Agner #define PTS_MASK		(3U << PTS_SHIFT)
310*8f9fd6caSStefan Agner #define STS			(1 << 29)
311*8f9fd6caSStefan Agner #else
312*8f9fd6caSStefan Agner /* USB2D_HOSTPC1_DEVLC_0 */
313*8f9fd6caSStefan Agner #define PTS_SHIFT				29
314*8f9fd6caSStefan Agner #define PTS_MASK				(0x7U << PTS_SHIFT)
315*8f9fd6caSStefan Agner #define STS						(1 << 28)
316*8f9fd6caSStefan Agner #endif
317*8f9fd6caSStefan Agner 
3187ae18f37SLucas Stach #define PTS_UTMI	0
3197ae18f37SLucas Stach #define PTS_RESERVED	1
3207ae18f37SLucas Stach #define PTS_ULPI	2
3217ae18f37SLucas Stach #define PTS_ICUSB_SER	3
3227e44d932SJim Lin #define PTS_HSIC	4
3237ae18f37SLucas Stach 
3247e44d932SJim Lin /* SB2_CONTROLLER_2_USB2D_PORTSC1_0 */
3257ae18f37SLucas Stach #define WKOC				(1 << 22)
3267ae18f37SLucas Stach #define WKDS				(1 << 21)
3277ae18f37SLucas Stach #define WKCN				(1 << 20)
3287ae18f37SLucas Stach 
3297ae18f37SLucas Stach /* USBx_UTMIP_XCVR_CFG0_0 */
3307ae18f37SLucas Stach #define UTMIP_FORCE_PD_POWERDOWN		(1 << 14)
3317ae18f37SLucas Stach #define UTMIP_FORCE_PD2_POWERDOWN		(1 << 16)
3327ae18f37SLucas Stach #define UTMIP_FORCE_PDZI_POWERDOWN		(1 << 18)
3337e44d932SJim Lin #define UTMIP_XCVR_LSBIAS_SE			(1 << 21)
3347e44d932SJim Lin #define UTMIP_XCVR_HSSLEW_MSB_SHIFT		25
3357e44d932SJim Lin #define UTMIP_XCVR_HSSLEW_MSB_MASK		\
3367e44d932SJim Lin 			(0x7f << UTMIP_XCVR_HSSLEW_MSB_SHIFT)
3377e44d932SJim Lin #define UTMIP_XCVR_SETUP_MSB_SHIFT	22
3387e44d932SJim Lin #define UTMIP_XCVR_SETUP_MSB_MASK	(0x7 << UTMIP_XCVR_SETUP_MSB_SHIFT)
3397e44d932SJim Lin #define UTMIP_XCVR_SETUP_SHIFT		0
3407e44d932SJim Lin #define UTMIP_XCVR_SETUP_MASK		(0xf << UTMIP_XCVR_SETUP_SHIFT)
3417ae18f37SLucas Stach 
3427ae18f37SLucas Stach /* USBx_UTMIP_XCVR_CFG1_0 */
3437e44d932SJim Lin #define UTMIP_XCVR_TERM_RANGE_ADJ_SHIFT		18
3447e44d932SJim Lin #define UTMIP_XCVR_TERM_RANGE_ADJ_MASK		\
3457e44d932SJim Lin 			(0xf << UTMIP_XCVR_TERM_RANGE_ADJ_SHIFT)
3467ae18f37SLucas Stach #define UTMIP_FORCE_PDDISC_POWERDOWN		(1 << 0)
3477ae18f37SLucas Stach #define UTMIP_FORCE_PDCHRP_POWERDOWN		(1 << 2)
3487ae18f37SLucas Stach #define UTMIP_FORCE_PDDR_POWERDOWN		(1 << 4)
3497ae18f37SLucas Stach 
3507ae18f37SLucas Stach /* USB3_IF_USB_PHY_VBUS_SENSORS_0 */
3517ae18f37SLucas Stach #define VBUS_VLD_STS			(1 << 26)
3527ae18f37SLucas Stach 
3537ae18f37SLucas Stach /* Setup USB on the board */
35416297cfbSMateusz Zalega int usb_process_devicetree(const void *blob);
3557ae18f37SLucas Stach 
3567ae18f37SLucas Stach #endif	/* _TEGRA_USB_H_ */
357