]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/blob - arch/arm/mach-tegra/include/mach/tegra_usb_pad_ctrl.h
0fc8a00278d81a42041937e670438483c01ad32c
[sojka/nv-tegra/linux-3.10.git] / arch / arm / mach-tegra / include / mach / tegra_usb_pad_ctrl.h
1 /*
2  * Copyright (c) 2013-2016, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This software is licensed under the terms of the GNU General Public
5  * License version 2, as published by the Free Software Foundation, and
6  * may be copied, distributed, and modified under those terms.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  */
14
15 #ifndef _TEGRA_USB_PAD_CTRL_INTERFACE_H_
16 #define _TEGRA_USB_PAD_CTRL_INTERFACE_H_
17
18 #include <mach/xusb.h>
19 #include <linux/tegra_prod.h>
20
21 #define UTMIPLL_HW_PWRDN_CFG0                   0x52c
22 #define   UTMIPLL_LOCK                          (1<<31)
23 #define   UTMIPLL_HW_PWRDN_CFG0_IDDQ_OVERRIDE  (1<<1)
24 #define   UTMIPLL_HW_PWRDN_CFG0_IDDQ_SWCTL     (1<<0)
25
26 #define UTMIP_BIAS_CFG0         0x80c
27 #define UTMIP_OTGPD                     (1 << 11)
28 #define UTMIP_BIASPD                    (1 << 10)
29 #define UTMIP_HSSQUELCH_LEVEL(x)        (((x) & 0x3) << 0)
30 #define UTMIP_HSDISCON_LEVEL(x) (((x) & 0x3) << 2)
31 #define UTMIP_HSDISCON_LEVEL_MSB        (1 << 24)
32
33 /* Encode lane width of each RP in nibbles starting with RP0 at lowest */
34 #define PCIE_LANES_X4_X1                0x14
35 #define PCIE_LANES_X4_X0                0x04
36 #define PCIE_LANES_X2_X1                0x12
37 #define PCIE_LANES_X2_X0                0x02
38 #define PCIE_LANES_X0_X1                0x10
39
40 enum padctl_lane {
41         PEX_P0 = 0,
42         PEX_P1,
43         PEX_P2,
44         PEX_P3,
45         PEX_P4,
46         PEX_P5,
47         PEX_P6,
48         SATA_S0,
49         LANE_MIN = PEX_P0,
50         LANE_MAX = SATA_S0
51 };
52
53 static inline enum padctl_lane usb3_laneowner_to_lane_enum(u8 laneowner)
54 {
55         if (laneowner == 0x0)
56                 return PEX_P0;
57         else if (laneowner == 0x1)
58                 return PEX_P1;
59         else if (laneowner == 0x2)
60                 return PEX_P2;
61         else if (laneowner == 0x3)
62                 return PEX_P3;
63         else if (laneowner == 0x4)
64                 return PEX_P4;
65         else if (laneowner == 0x5)
66                 return PEX_P5;
67         else if (laneowner == 0x6)
68                 return PEX_P6;
69         else if (laneowner == 0x8)
70                 return SATA_S0;
71         else
72                 return -1; /* unknown */
73 }
74
75 /* PCIe/SATA pad phy */
76 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
77 #define SS_PAD_COUNT    4
78 #define USB3_LANE_NOT_ENABLED   0xF
79 #define SATA_LANE       (0x8 << 12)
80
81 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_0  0x360
82 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_IDDQ  (1 << 0)
83 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_SLEEP (0x3 << 1)
84 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_ENABLE        (1 << 3)
85 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_PWR_OVRD      (1 << 4)
86 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_LOCKDET_STATUS        (1 << 15)
87 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_FREQ_MDIV_MASK        (0x3 << 16)
88 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_FREQ_NDIV     (25 << 20)
89 #define XUSB_PADCTL_UPHY_PLL_P0_CTL1_PLL0_FREQ_NDIV_MASK        (0xFF << 20)
90
91 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_0  0x364
92 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_PLL0_CAL_EN        (1 << 0)
93 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_PLL0_CAL_DONE      (1 << 1)
94 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_PLL0_CAL_OVRD      (1 << 2)
95 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_CAL_CTRL_MASK      (0xFFFFFF << 4)
96 #define XUSB_PADCTL_UPHY_PLL_P0_CTL2_PLL0_CAL_CTRL      (0x136 << 4)
97
98 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_0  0x36C
99 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_PLL0_REFCLK_SEL_MASK       (0xF << 4)
100 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_PLL0_REFCLKBUF_EN  (1 << 8)
101 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_PLL0_TXCLKREF_SEL  (0x2 << 12)
102 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_PLL0_TXCLKREF_SEL_MASK     (0x3 << 12)
103 #define XUSB_PADCTL_UPHY_PLL_P0_CTL4_PLL0_TXCLKREF_EN   (1 << 15)
104
105 #define XUSB_PADCTL_UPHY_PLL_P0_CTL5_0  0x370
106 #define XUSB_PADCTL_UPHY_PLL_P0_CTL5_DCO_CTRL_MASK      (0xFF << 16)
107 #define XUSB_PADCTL_UPHY_PLL_P0_CTL5_PLL0_DCO_CTRL      (0x2a << 16)
108
109 #define XUSB_PADCTL_UPHY_PLL_P0_CTL8_0  0x37C
110 #define XUSB_PADCTL_UPHY_PLL_P0_CTL8_PLL0_RCAL_EN       (1 << 12)
111 #define XUSB_PADCTL_UPHY_PLL_P0_CTL8_PLL0_RCAL_CLK_EN   (1 << 13)
112 #define XUSB_PADCTL_UPHY_PLL_P0_CTL8_PLL0_RCAL_OVRD     (1 << 15)
113 #define XUSB_PADCTL_UPHY_PLL_P0_CTL8_PLL0_RCAL_DONE     (1 << 31)
114
115 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_0                  0x860
116 #define S0_CTL1_PLL0_IDDQ                               (1 << 0)
117 #define S0_CTL1_PLL0_SLEEP                              (0x3 << 1)
118 #define S0_CTL1_PLL0_ENABLE                             (1 << 3)
119 #define S0_CTL1_PLL0_PWR_OVRD                           (1 << 4)
120 #define S0_CTL1_PLL0_LOCKDET_STATUS                     (1 << 15)
121 #define S0_PLL0_FREQ_NDIV(x)                            (((x) & 0xFF) << 20)
122
123 #define XUSB_PADCTL_UPHY_PLL_S0_CTL2_0                  (0x864)
124 #define S0_CTL2_PLL0_CAL_EN                             (1 << 0)
125 #define S0_CTL2_PLL0_CAL_DONE                           (1 << 1)
126 #define S0_CTL2_PLL0_CAL_OVRD                           (1 << 2)
127 #define S0_CTL2_PLL0_CAL_CTRL(x)                        (((x) & 0xFFFFFF) << 4)
128
129 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_0                  (0x86c)
130 #define S0_PLL0_TXCLKREF_SEL(x)                 (((x) & 0x3) << 12)
131
132 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_0                  (0x870)
133 #define S0_CTL5_PLL0_DCO_CTRL(x)                        (((x) & 0xFF) << 16)
134
135 #define XUSB_PADCTL_UPHY_PLL_S0_CTL8_0                  (0x87C)
136 #define S0_CTL8_PLL0_RCAL_EN                            (1 << 12)
137 #define S0_CTL8_PLL0_RCAL_CLK_EN                        (1 << 13)
138 #define S0_CTL8_PLL0_RCAL_OVRD                          (1 << 15)
139 #define S0_CTL8_PLL0_RCAL_DONE                          (1 << 31)
140
141 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1       0x460
142 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_RX_IDLE_TH_MASK   (0x3 << 24)
143 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_RX_IDLE_TH        (1 << 24)
144 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_TX_RDET_STATUS    (1 << 7)
145
146 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL1       0x4A0
147 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL1_AUX_TX_RDET_STATUS    (1 << 7)
148
149 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL1       0x4E0
150 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL1_AUX_TX_RDET_STATUS    (1 << 7)
151
152 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL1       0x520
153 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL1_AUX_TX_RDET_STATUS    (1 << 7)
154
155 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL1       0x560
156 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL1_AUX_TX_RDET_STATUS    (1 << 7)
157
158 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2       0x464
159 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_IDDQ       (1 << 0)
160 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_IDDQ       (1 << 8)
161 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_IDDQ_OVRD  (1 << 1)
162 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_IDDQ_OVRD  (1 << 9)
163 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_SLEEP      (3 << 4)
164 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_SLEEP      (3 << 12)
165 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_PWR_OVRD   (1 << 24)
166 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_PWR_OVRD   (1 << 25)
167
168 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL2       0x4A4
169 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL2       0x4E4
170 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL2       0x524
171 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL2       0x564
172 #define XUSB_PADCTL_UPHY_MISC_PAD_P5_CTL2       0x5A4
173 #define XUSB_PADCTL_UPHY_MISC_PAD_P6_CTL2       0x5E4
174 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL2       0x964
175
176 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_1_0 0x860
177 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_MDIV_MASK  (0x3 << 16)
178 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_NDIV_MASK  (0xFF << 20)
179 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_PLL0_FREQ_MDIV (0x0 << 16)
180 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_PLL0_FREQ_NDIV (0x19 << 20)
181
182 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_2_0 0x864
183 #define XUSB_PADCTL_UPHY_PLL_S0_CTL2_CAL_CTRL_MASK      (0xFFFFFF << 4)
184 #define XUSB_PADCTL_UPHY_PLL_S0_CTL2_PLL0_CAL_CTRL      (0x136 << 4)
185
186 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_4_0 0x86c
187 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_TXCLKREF_SEL_MASK  (0x3 << 12)
188 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_TXCLKREF_EN_MASK   (0x1 << 15)
189 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_PLL0_TXCLKREF_SEL  (0x2 << 12)
190 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_PLL0_TXCLKREF_EN   (0x1 << 15)
191
192 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_5_0 0x870
193 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_DCO_CTRL_MASK      (0xFF << 16)
194 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_PLL0_DCO_CTRL      (0x2a << 16)
195
196 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_1_0    0x960
197 #define AUX_TX_IDDQ                             (1 << 0)
198 #define AUX_TX_IDDQ_OVRD                        (1 << 1)
199 #define AUX_RX_MODE_OVRD                        (1 << 13)
200 #define AUX_RX_TERM_EN                          (1 << 18)
201 #define AUX_RX_IDLE_EN                          (1 << 22)
202 #define AUX_RX_IDLE_TH(x)                       (((x) & 0x3) << 24)
203
204 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_4_0    0x96c
205 #define RX_TERM_EN                              (1 << 21)
206 #define RX_TERM_OVRD                            (1 << 23)
207
208 #else
209 #define SATA_LANE       (0x1)
210
211 /* xusb padctl regs for pad programming of t124 usb3 */
212 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0                 0x138
213 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0_PLL0_REFCLK_NDIV_MASK   (0x3 << 20)
214 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0_PLL0_REFCLK_NDIV        (0x2 << 20)
215
216 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0                 0x13c
217 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_XDIGCLK_SEL_MASK        (0x7 << 0)
218 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_XDIGCLK_SEL             (0x7 << 0)
219 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_TXCLKREF_SEL            (1 << 4)
220 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_TCLKOUT_EN              (1 << 12)
221 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL0_CP_CNTL_MASK       (0xF << 16)
222 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL0_CP_CNTL            (0x8 << 16)
223 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL1_CP_CNTL_MASK       (0xF << 20)
224 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL1_CP_CNTL            (0x8 << 20)
225
226 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0                 0x140
227 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0_RCAL_BYPASS             (1 << 7)
228
229 /* xusb padctl regs for pad programming of pcie */
230 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_0 0x40
231 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_REFCLK_SEL_MASK   (0xF << 12)
232 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_REFCLK_SEL        (0x0 << 12)
233 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_PLL_RST_          (1 << 1)
234 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_PLL0_LOCKDET              (1 << 19)
235
236 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_0 0x44
237 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_TXCLKREF_SEL      (1 << 4)
238 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_TXCLKREF_EN       (1 << 5)
239 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_REFCLKBUF_EN      (1 << 6)
240 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_PLL0_CP_CNTL_MASK (0xF << 16)
241 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_PLL0_CP_CNTL_VAL  (0x5 << 16)
242
243 #endif
244
245 /* PADCTL ELPG_PROGRAM */
246 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
247
248 #define XUSB_PADCTL_ELPG_PROGRAM_0              0x20
249 #define XUSB_PADCTL_ELPG_PROGRAM_1              0x24
250 #define SSP0_ELPG_CLAMP_EN                      (1 << 0)
251 #define SSP0_ELPG_CLAMP_EN_EARLY        (1 << 1)
252 #define SSP0_ELPG_VCORE_DOWN            (1 << 2)
253 #define SSP1_ELPG_CLAMP_EN                      (1 << 3)
254 #define SSP1_ELPG_CLAMP_EN_EARLY        (1 << 4)
255 #define SSP1_ELPG_VCORE_DOWN            (1 << 5)
256 #define SSP2_ELPG_CLAMP_EN                      (1 << 6)
257 #define SSP2_ELPG_CLAMP_EN_EARLY        (1 << 7)
258 #define SSP2_ELPG_VCORE_DOWN            (1 << 8)
259 #define SSP3_ELPG_CLAMP_EN                      (1 << 9)
260 #define SSP3_ELPG_CLAMP_EN_EARLY        (1 << 10)
261 #define SSP3_ELPG_VCORE_DOWN            (1 << 11)
262 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN   (1 << 29)
263 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN_EARLY     (1 << 30)
264 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_VCORE_DOWN (1 << 31)
265
266 #define USB2_PORT3_WAKE_INTERRUPT_ENABLE        (1 << 3)
267 #define SS_PORT0_WAKE_INTERRUPT_ENABLE  (1 << 14)
268 #define SS_PORT1_WAKE_INTERRUPT_ENABLE  (1 << 15)
269 #define SS_PORT2_WAKE_INTERRUPT_ENABLE  (1 << 16)
270 #define SS_PORT3_WAKE_INTERRUPT_ENABLE  (1 << 17)
271
272 #define SS_PORT0_WAKEUP_EVENT           (1 << 21)
273 #define SS_PORT1_WAKEUP_EVENT           (1 << 22)
274 #define SS_PORT2_WAKEUP_EVENT           (1 << 23)
275 #define SS_PORT3_WAKEUP_EVENT           (1 << 24)
276 #define SS_PORT_WAKEUP_EVENT(p)         (1 << (21 + p))
277
278 #define USB2_PORT0_WAKEUP_EVENT         (1 << 7)
279 #define USB2_PORT1_WAKEUP_EVENT         (1 << 8)
280 #define USB2_PORT2_WAKEUP_EVENT         (1 << 9)
281 #define USB2_PORT3_WAKEUP_EVENT         (1 << 10)
282 #define USB2_HSIC_PORT0_WAKEUP_EVENT    (1 << 30)
283 #define USB2_HSIC_PORT1_WAKEUP_EVENT    (1 << 31)
284 #define USB2_HSIC_PORT0_WAKE_INTERRUPT_ENABLE   (1 << 28)
285 #define USB2_HSIC_PORT1_WAKE_INTERRUPT_ENABLE   (1 << 29)
286
287 #define XUSB_ALL_WAKE_EVENT     \
288                 (USB2_PORT0_WAKEUP_EVENT | USB2_PORT1_WAKEUP_EVENT |    \
289                 USB2_PORT2_WAKEUP_EVENT | USB2_PORT3_WAKEUP_EVENT |     \
290                 SS_PORT0_WAKEUP_EVENT | SS_PORT1_WAKEUP_EVENT | \
291                 SS_PORT2_WAKEUP_EVENT | SS_PORT3_WAKEUP_EVENT | \
292                 USB2_HSIC_PORT0_WAKEUP_EVENT)
293
294 #else
295 #define XUSB_PADCTL_ELPG_PROGRAM_0              0x1c
296 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN   (1 << 24)
297 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN_EARLY     (1 << 25)
298 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_VCORE_DOWN (1 << 26)
299
300 #define SSP0_ELPG_CLAMP_EN              (1 << 16)
301 #define SSP0_ELPG_CLAMP_EN_EARLY        (1 << 17)
302 #define SSP0_ELPG_VCORE_DOWN            (1 << 18)
303 #define SSP1_ELPG_CLAMP_EN              (1 << 20)
304 #define SSP1_ELPG_CLAMP_EN_EARLY        (1 << 21)
305 #define SSP1_ELPG_VCORE_DOWN            (1 << 22)
306 #define SSP2_ELPG_CLAMP_EN                      0x0
307 #define SSP2_ELPG_CLAMP_EN_EARLY        0x0
308 #define SSP2_ELPG_VCORE_DOWN            0x0
309 #define SSP3_ELPG_CLAMP_EN                      0x0
310 #define SSP3_ELPG_CLAMP_EN_EARLY        0x0
311 #define SSP3_ELPG_VCORE_DOWN            0x0
312
313 #define USB2_PORT3_WAKE_INTERRUPT_ENABLE        0x0
314 #define SS_PORT0_WAKE_INTERRUPT_ENABLE  (1 << 6)
315 #define SS_PORT1_WAKE_INTERRUPT_ENABLE  (1 << 7)
316 #define SS_PORT2_WAKE_INTERRUPT_ENABLE  0x0
317 #define SS_PORT3_WAKE_INTERRUPT_ENABLE  0x0
318
319 #define SS_PORT0_WAKEUP_EVENT           (1 << 14)
320 #define SS_PORT1_WAKEUP_EVENT           (1 << 15)
321 #define SS_PORT2_WAKEUP_EVENT           0x0
322 #define SS_PORT3_WAKEUP_EVENT           0x0
323
324 #define USB2_PORT0_WAKEUP_EVENT         (1 << 8)
325 #define USB2_PORT1_WAKEUP_EVENT         (1 << 9)
326 #define USB2_PORT2_WAKEUP_EVENT         (1 << 10)
327 #define USB2_PORT3_WAKEUP_EVENT         0x0
328 #define USB2_HSIC_PORT0_WAKEUP_EVENT    (1 << 11)
329 #define USB2_HSIC_PORT1_WAKEUP_EVENT    (1 << 12)
330 #define USB2_HSIC_PORT0_WAKE_INTERRUPT_ENABLE   (1 << 3)
331 #define USB2_HSIC_PORT1_WAKE_INTERRUPT_ENABLE   (1 << 4)
332
333 #define XUSB_ALL_WAKE_EVENT     \
334                 (USB2_PORT0_WAKEUP_EVENT | USB2_PORT1_WAKEUP_EVENT |    \
335                 USB2_PORT2_WAKEUP_EVENT |       \
336                 SS_PORT0_WAKEUP_EVENT | SS_PORT1_WAKEUP_EVENT | \
337                 SS_PORT2_WAKEUP_EVENT | \
338                 USB2_HSIC_PORT0_WAKEUP_EVENT)
339 #endif
340
341 /* PADCTL register offset (Shared T124/T210/T114)*/
342 #define USB2_PORT0_WAKE_INTERRUPT_ENABLE        (1 << 0)
343 #define USB2_PORT1_WAKE_INTERRUPT_ENABLE        (1 << 1)
344 #define USB2_PORT2_WAKE_INTERRUPT_ENABLE        (1 << 2)
345
346
347 #define XUSB_PADCTL_USB2_PAD_MUX_0              0x4
348 #define PAD_PORT_MASK(_p)       (0x3 << (_p * 2))
349 #define PAD_PORT_SNPS(_p)       (0x0 << (_p * 2))
350 #define PAD_PORT_XUSB(_p)       (0x1 << (_p * 2))
351 #define XUSB_OTG_MODE           3
352 #define XUSB_DEVICE_MODE        2
353 #define XUSB_HOST_MODE          1
354
355 #define XUSB_PADCTL_USB2_PORT_CAP_0             0x8
356 #define USB2_OTG_PORT_CAP(_p, val)      ((val & 0x3) << (_p * 4))
357 #define USB2_PORT_CAP_REVERSE_ID(x) (0x1 << ((4 * (x + 1)) - 1))
358
359 #define CLK_RST_PLLU_HW_PWRDN_CFG0_0    0x530
360 #define PLLU_CLK_ENABLE_OVERRIDE_VALUE  (1 << 3)
361 #define PLLU_SEQ_IN_SWCTL                               (1 << 4)
362
363 /* PAD MUX */
364 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
365 /* XUSB_PADCTL_USB2_PAD_MUX_0 */
366 #define BIAS_PAD_MASK   (0x3 << 18)
367 #define BIAS_PAD_XUSB   (0x1 << 18)
368 #define HSIC_PAD_TRK(x) (((x) & 0x3) << 16)
369 #define  HSIC_PAD_TRK_SNPS      (0)
370 #define  HSIC_PAD_TRK_XUSB      (1)
371
372 #define XUSB_PADCTL_USB3_PAD_MUX_0              0x28
373 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK0      (1 << 1)
374 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK1      (1 << 2)
375 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK2      (1 << 3)
376 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK3      (1 << 4)
377 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK4      (1 << 5)
378 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK5      (1 << 6)
379 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK6      (1 << 7)
380 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_SATA_PAD_IDDQ_DISABLE_MASK0      (1 << 8)
381 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0 (0x3 << 12)
382 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1 (0x3 << 14)
383 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE2 (0x3 << 16)
384 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3 (0x3 << 18)
385 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4 (0x3 << 20)
386 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE5 (0x3 << 22)
387 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE6 (0x3 << 24)
388 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0 (0x3 << 30)
389 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0_OWNER_USB3_SS   (0x1 << 30)
390 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0_OWNER_USB3_SS   (0x1 << 12)
391 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3_OWNER_USB3_SS   (0x1 << 18)
392 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4_OWNER_USB3_SS   (0x1 << 20)
393 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE5_OWNER_USB3_SS   (0x1 << 22)
394 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE6_OWNER_USB3_SS   (0x1 << 24)
395 #define PAD_MUX_PAD_LANE(_lane, val)    \
396         ((_lane == 8) ? ((val & 0x3) << 30) :   \
397         ((val & 0x3) << (12 + _lane * 2)))
398 #define PAD_MUX_PAD_LANE_IDDQ(_lane, val)       \
399         ((_lane == 8) ? ((val & 0x1) << 8) :    \
400         ((val & 0x1) << (_lane + 1)))
401
402 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0         0x284
403 #define HS_SQUELCH_LEVEL(x)             ((x & 0x7) << 0)
404 #define HS_DISCON_LEVEL(x)                              (((x) & 0x7) << 3)
405 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_1         0x288
406 #define PD_MASK                 (0x1 << 11)
407 #define PD                              (0x0 << 11)
408 #define PD_TRK_MASK             (0x1 << 26)
409 #define PD_TRK                  (0x0 << 26)
410 #define TRK_START_TIMER_MASK            (0x7F << 12)
411 #define TRK_START_TIMER                         (0x1E << 12)
412 #define TRK_DONE_RESET_TIMER_MASK       (0x7F << 19)
413 #define TRK_DONE_RESET_TIMER            (0xA << 19)
414 #define GET_PCTRL(x)    ((x & 0xfc0) >> 6)
415 #define GET_TCTRL(x)    ((x & 0x3f) >> 0)
416
417
418
419 #define XUSB_PADCTL_HSIC_PAD_TRK_CTL_0          0x340
420 #define HSIC_TRK_START_TIMER(x)         (((x) & 0x7F) << 5)
421 #define HSIC_TRK_DONE_RESET_TIMER(x)            (((x) & 0x7F) << 12)
422 #define HSIC_PD_TRK(x)                          (((x) & 0x1) << 19)
423
424 #define XUSB_PADCTL_HSIC_PAD1_CTL_0_0   0x320
425 #define PAD1_PD_TX_DATA0                (1 << 1)
426 #define PAD1_PD_TX_DATA1                (1 << 2)
427 #define PAD1_PD_TX_STROBE       (1 << 3)
428 #define PAD1_PD_TX_MASK \
429         (PAD1_PD_TX_DATA0 | PAD1_PD_TX_DATA1 | PAD1_PD_TX_STROBE)
430
431
432 #define XUSB_PADCTL_VBUS_OC_MAP_0       0x18
433 #define VBUS_OC_MAP(_p, val)    ((val & 0xf) << ((_p * 5) + 1))
434 #define VBUS_ENABLE(x)    (1 << ((x)*5))
435 #define OC_DISABLE              (0xf)
436
437 #define XUSB_PADCTL_OC_DET_0    0x1c
438 #define VBUS_EN_OC_MAP(x, v)    0x0
439 #define SET_OC_DETECTED(x)                      (1 << (x))
440 #define OC_DETECTED(x)                          (1 << (8 + (x)))
441 #define OC_DETECTED_VBUS_PAD(x)         (1 << (12 + (x)))
442 #define OC_DETECTED_VBUS_PAD_MASK       (0xf << 12)
443 #define OC_DETECTED_INTR_ENABLE(x)      (1 << (20 + (x)))
444 #define OC_DETECTED_INTR_ENABLE_VBUS_PAD(x)     (1 << (24 + (x)))
445
446 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_0(_p)      (0x88 + _p * 0x40)
447 #define USB2_OTG_HS_CURR_LVL    (0x3F << 0)
448 #define USB2_OTG_PD             (0x1 << 26)
449 #define USB2_OTG_PD2    (0x1 << 27)
450 #define USB2_PD2_OVRD_EN (0x1 << 28)
451 #define USB2_OTG_PD_ZI  (0x1 << 29)
452
453 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_1(_p)      (0x8c + _p * 0x40)
454 #define USB2_OTG_TERM_RANGE_ADJ (0xF << 3)
455 #define USB2_OTG_PD_DR                  (0x1 << 2)
456 #define USB2_OTG_PD_DISC_FORCE_POWERUP  (0x1 << 1)
457 #define USB2_OTG_PD_CHRP_FORCE_POWERUP  (0x1 << 0)
458 #define RPD_CTRL                                (0x1f << 26)
459 #define GET_RPD_CTRL(x)                 ((x & 0x7c000000) >> 26)
460 #define USB2_OTG_HS_IREF_CAP                    0x0
461
462
463 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL0(_p)   \
464         (0x80 + _p * 0x40)
465
466 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p)   \
467         (0x84 + _p * 0x40)
468 #define VREG_FIX18      (1 << 6)
469 #define VREG_LEV        (0x3 << 7)
470 #define VREG_LEV_EN     (0x1 << 7)
471
472 #define XUSB_PADCTL_USB2_OC_MAP_0       0x10
473 #define PORT_OC_PIN(_p, val)    ((val & 0xf) << (_p * 4))
474 #define OC_VBUS_PAD(p)  (p + 4)
475 #define OC_DISABLED     0xf
476
477 #define XUSB_PADCTL_SS_PORT_MAP 0x14
478 #define SS_PORT_MAP(_p, val) \
479         ((val & 0x7) << (_p * 5))
480
481 #define XUSB_PADCTL_UPHY_USB3_ECTL_2_0(p) (0xa64 + p * 0x40)
482 #define XUSB_PADCTL_UPHY_USB3_ECTL_2_0_RX_CTLE_MASK 0xffff
483 #define XUSB_PADCTL_UPHY_USB3_ECTL_3_0(p) (0xa68 + p * 0x40)
484 #define XUSB_PADCTL_UPHY_USB3_ECTL_4_0(p) (0xa6c + p * 0x40)
485 #define XUSB_PADCTL_UPHY_USB3_ECTL_4_0_RX_CDR_CTRL_MASK (0xffff << 16)
486 #define XUSB_PADCTL_UPHY_USB3_ECTL_6_0(p) (0xa74 + p * 0x40)
487
488 #define XUSB_PADCTL_USB2_VBUS_ID_0      0xc60
489 #define VBUS_SOURCE_SELECT(val) ((val & 0x3) << 12)
490 #define ID_SOURCE_SELECT(val)   ((val & 0x3) << 16)
491 #define USB2_VBUS_ID_0_VBUS_OVERRIDE    (1 << 14)
492 #define IDDIG_CHNG_INTR_EN              (1 << 11)
493 #define USB2_VBUS_ID_0_ID_SRC_OVERRIDE          (0x1 << 16)
494 #define USB2_VBUS_ID_0_ID_OVERRIDE              (0xf << 18)
495 #define USB2_VBUS_ID_0_ID_OVERRIDE_RID_FLOAT    (0x8 << 18)
496 #define USB2_VBUS_ID_0_ID_OVERRIDE_RID_GND      (0x0 << 18)
497 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_STS        (0x1 << 0)
498 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_STS_CHG    (0x1 << 1)
499 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_CHG_INT_EN (0x1 << 2)
500 #define USB2_VBUS_ID_0_VBUS_VLD_STS             (0x1 << 3)
501 #define USB2_VBUS_ID_0_VBUS_VLD_STS_CHG         (0x1 << 4)
502 #define USB2_VBUS_ID_0_VBUS_VLD_CHG_INT_EN      (0x1 << 5)
503 #define USB2_VBUS_ID_0_IDDIG_STS                (0x1 << 6)
504 #define USB2_VBUS_ID_0_IDDIGA_STS               (0x1 << 7)
505 #define USB2_VBUS_ID_0_IDDIGB_STS               (0x1 << 8)
506 #define USB2_VBUS_ID_0_IDDIGC_STS               (0x1 << 9)
507 #define USB2_VBUS_ID_0_RID_MASK                 (0xf << 6)
508 #define USB2_VBUS_ID_0_RID_FLOAT                USB2_VBUS_ID_0_IDDIG_STS
509 #define USB2_VBUS_ID_0_RID_A                    USB2_VBUS_ID_0_IDDIGA_STS
510 #define USB2_VBUS_ID_0_RID_B                    USB2_VBUS_ID_0_IDDIGB_STS
511 #define USB2_VBUS_ID_0_RID_C                    USB2_VBUS_ID_0_IDDIGC_STS
512 #define USB2_VBUS_ID_0_RID_GND                  (0x0 << 6)
513 #define USB2_VBUS_ID_0_IDDIG_STS_CHG            (0x1 << 10)
514 #define USB2_VBUS_ID_0_IDDIG_CHG_INT_EN         (0x1 << 11)
515 #define USB2_VBUS_ID_0_VBUS_SRC_SELECT          (0x3 << 12)
516 #define USB2_VBUS_ID_0_VBUS_SRC_OVERRIDE        (0x1 << 12)
517 #define USB2_VBUS_ID_0_VBUS_WKUP_OVERRIDE       (0x1 << 15)
518 #define USB2_VBUS_ID_0_ID_SRC_SELECT            (0x3 << 16)
519 #define USB2_VBUS_ID_0_VBUS_WKUP_STS            (0x1 << 22)
520 #define USB2_VBUS_ID_0_VBUS_WKUP_STS_CHG        (0x1 << 23)
521 #define USB2_VBUS_ID_0_VBUS_WKUP_CHG_INT_EN     (0x1 << 24)
522 #define USB2_VBUS_ID_0_INTR_STS_CHG_MASK (USB2_VBUS_ID_0_VBUS_VLD_STS_CHG | \
523                                         USB2_VBUS_ID_0_VBUS_SESS_VLD_STS_CHG | \
524                                         USB2_VBUS_ID_0_VBUS_WKUP_STS_CHG)
525
526 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL0_0(x) (0x80 + 0x40 * x)
527 #define USB2_BATTERY_CHRG_OTGPAD_GENERATE_SRP           (1 << 31)
528 #define USB2_BATTERY_CHRG_OTGPAD_SRP_INTR_EN            (1 << 30)
529 #define USB2_BATTERY_CHRG_OTGPAD_SRP_DETECTED           (1 << 29)
530 #define USB2_BATTERY_CHRG_OTGPAD_SRP_DETECT_EN          (1 << 28)
531 #define USB2_BATTERY_CHRG_OTGPAD_DCD_DETECTED           (1 << 26)
532 #define USB2_BATTERY_CHRG_OTGPAD_INTR_STS_CHG_MASK (\
533                         USB2_BATTERY_CHRG_OTGPAD_SRP_DETECTED | \
534                         USB2_BATTERY_CHRG_OTGPAD_DCD_DETECTED)
535
536 #else
537 #define XUSB_PADCTL_USB3_PAD_MUX_0              0x134
538 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK0      (1 << 1)
539 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK1      (1 << 2)
540 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK2      (1 << 3)
541 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK3      (1 << 4)
542 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK4      (1 << 5)
543 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_SATA_PAD_IDDQ_DISABLE_MASK0      (1 << 6)
544 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0 (0x3 << 16)
545 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1 (0x3 << 18)
546 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE2 (0x3 << 20)
547 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3 (0x3 << 22)
548 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4 (0x3 << 24)
549 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0 (0x3 << 26)
550 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0_OWNER_USB3_SS   (0x1 << 26)
551 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0_OWNER_USB3_SS   (0x1 << 16)
552 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1_OWNER_USB3_SS   (0x1 << 18)
553
554 #ifdef CONFIG_ARCH_TEGRA_11x_SOC
555 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0         0xa0
556 #else
557 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0         0xb8
558 #endif
559 #define PD_MASK         (0x1 << 12)
560
561 #define XUSB_PADCTL_VBUS_OC_MAP_0       0x0
562 #define VBUS_OC_MAP(_p, val)    0x0
563 #define VBUS_ENABLE(x)    0x0
564 #define OC_DISABLE              0x0
565
566 #define XUSB_PADCTL_OC_DET_0    0x18
567 #define VBUS_EN_OC_MAP(x, v) \
568         (((x) == 2) ? \
569         (((v) & 0x7) << 5) : (((v) & 0x7) << (10 + 3 * (x))))
570 #define SET_OC_DETECTED(x)                      (1 << (x))
571 #define OC_DETECTED(x)                          (1 << (16 + (x)))
572 #define OC_DETECTED_VBUS_PAD(x)         (1 << (20 + (x)))
573 #define OC_DETECTED_VBUS_PAD_MASK       (0x7 << 20)
574 #define OC_DETECTED_INTR_ENABLE(x)      (1 << (24 + (x)))
575 #define OC_DETECTED_INTR_ENABLE_VBUS_PAD(x)     (1 << (28 + (x)))
576
577 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_0(_p)      (0xa0 + _p * 0x4)
578 #define USB2_OTG_HS_CURR_LVL    (0x3F << 0)
579 #define USB2_OTG_PD                             (0x1 << 19)
580 #define USB2_OTG_PD2                    (0x1 << 20)
581 #define USB2_OTG_PD_ZI                  (0x1 << 21)
582
583 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_1(_p)      (0xac + _p * 0x4)
584 #define USB2_OTG_PD_DR                                  (0x1 << 2)
585 #define USB2_OTG_TERM_RANGE_ADJ                 (0xF << 3)
586 #define USB2_OTG_HS_IREF_CAP                    (0x3 << 9)
587 #define USB2_OTG_PD_CHRP_FORCE_POWERUP  (0x1 << 0)
588 #define USB2_OTG_PD_DISC_FORCE_POWERUP  (0x1 << 1)
589 #define RPD_CTRL                                                0x0
590
591 #define XUSB_PADCTL_USB2_OC_MAP_0       0x10
592 #define PORT_OC_PIN(_p, val)    ((val & 0xf) << (_p * 3))
593 #define OC_VBUS_PAD(p)  (p + 4)
594 #define OC_DISABLED     0xf
595
596 #define XUSB_PADCTL_SS_PORT_MAP 0x14
597 #define SS_PORT_MAP(_p, val) \
598         ((val & 0x7) << (_p * 4))
599
600 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p)   0x0
601 #define VREG_FIX18      0x0
602 #define VREG_LEV        0x0
603 #define VREG_LEV_EN     0x0
604 #define RPD_CTRL        0x0
605
606 #define XUSB_PADCTL_USB2_VBUS_ID_0      0x0
607 #define VBUS_SOURCE_SELECT(val) 0x0
608 #define ID_SOURCE_SELECT(val)   0x0
609 #define IDDIG_CHNG_INTR_EN              0x0
610
611 #define HSIC_PAD_TRK    0x0
612 #define TRK_START_TIMER_MASK            0x0
613 #define TRK_DONE_RESET_TIMER_MASK       0x0
614
615 #define XUSB_PADCTL_HSIC_PAD_TRK_CTL_0  0x0
616 #define HSIC_TRK_START_TIMER_MASK               0x0
617 #define HSIC_TRK_DONE_RESET_TIMER_MASK  0x0
618 #define HSIC_PD_TRK_MASK        0x0
619
620 #define XUSB_PADCTL_HSIC_PAD1_CTL_0_0   0x0
621 #define PAD1_PD_TX_MASK 0x0
622 #endif
623 /* SATA PADPLL */
624 #define CLK_RST_CONTROLLER_SATA_PLL_CFG0_0      0x490
625 #define SATA_PADPLL_RESET_SWCTL                 (1 << 0)
626 #define SATA_PADPLL_USE_LOCKDET                 (1 << 2)
627 #define SATA_SEQ_IN_SWCTL                       (1 << 4)
628 #define SATA_SEQ_RESET_INPUT_VALUE              (1 << 5)
629 #define SATA_SEQ_LANE_PD_INPUT_VALUE            (1 << 6)
630 #define SATA_SEQ_PADPLL_PD_INPUT_VALUE          (1 << 7)
631 #define SATA_PADPLL_SLEEP_IDDQ                  (1 << 13)
632 #define SATA_SEQ_ENABLE                         (1 << 24)
633 #define SATA_SEQ_START_STATE                    (1 << 25)
634
635 #define CLK_RST_CONTROLLER_XUSBIO_PLL_CFG0_0            0x51C
636 #define XUSBIO_PADPLL_RESET_SWCTL                       (1 << 0)
637 #define XUSBIO_CLK_ENABLE_SWCTL                 (1 << 2)
638 #define XUSBIO_PADPLL_USE_LOCKDET                       (1 << 6)
639 #define XUSBIO_PADPLL_SLEEP_IDDQ                        (1 << 13)
640 #define XUSBIO_SEQ_ENABLE                               (1 << 24)
641
642 void tegra_xhci_release_otg_port(bool release);
643 void tegra_xhci_release_dev_port(bool release);
644 void tegra_xhci_ss_wake_on_interrupts(u32 portmap, bool enable);
645 void tegra_xhci_hs_wake_on_interrupts(u32 portmap, bool enable);
646 void tegra_xhci_ss_wake_signal(u32 portmap, bool enable);
647 void tegra_xhci_ss_vcore(u32 portmap, bool enable);
648
649 #ifndef CONFIG_ARCH_TEGRA_21x_SOC
650 int utmi_phy_pad_disable(void);
651 int utmi_phy_pad_enable(void);
652 #else
653 int utmi_phy_pad_disable(struct tegra_prod_list *prod_list);
654 int utmi_phy_pad_enable(struct tegra_prod_list *prod_list);
655 #endif
656 int usb3_phy_pad_enable(u32 lane_owner);
657 int pcie_phy_pad_enable(bool enable, int lane_owner);
658 bool tegra_phy_get_lane_rdet(u8 lane_num);
659
660 int utmi_phy_iddq_override(bool set);
661 void tegra_usb_pad_reg_update(u32 reg_offset, u32 mask, u32 val);
662 u32 tegra_usb_pad_reg_read(u32 reg_offset);
663 void tegra_usb_pad_reg_write(u32 reg_offset, u32 val);
664
665 void xusb_utmi_pad_init(int pad, u32 cap, bool external_pmic);
666 void xusb_ss_pad_init(int pad, int port_map, u32 cap);
667 void usb2_vbus_id_init(void);
668 int hsic_trk_enable(void);
669
670 int pex_usb_pad_pll_reset_assert(void);
671 int pex_usb_pad_pll_reset_deassert(void);
672 int sata_usb_pad_pll_reset_assert(void);
673 int sata_usb_pad_pll_reset_deassert(void);
674 int t210_sata_uphy_pll_init(bool sata_used_by_xusb);
675
676 int tegra_pd2_asserted(int pad);
677 int tegra_pd2_deasserted(int pad);
678
679 void xusb_utmi_pad_deinit(int pad);
680 void xusb_ss_pad_deinit(int pad);
681 void usb3_phy_pad_disable(void);
682 void xusb_enable_pad_protection(bool);
683
684 void xusb_utmi_pad_driver_power(int port, bool on);
685
686 int tegra_padctl_init_sata_pad(void);
687 int tegra_padctl_enable_sata_pad(bool enable);
688
689 #endif