]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/include/asm/arch-tegra30/usb.h
dfu, nand: add medium specific polltimeout function
[karo-tx-uboot.git] / arch / arm / include / asm / arch-tegra30 / usb.h
1 /*
2  * Copyright (c) 2011 The Chromium OS Authors.
3  * Copyright (c) 2013 NVIDIA Corporation
4  * See file CREDITS for list of people who contributed to this
5  * project.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 2 of
10  * the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20  * MA 02111-1307 USA
21  */
22
23 #ifndef _TEGRA30_USB_H_
24 #define _TEGRA30_USB_H_
25
26 /* USB Controller (USBx_CONTROLLER_) regs */
27 struct usb_ctlr {
28         /* 0x000 */
29         uint id;
30         uint reserved0;
31         uint host;
32         uint device;
33
34         /* 0x010 */
35         uint txbuf;
36         uint rxbuf;
37         uint reserved1[2];
38
39         /* 0x020 */
40         uint reserved2[56];
41
42         /* 0x100 */
43         u16 cap_length;
44         u16 hci_version;
45         uint hcs_params;
46         uint hcc_params;
47         uint reserved3[5];
48
49         /* 0x120 */
50         uint dci_version;
51         uint dcc_params;
52         uint reserved4[2];
53
54         /* 0x130 */
55         uint usb_cmd;
56         uint usb_sts;
57         uint usb_intr;
58         uint frindex;
59
60         /* 0x140 */
61         uint reserved5;
62         uint periodic_list_base;
63         uint async_list_addr;
64         uint reserved5_1;
65
66         /* 0x150 */
67         uint burst_size;
68         uint tx_fill_tuning;
69         uint reserved6;
70         uint icusb_ctrl;
71
72         /* 0x160 */
73         uint ulpi_viewport;
74         uint reserved7[3];
75
76         /* 0x170 */
77         uint reserved;
78         uint port_sc1;
79         uint reserved8[6];
80
81         /* 0x190 */
82         uint reserved9[8];
83
84         /* 0x1b0 */
85         uint reserved10;
86         uint hostpc1_devlc;
87         uint reserved10_1[2];
88
89         /* 0x1c0 */
90         uint reserved10_2[4];
91
92         /* 0x1d0 */
93         uint reserved10_3[4];
94
95         /* 0x1e0 */
96         uint reserved10_4[4];
97
98         /* 0x1f0 */
99         uint reserved10_5;
100         uint otgsc;
101         uint usb_mode;
102         uint reserved10_6;
103
104         /* 0x200 */
105         uint endpt_nak;
106         uint endpt_nak_enable;
107         uint endpt_setup_stat;
108         uint reserved11_1[0x7D];
109
110         /* 0x400 */
111         uint susp_ctrl;
112         uint phy_vbus_sensors;
113         uint phy_vbus_wakeup_id;
114         uint phy_alt_vbus_sys;
115
116         /* 0x410 */
117         uint usb1_legacy_ctrl;
118         uint reserved12[3];
119
120         /* 0x420 */
121         uint reserved13[56];
122
123         /* 0x500 */
124         uint reserved14[64 * 3];
125
126         /* 0x800 */
127         uint utmip_pll_cfg0;
128         uint utmip_pll_cfg1;
129         uint utmip_xcvr_cfg0;
130         uint utmip_bias_cfg0;
131
132         /* 0x810 */
133         uint utmip_hsrx_cfg0;
134         uint utmip_hsrx_cfg1;
135         uint utmip_fslsrx_cfg0;
136         uint utmip_fslsrx_cfg1;
137
138         /* 0x820 */
139         uint utmip_tx_cfg0;
140         uint utmip_misc_cfg0;
141         uint utmip_misc_cfg1;
142         uint utmip_debounce_cfg0;
143
144         /* 0x830 */
145         uint utmip_bat_chrg_cfg0;
146         uint utmip_spare_cfg0;
147         uint utmip_xcvr_cfg1;
148         uint utmip_bias_cfg1;
149 };
150
151 /* USB2_IF_ULPI_TIMING_CTRL_0 */
152 #define ULPI_OUTPUT_PINMUX_BYP                  (1 << 10)
153 #define ULPI_CLKOUT_PINMUX_BYP                  (1 << 11)
154
155 /* USB2_IF_ULPI_TIMING_CTRL_1 */
156 #define ULPI_DATA_TRIMMER_LOAD                  (1 << 0)
157 #define ULPI_DATA_TRIMMER_SEL(x)                (((x) & 0x7) << 1)
158 #define ULPI_STPDIRNXT_TRIMMER_LOAD             (1 << 16)
159 #define ULPI_STPDIRNXT_TRIMMER_SEL(x)   (((x) & 0x7) << 17)
160 #define ULPI_DIR_TRIMMER_LOAD                   (1 << 24)
161 #define ULPI_DIR_TRIMMER_SEL(x)                 (((x) & 0x7) << 25)
162
163 /* USB2D_HOSTPC1_DEVLC_0 */
164 #define PTS_SHIFT                               29
165 #define PTS_MASK                                (0x7U << PTS_SHIFT)
166
167 #define STS                                     (1 << 28)
168 #endif /* _TEGRA30_USB_H_ */