xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-tegra/usb.h (revision cc35734358540a1bbaf042fdf9f4cb2de17389ed)
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 
118f9fd6caSStefan Agner /* USB Controller (USBx_CONTROLLER_) regs */
128f9fd6caSStefan Agner struct usb_ctlr {
138f9fd6caSStefan Agner 	/* 0x000 */
148f9fd6caSStefan Agner 	uint id;
158f9fd6caSStefan Agner 	uint reserved0;
168f9fd6caSStefan Agner 	uint host;
178f9fd6caSStefan Agner 	uint device;
188f9fd6caSStefan Agner 
198f9fd6caSStefan Agner 	/* 0x010 */
208f9fd6caSStefan Agner 	uint txbuf;
218f9fd6caSStefan Agner 	uint rxbuf;
228f9fd6caSStefan Agner 	uint reserved1[2];
238f9fd6caSStefan Agner 
248f9fd6caSStefan Agner 	/* 0x020 */
258f9fd6caSStefan Agner 	uint reserved2[56];
268f9fd6caSStefan Agner 
278f9fd6caSStefan Agner 	/* 0x100 */
288f9fd6caSStefan Agner 	u16 cap_length;
298f9fd6caSStefan Agner 	u16 hci_version;
308f9fd6caSStefan Agner 	uint hcs_params;
318f9fd6caSStefan Agner 	uint hcc_params;
328f9fd6caSStefan Agner 	uint reserved3[5];
338f9fd6caSStefan Agner 
348f9fd6caSStefan Agner 	/* 0x120 */
358f9fd6caSStefan Agner 	uint dci_version;
368f9fd6caSStefan Agner 	uint dcc_params;
378f9fd6caSStefan Agner 	uint reserved4[2];
388f9fd6caSStefan Agner 
398f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
408f9fd6caSStefan Agner 	/* 0x130 */
418f9fd6caSStefan Agner 	uint reserved4_2[4];
428f9fd6caSStefan Agner 
438f9fd6caSStefan Agner 	/* 0x140 */
448f9fd6caSStefan Agner 	uint usb_cmd;
458f9fd6caSStefan Agner 	uint usb_sts;
468f9fd6caSStefan Agner 	uint usb_intr;
478f9fd6caSStefan Agner 	uint frindex;
488f9fd6caSStefan Agner 
498f9fd6caSStefan Agner 	/* 0x150 */
508f9fd6caSStefan Agner 	uint reserved5;
518f9fd6caSStefan Agner 	uint periodic_list_base;
528f9fd6caSStefan Agner 	uint async_list_addr;
538f9fd6caSStefan Agner 	uint async_tt_sts;
548f9fd6caSStefan Agner 
558f9fd6caSStefan Agner 	/* 0x160 */
568f9fd6caSStefan Agner 	uint burst_size;
578f9fd6caSStefan Agner 	uint tx_fill_tuning;
588f9fd6caSStefan Agner 	uint reserved6;   /* is this port_sc1 on some controllers? */
598f9fd6caSStefan Agner 	uint icusb_ctrl;
608f9fd6caSStefan Agner 
618f9fd6caSStefan Agner 	/* 0x170 */
628f9fd6caSStefan Agner 	uint ulpi_viewport;
638f9fd6caSStefan Agner 	uint reserved7;
648f9fd6caSStefan Agner 	uint endpt_nak;
658f9fd6caSStefan Agner 	uint endpt_nak_enable;
668f9fd6caSStefan Agner 
678f9fd6caSStefan Agner 	/* 0x180 */
688f9fd6caSStefan Agner 	uint reserved;
698f9fd6caSStefan Agner 	uint port_sc1;
708f9fd6caSStefan Agner 	uint reserved8[6];
718f9fd6caSStefan Agner 
728f9fd6caSStefan Agner 	/* 0x1a0 */
738f9fd6caSStefan Agner 	uint reserved9;
748f9fd6caSStefan Agner 	uint otgsc;
758f9fd6caSStefan Agner 	uint usb_mode;
768f9fd6caSStefan Agner 	uint endpt_setup_stat;
778f9fd6caSStefan Agner 
788f9fd6caSStefan Agner 	/* 0x1b0 */
798f9fd6caSStefan Agner 	uint reserved10[20];
808f9fd6caSStefan Agner 
818f9fd6caSStefan Agner 	/* 0x200 */
828f9fd6caSStefan Agner 	uint reserved11[0x80];
838f9fd6caSStefan Agner #else
848f9fd6caSStefan Agner 	/* 0x130 */
858f9fd6caSStefan Agner 	uint usb_cmd;
868f9fd6caSStefan Agner 	uint usb_sts;
878f9fd6caSStefan Agner 	uint usb_intr;
888f9fd6caSStefan Agner 	uint frindex;
898f9fd6caSStefan Agner 
908f9fd6caSStefan Agner 	/* 0x140 */
918f9fd6caSStefan Agner 	uint reserved5;
928f9fd6caSStefan Agner 	uint periodic_list_base;
938f9fd6caSStefan Agner 	uint async_list_addr;
948f9fd6caSStefan Agner 	uint reserved5_1;
958f9fd6caSStefan Agner 
968f9fd6caSStefan Agner 	/* 0x150 */
978f9fd6caSStefan Agner 	uint burst_size;
988f9fd6caSStefan Agner 	uint tx_fill_tuning;
998f9fd6caSStefan Agner 	uint reserved6;
1008f9fd6caSStefan Agner 	uint icusb_ctrl;
1018f9fd6caSStefan Agner 
1028f9fd6caSStefan Agner 	/* 0x160 */
1038f9fd6caSStefan Agner 	uint ulpi_viewport;
1048f9fd6caSStefan Agner 	uint reserved7[3];
1058f9fd6caSStefan Agner 
1068f9fd6caSStefan Agner 	/* 0x170 */
1078f9fd6caSStefan Agner 	uint reserved;
1088f9fd6caSStefan Agner 	uint port_sc1;
1098f9fd6caSStefan Agner 	uint reserved8[6];
1108f9fd6caSStefan Agner 
1118f9fd6caSStefan Agner 	/* 0x190 */
1128f9fd6caSStefan Agner 	uint reserved9[8];
1138f9fd6caSStefan Agner 
1148f9fd6caSStefan Agner 	/* 0x1b0 */
1158f9fd6caSStefan Agner 	uint reserved10;
1168f9fd6caSStefan Agner 	uint hostpc1_devlc;
1178f9fd6caSStefan Agner 	uint reserved10_1[2];
1188f9fd6caSStefan Agner 
1198f9fd6caSStefan Agner 	/* 0x1c0 */
1208f9fd6caSStefan Agner 	uint reserved10_2[4];
1218f9fd6caSStefan Agner 
1228f9fd6caSStefan Agner 	/* 0x1d0 */
1238f9fd6caSStefan Agner 	uint reserved10_3[4];
1248f9fd6caSStefan Agner 
1258f9fd6caSStefan Agner 	/* 0x1e0 */
1268f9fd6caSStefan Agner 	uint reserved10_4[4];
1278f9fd6caSStefan Agner 
1288f9fd6caSStefan Agner 	/* 0x1f0 */
1298f9fd6caSStefan Agner 	uint reserved10_5;
1308f9fd6caSStefan Agner 	uint otgsc;
1318f9fd6caSStefan Agner 	uint usb_mode;
1328f9fd6caSStefan Agner 	uint reserved10_6;
1338f9fd6caSStefan Agner 
1348f9fd6caSStefan Agner 	/* 0x200 */
1358f9fd6caSStefan Agner 	uint endpt_nak;
1368f9fd6caSStefan Agner 	uint endpt_nak_enable;
1378f9fd6caSStefan Agner 	uint endpt_setup_stat;
1388f9fd6caSStefan Agner 	uint reserved11_1[0x7D];
1398f9fd6caSStefan Agner #endif
1408f9fd6caSStefan Agner 
1418f9fd6caSStefan Agner 	/* 0x400 */
1428f9fd6caSStefan Agner 	uint susp_ctrl;
1438f9fd6caSStefan Agner 	uint phy_vbus_sensors;
1448f9fd6caSStefan Agner 	uint phy_vbus_wakeup_id;
1458f9fd6caSStefan Agner 	uint phy_alt_vbus_sys;
1468f9fd6caSStefan Agner 
1478f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
1488f9fd6caSStefan Agner 	/* 0x410 */
1498f9fd6caSStefan Agner 	uint usb1_legacy_ctrl;
1508f9fd6caSStefan Agner 	uint reserved12[4];
1518f9fd6caSStefan Agner 
1528f9fd6caSStefan Agner 	/* 0x424 */
1538f9fd6caSStefan Agner 	uint ulpi_timing_ctrl_0;
1548f9fd6caSStefan Agner 	uint ulpi_timing_ctrl_1;
1558f9fd6caSStefan Agner 	uint reserved13[53];
1568f9fd6caSStefan Agner #else
1578f9fd6caSStefan Agner 
1588f9fd6caSStefan Agner 	/* 0x410 */
1598f9fd6caSStefan Agner 	uint usb1_legacy_ctrl;
1608f9fd6caSStefan Agner 	uint reserved12[3];
1618f9fd6caSStefan Agner 
1628f9fd6caSStefan Agner 	/* 0x420 */
1638f9fd6caSStefan Agner 	uint reserved13[56];
1648f9fd6caSStefan Agner #endif
1658f9fd6caSStefan Agner 
1668f9fd6caSStefan Agner 	/* 0x500 */
1678f9fd6caSStefan Agner 	uint reserved14[64 * 3];
1688f9fd6caSStefan Agner 
1698f9fd6caSStefan Agner 	/* 0x800 */
1708f9fd6caSStefan Agner 	uint utmip_pll_cfg0;
1718f9fd6caSStefan Agner 	uint utmip_pll_cfg1;
1728f9fd6caSStefan Agner 	uint utmip_xcvr_cfg0;
1738f9fd6caSStefan Agner 	uint utmip_bias_cfg0;
1748f9fd6caSStefan Agner 
1758f9fd6caSStefan Agner 	/* 0x810 */
1768f9fd6caSStefan Agner 	uint utmip_hsrx_cfg0;
1778f9fd6caSStefan Agner 	uint utmip_hsrx_cfg1;
1788f9fd6caSStefan Agner 	uint utmip_fslsrx_cfg0;
1798f9fd6caSStefan Agner 	uint utmip_fslsrx_cfg1;
1808f9fd6caSStefan Agner 
1818f9fd6caSStefan Agner 	/* 0x820 */
1828f9fd6caSStefan Agner 	uint utmip_tx_cfg0;
1838f9fd6caSStefan Agner 	uint utmip_misc_cfg0;
1848f9fd6caSStefan Agner 	uint utmip_misc_cfg1;
1858f9fd6caSStefan Agner 	uint utmip_debounce_cfg0;
1868f9fd6caSStefan Agner 
1878f9fd6caSStefan Agner 	/* 0x830 */
1888f9fd6caSStefan Agner 	uint utmip_bat_chrg_cfg0;
1898f9fd6caSStefan Agner 	uint utmip_spare_cfg0;
1908f9fd6caSStefan Agner 	uint utmip_xcvr_cfg1;
1918f9fd6caSStefan Agner 	uint utmip_bias_cfg1;
1928f9fd6caSStefan Agner };
1938f9fd6caSStefan 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 
2108f9fd6caSStefan 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 
2148f9fd6caSStefan Agner /* USB2_IF_ULPI_TIMING_CTRL_0 */
2158f9fd6caSStefan Agner #define ULPI_OUTPUT_PINMUX_BYP			(1 << 10)
2168f9fd6caSStefan Agner #define ULPI_CLKOUT_PINMUX_BYP			(1 << 11)
2178f9fd6caSStefan Agner 
2188f9fd6caSStefan Agner /* USB2_IF_ULPI_TIMING_CTRL_1 */
2198f9fd6caSStefan Agner #define ULPI_DATA_TRIMMER_LOAD			(1 << 0)
2208f9fd6caSStefan Agner #define ULPI_DATA_TRIMMER_SEL(x)		(((x) & 0x7) << 1)
2218f9fd6caSStefan Agner #define ULPI_STPDIRNXT_TRIMMER_LOAD		(1 << 16)
2228f9fd6caSStefan Agner #define ULPI_STPDIRNXT_TRIMMER_SEL(x)	(((x) & 0x7) << 17)
2238f9fd6caSStefan Agner #define ULPI_DIR_TRIMMER_LOAD			(1 << 24)
2248f9fd6caSStefan Agner #define ULPI_DIR_TRIMMER_SEL(x)			(((x) & 0x7) << 25)
2258f9fd6caSStefan Agner #endif
2268f9fd6caSStefan 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 */
2318f9fd6caSStefan Agner #define UTMIP_PHY_XTAL_CLOCKEN			(1 << 30)
2328f9fd6caSStefan Agner 
2338f9fd6caSStefan Agner /*
2348f9fd6caSStefan Agner  * Tegra 3 and later: Moved to Clock and Reset register space, see
2358f9fd6caSStefan Agner  * CLK_RST_CONTROLLER_UTMIP_PLL_CFG2_0
2368f9fd6caSStefan 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)
2408f9fd6caSStefan Agner /*
2418f9fd6caSStefan Agner  * Tegra 3 and later: Moved to Clock and Reset register space, see
2428f9fd6caSStefan Agner  * CLK_RST_CONTROLLER_UTMIP_PLL_CFG2_0
2438f9fd6caSStefan 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 */
2498f9fd6caSStefan 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
269*7aaa5a60STom Warren #define UTMIP_BIAS_DEBOUNCE_TIMESCALE_SHIFT	8
270*7aaa5a60STom Warren #define UTMIP_BIAS_DEBOUNCE_TIMESCALE_MASK	\
271*7aaa5a60STom Warren 				(0x3f << UTMIP_BIAS_DEBOUNCE_TIMESCALE_SHIFT)
2727ae18f37SLucas Stach #define UTMIP_BIAS_PDTRK_COUNT_SHIFT		3
2737ae18f37SLucas Stach #define UTMIP_BIAS_PDTRK_COUNT_MASK		\
2747ae18f37SLucas Stach 				(0x1f << UTMIP_BIAS_PDTRK_COUNT_SHIFT)
2757ae18f37SLucas Stach 
2767e44d932SJim Lin /* USBx_UTMIP_DEBOUNCE_CFG0_0 */
2777ae18f37SLucas Stach #define UTMIP_DEBOUNCE_CFG0_SHIFT		0
2787ae18f37SLucas Stach #define UTMIP_DEBOUNCE_CFG0_MASK		0xffff
2797ae18f37SLucas Stach 
2807ae18f37SLucas Stach /* USBx_UTMIP_TX_CFG0_0 */
2817ae18f37SLucas Stach #define UTMIP_FS_PREAMBLE_J			(1 << 19)
2827ae18f37SLucas Stach 
2837ae18f37SLucas Stach /* USBx_UTMIP_BAT_CHRG_CFG0_0 */
2847ae18f37SLucas Stach #define UTMIP_PD_CHRG				1
2857ae18f37SLucas Stach 
2867ae18f37SLucas Stach /* USBx_UTMIP_SPARE_CFG0_0 */
2877ae18f37SLucas Stach #define FUSE_SETUP_SEL				(1 << 3)
2887ae18f37SLucas Stach 
2897ae18f37SLucas Stach /* USBx_UTMIP_HSRX_CFG0_0 */
2907ae18f37SLucas Stach #define UTMIP_IDLE_WAIT_SHIFT			15
2917ae18f37SLucas Stach #define UTMIP_IDLE_WAIT_MASK			(0x1f << UTMIP_IDLE_WAIT_SHIFT)
2927ae18f37SLucas Stach #define UTMIP_ELASTIC_LIMIT_SHIFT		10
2937ae18f37SLucas Stach #define UTMIP_ELASTIC_LIMIT_MASK		\
2947ae18f37SLucas Stach 				(0x1f << UTMIP_ELASTIC_LIMIT_SHIFT)
2957ae18f37SLucas Stach 
2967e44d932SJim Lin /* USBx_UTMIP_HSRX_CFG1_0 */
2977ae18f37SLucas Stach #define UTMIP_HS_SYNC_START_DLY_SHIFT		1
2987ae18f37SLucas Stach #define UTMIP_HS_SYNC_START_DLY_MASK		\
2997e44d932SJim Lin 				(0x1f << UTMIP_HS_SYNC_START_DLY_SHIFT)
3007ae18f37SLucas Stach 
3017ae18f37SLucas Stach /* USBx_CONTROLLER_2_USB2D_ICUSB_CTRL_0 */
3027ae18f37SLucas Stach #define IC_ENB1					(1 << 3)
3037ae18f37SLucas Stach 
3048f9fd6caSStefan Agner #ifdef CONFIG_TEGRA20
3058f9fd6caSStefan Agner /* PORTSC1, USB1 */
3068f9fd6caSStefan Agner #define PTS1_SHIFT				31
3078f9fd6caSStefan Agner #define PTS1_MASK				(1 << PTS1_SHIFT)
3088f9fd6caSStefan Agner #define STS1					(1 << 30)
3098f9fd6caSStefan Agner 
3108f9fd6caSStefan Agner /* PORTSC, USB2, USB3 */
3118f9fd6caSStefan Agner #define PTS_SHIFT		30
3128f9fd6caSStefan Agner #define PTS_MASK		(3U << PTS_SHIFT)
3138f9fd6caSStefan Agner #define STS			(1 << 29)
3148f9fd6caSStefan Agner #else
3158f9fd6caSStefan Agner /* USB2D_HOSTPC1_DEVLC_0 */
3168f9fd6caSStefan Agner #define PTS_SHIFT				29
3178f9fd6caSStefan Agner #define PTS_MASK				(0x7U << PTS_SHIFT)
3188f9fd6caSStefan Agner #define STS						(1 << 28)
3198f9fd6caSStefan Agner #endif
3208f9fd6caSStefan Agner 
3217ae18f37SLucas Stach #define PTS_UTMI	0
3227ae18f37SLucas Stach #define PTS_RESERVED	1
3237ae18f37SLucas Stach #define PTS_ULPI	2
3247ae18f37SLucas Stach #define PTS_ICUSB_SER	3
3257e44d932SJim Lin #define PTS_HSIC	4
3267ae18f37SLucas Stach 
3277e44d932SJim Lin /* SB2_CONTROLLER_2_USB2D_PORTSC1_0 */
3287ae18f37SLucas Stach #define WKOC				(1 << 22)
3297ae18f37SLucas Stach #define WKDS				(1 << 21)
3307ae18f37SLucas Stach #define WKCN				(1 << 20)
3317ae18f37SLucas Stach 
3327ae18f37SLucas Stach /* USBx_UTMIP_XCVR_CFG0_0 */
3337ae18f37SLucas Stach #define UTMIP_FORCE_PD_POWERDOWN		(1 << 14)
3347ae18f37SLucas Stach #define UTMIP_FORCE_PD2_POWERDOWN		(1 << 16)
3357ae18f37SLucas Stach #define UTMIP_FORCE_PDZI_POWERDOWN		(1 << 18)
3367e44d932SJim Lin #define UTMIP_XCVR_LSBIAS_SE			(1 << 21)
3377e44d932SJim Lin #define UTMIP_XCVR_HSSLEW_MSB_SHIFT		25
3387e44d932SJim Lin #define UTMIP_XCVR_HSSLEW_MSB_MASK		\
3397e44d932SJim Lin 			(0x7f << UTMIP_XCVR_HSSLEW_MSB_SHIFT)
3407e44d932SJim Lin #define UTMIP_XCVR_SETUP_MSB_SHIFT	22
3417e44d932SJim Lin #define UTMIP_XCVR_SETUP_MSB_MASK	(0x7 << UTMIP_XCVR_SETUP_MSB_SHIFT)
3427e44d932SJim Lin #define UTMIP_XCVR_SETUP_SHIFT		0
3437e44d932SJim Lin #define UTMIP_XCVR_SETUP_MASK		(0xf << UTMIP_XCVR_SETUP_SHIFT)
3447ae18f37SLucas Stach 
3457ae18f37SLucas Stach /* USBx_UTMIP_XCVR_CFG1_0 */
3467e44d932SJim Lin #define UTMIP_XCVR_TERM_RANGE_ADJ_SHIFT		18
3477e44d932SJim Lin #define UTMIP_XCVR_TERM_RANGE_ADJ_MASK		\
3487e44d932SJim Lin 			(0xf << UTMIP_XCVR_TERM_RANGE_ADJ_SHIFT)
3497ae18f37SLucas Stach #define UTMIP_FORCE_PDDISC_POWERDOWN		(1 << 0)
3507ae18f37SLucas Stach #define UTMIP_FORCE_PDCHRP_POWERDOWN		(1 << 2)
3517ae18f37SLucas Stach #define UTMIP_FORCE_PDDR_POWERDOWN		(1 << 4)
3527ae18f37SLucas Stach 
3537ae18f37SLucas Stach /* USB3_IF_USB_PHY_VBUS_SENSORS_0 */
3547ae18f37SLucas Stach #define VBUS_VLD_STS			(1 << 26)
355a4539a2aSStephen Warren #define VBUS_B_SESS_VLD_SW_VALUE	(1 << 12)
356a4539a2aSStephen Warren #define VBUS_B_SESS_VLD_SW_EN		(1 << 11)
3577ae18f37SLucas Stach 
3587ae18f37SLucas Stach /* Setup USB on the board */
35916297cfbSMateusz Zalega int usb_process_devicetree(const void *blob);
3607ae18f37SLucas Stach 
3617ae18f37SLucas Stach #endif	/* _TEGRA_USB_H_ */
362