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