2 * Copyright (c) 2013-2016, NVIDIA CORPORATION. All rights reserved.
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.
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.
15 #ifndef _TEGRA_USB_PAD_CTRL_INTERFACE_H_
16 #define _TEGRA_USB_PAD_CTRL_INTERFACE_H_
18 #include <mach/xusb.h>
19 #include <linux/tegra_prod.h>
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)
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)
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
53 static inline enum padctl_lane usb3_laneowner_to_lane_enum(u8 laneowner)
57 else if (laneowner == 0x1)
59 else if (laneowner == 0x2)
61 else if (laneowner == 0x3)
63 else if (laneowner == 0x4)
65 else if (laneowner == 0x5)
67 else if (laneowner == 0x6)
69 else if (laneowner == 0x8)
72 return -1; /* unknown */
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)
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)
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)
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)
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)
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)
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)
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)
129 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_0 (0x86c)
130 #define S0_PLL0_TXCLKREF_SEL(x) (((x) & 0x3) << 12)
132 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_0 (0x870)
133 #define S0_CTL5_PLL0_DCO_CTRL(x) (((x) & 0xFF) << 16)
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)
141 #define XUSB_PADCTL_UPHY_MISC_PAD_PX_CTL1(x) (0x460 + ((x) * 0x40))
142 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1 0x460
143 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_RX_IDLE_TH_MASK (0x3 << 24)
144 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_RX_IDLE_TH (1 << 24)
145 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL1_AUX_TX_RDET_STATUS (1 << 7)
147 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_RX_IDLE_MODE_SHIFT 20
148 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_RX_IDLE_MODE_MASK 0x3
149 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_RX_IDLE_MODE_VAL 0x1
150 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_RX_TERM_EN BIT(18)
151 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_RX_MODE_OVRD BIT(13)
152 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_TX_MODE_OVRD BIT(12)
153 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_TX_RDET_CLK_EN BIT(6)
154 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_TX_RDET_BYP BIT(5)
155 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_TX_RDET_EN BIT(4)
156 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL1_AUX_TX_TERM_EN BIT(2)
158 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL1 0x4A0
159 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL1_AUX_TX_RDET_STATUS (1 << 7)
161 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL1 0x4E0
162 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL1_AUX_TX_RDET_STATUS (1 << 7)
164 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL1 0x520
165 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL1_AUX_TX_RDET_STATUS (1 << 7)
167 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL1 0x560
168 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL1_AUX_TX_RDET_STATUS (1 << 7)
170 #define XUSB_PADCTL_UPHY_MISC_PAD_PX_CTL2(x) (0x464 + ((x) * 0x40))
171 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2 0x464
172 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_IDDQ (1 << 0)
173 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_IDDQ (1 << 8)
174 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_IDDQ_OVRD (1 << 1)
175 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_IDDQ_OVRD (1 << 9)
176 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_SLEEP (3 << 4)
177 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_SLEEP (3 << 12)
178 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_TX_PWR_OVRD (1 << 24)
179 #define XUSB_PADCTL_UPHY_MISC_PAD_P0_CTL2_RX_PWR_OVRD (1 << 25)
180 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL2_RX_IDDQ_OVRD (1 << 9)
181 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL2_RX_IDDQ (1 << 8)
182 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL2_TX_IDDQ_OVRD (1 << 1)
183 #define XUSB_PADCTL_UPHY_MISC_PAD_CTL2_TX_IDDQ (1 << 0)
185 #define XUSB_PADCTL_UPHY_MISC_PAD_P1_CTL2 0x4A4
186 #define XUSB_PADCTL_UPHY_MISC_PAD_P2_CTL2 0x4E4
187 #define XUSB_PADCTL_UPHY_MISC_PAD_P3_CTL2 0x524
188 #define XUSB_PADCTL_UPHY_MISC_PAD_P4_CTL2 0x564
189 #define XUSB_PADCTL_UPHY_MISC_PAD_P5_CTL2 0x5A4
190 #define XUSB_PADCTL_UPHY_MISC_PAD_P6_CTL2 0x5E4
192 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL1 0x960
193 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL2 0x964
195 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_1_0 0x860
196 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_MDIV_MASK (0x3 << 16)
197 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_NDIV_MASK (0xFF << 20)
198 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_PLL0_FREQ_MDIV (0x0 << 16)
199 #define XUSB_PADCTL_UPHY_PLL_S0_CTL1_PLL0_FREQ_NDIV (0x19 << 20)
201 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_2_0 0x864
202 #define XUSB_PADCTL_UPHY_PLL_S0_CTL2_CAL_CTRL_MASK (0xFFFFFF << 4)
203 #define XUSB_PADCTL_UPHY_PLL_S0_CTL2_PLL0_CAL_CTRL (0x136 << 4)
205 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_4_0 0x86c
206 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_TXCLKREF_SEL_MASK (0x3 << 12)
207 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_TXCLKREF_EN_MASK (0x1 << 15)
208 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_PLL0_TXCLKREF_SEL (0x2 << 12)
209 #define XUSB_PADCTL_UPHY_PLL_S0_CTL4_PLL0_TXCLKREF_EN (0x1 << 15)
211 #define XUSB_PADCTL_UPHY_PLL_S0_CTL_5_0 0x870
212 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_DCO_CTRL_MASK (0xFF << 16)
213 #define XUSB_PADCTL_UPHY_PLL_S0_CTL5_PLL0_DCO_CTRL (0x2a << 16)
215 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_1_0 0x960
216 #define AUX_TX_IDDQ (1 << 0)
217 #define AUX_TX_IDDQ_OVRD (1 << 1)
218 #define AUX_RX_MODE_OVRD (1 << 13)
219 #define AUX_RX_TERM_EN (1 << 18)
220 #define AUX_RX_IDLE_EN (1 << 22)
221 #define AUX_RX_IDLE_TH(x) (((x) & 0x3) << 24)
223 #define XUSB_PADCTL_UPHY_MISC_PAD_S0_CTL_4_0 0x96c
224 #define RX_TERM_EN (1 << 21)
225 #define RX_TERM_OVRD (1 << 23)
228 #define SATA_LANE (0x1)
230 /* xusb padctl regs for pad programming of t124 usb3 */
231 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0 0x138
232 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0_PLL0_REFCLK_NDIV_MASK (0x3 << 20)
233 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL1_0_PLL0_REFCLK_NDIV (0x2 << 20)
235 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0 0x13c
236 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_XDIGCLK_SEL_MASK (0x7 << 0)
237 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_XDIGCLK_SEL (0x7 << 0)
238 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_TXCLKREF_SEL (1 << 4)
239 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_TCLKOUT_EN (1 << 12)
240 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL0_CP_CNTL_MASK (0xF << 16)
241 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL0_CP_CNTL (0x8 << 16)
242 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL1_CP_CNTL_MASK (0xF << 20)
243 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL2_0_PLL1_CP_CNTL (0x8 << 20)
245 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0 0x140
246 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0_RCAL_BYPASS (1 << 7)
248 /* xusb padctl regs for pad programming of pcie */
249 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_0 0x40
250 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_REFCLK_SEL_MASK (0xF << 12)
251 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_REFCLK_SEL (0x0 << 12)
252 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_PLL_RST_ (1 << 1)
253 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL1_PLL0_LOCKDET (1 << 19)
255 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_0 0x44
256 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_TXCLKREF_SEL (1 << 4)
257 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_TXCLKREF_EN (1 << 5)
258 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_REFCLKBUF_EN (1 << 6)
259 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_PLL0_CP_CNTL_MASK (0xF << 16)
260 #define XUSB_PADCTL_IOPHY_PLL_P0_CTL2_PLL0_CP_CNTL_VAL (0x5 << 16)
264 /* PADCTL ELPG_PROGRAM */
265 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
267 #define XUSB_PADCTL_ELPG_PROGRAM_0 0x20
268 #define XUSB_PADCTL_ELPG_PROGRAM_1 0x24
269 #define SSPX_ELPG_CLAMP_EN_EARLY(x) (1 << ((x)*3 + 1))
270 #define SSP0_ELPG_CLAMP_EN (1 << 0)
271 #define SSP0_ELPG_CLAMP_EN_EARLY (1 << 1)
272 #define SSP0_ELPG_VCORE_DOWN (1 << 2)
273 #define SSP1_ELPG_CLAMP_EN (1 << 3)
274 #define SSP1_ELPG_CLAMP_EN_EARLY (1 << 4)
275 #define SSP1_ELPG_VCORE_DOWN (1 << 5)
276 #define SSP2_ELPG_CLAMP_EN (1 << 6)
277 #define SSP2_ELPG_CLAMP_EN_EARLY (1 << 7)
278 #define SSP2_ELPG_VCORE_DOWN (1 << 8)
279 #define SSP3_ELPG_CLAMP_EN (1 << 9)
280 #define SSP3_ELPG_CLAMP_EN_EARLY (1 << 10)
281 #define SSP3_ELPG_VCORE_DOWN (1 << 11)
282 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN (1 << 29)
283 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN_EARLY (1 << 30)
284 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_VCORE_DOWN (1 << 31)
286 #define USB2_PORT3_WAKE_INTERRUPT_ENABLE (1 << 3)
287 #define SS_PORT0_WAKE_INTERRUPT_ENABLE (1 << 14)
288 #define SS_PORT1_WAKE_INTERRUPT_ENABLE (1 << 15)
289 #define SS_PORT2_WAKE_INTERRUPT_ENABLE (1 << 16)
290 #define SS_PORT3_WAKE_INTERRUPT_ENABLE (1 << 17)
292 #define SS_PORT0_WAKEUP_EVENT (1 << 21)
293 #define SS_PORT1_WAKEUP_EVENT (1 << 22)
294 #define SS_PORT2_WAKEUP_EVENT (1 << 23)
295 #define SS_PORT3_WAKEUP_EVENT (1 << 24)
296 #define SS_PORT_WAKEUP_EVENT(p) (1 << (21 + p))
298 #define USB2_PORT0_WAKEUP_EVENT (1 << 7)
299 #define USB2_PORT1_WAKEUP_EVENT (1 << 8)
300 #define USB2_PORT2_WAKEUP_EVENT (1 << 9)
301 #define USB2_PORT3_WAKEUP_EVENT (1 << 10)
302 #define USB2_HSIC_PORT0_WAKEUP_EVENT (1 << 30)
303 #define USB2_HSIC_PORT1_WAKEUP_EVENT (1 << 31)
304 #define USB2_HSIC_PORT0_WAKE_INTERRUPT_ENABLE (1 << 28)
305 #define USB2_HSIC_PORT1_WAKE_INTERRUPT_ENABLE (1 << 29)
307 #define XUSB_ALL_WAKE_EVENT \
308 (USB2_PORT0_WAKEUP_EVENT | USB2_PORT1_WAKEUP_EVENT | \
309 USB2_PORT2_WAKEUP_EVENT | USB2_PORT3_WAKEUP_EVENT | \
310 SS_PORT0_WAKEUP_EVENT | SS_PORT1_WAKEUP_EVENT | \
311 SS_PORT2_WAKEUP_EVENT | SS_PORT3_WAKEUP_EVENT | \
312 USB2_HSIC_PORT0_WAKEUP_EVENT)
315 #define XUSB_PADCTL_ELPG_PROGRAM_0 0x1c
316 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN (1 << 24)
317 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_CLAMP_EN_EARLY (1 << 25)
318 #define XUSB_PADCTL_ELPG_PROGRAM_AUX_MUX_LP0_VCORE_DOWN (1 << 26)
320 #define SSP0_ELPG_CLAMP_EN (1 << 16)
321 #define SSP0_ELPG_CLAMP_EN_EARLY (1 << 17)
322 #define SSP0_ELPG_VCORE_DOWN (1 << 18)
323 #define SSP1_ELPG_CLAMP_EN (1 << 20)
324 #define SSP1_ELPG_CLAMP_EN_EARLY (1 << 21)
325 #define SSP1_ELPG_VCORE_DOWN (1 << 22)
326 #define SSP2_ELPG_CLAMP_EN 0x0
327 #define SSP2_ELPG_CLAMP_EN_EARLY 0x0
328 #define SSP2_ELPG_VCORE_DOWN 0x0
329 #define SSP3_ELPG_CLAMP_EN 0x0
330 #define SSP3_ELPG_CLAMP_EN_EARLY 0x0
331 #define SSP3_ELPG_VCORE_DOWN 0x0
333 #define USB2_PORT3_WAKE_INTERRUPT_ENABLE 0x0
334 #define SS_PORT0_WAKE_INTERRUPT_ENABLE (1 << 6)
335 #define SS_PORT1_WAKE_INTERRUPT_ENABLE (1 << 7)
336 #define SS_PORT2_WAKE_INTERRUPT_ENABLE 0x0
337 #define SS_PORT3_WAKE_INTERRUPT_ENABLE 0x0
339 #define SS_PORT0_WAKEUP_EVENT (1 << 14)
340 #define SS_PORT1_WAKEUP_EVENT (1 << 15)
341 #define SS_PORT2_WAKEUP_EVENT 0x0
342 #define SS_PORT3_WAKEUP_EVENT 0x0
344 #define USB2_PORT0_WAKEUP_EVENT (1 << 8)
345 #define USB2_PORT1_WAKEUP_EVENT (1 << 9)
346 #define USB2_PORT2_WAKEUP_EVENT (1 << 10)
347 #define USB2_PORT3_WAKEUP_EVENT 0x0
348 #define USB2_HSIC_PORT0_WAKEUP_EVENT (1 << 11)
349 #define USB2_HSIC_PORT1_WAKEUP_EVENT (1 << 12)
350 #define USB2_HSIC_PORT0_WAKE_INTERRUPT_ENABLE (1 << 3)
351 #define USB2_HSIC_PORT1_WAKE_INTERRUPT_ENABLE (1 << 4)
353 #define XUSB_ALL_WAKE_EVENT \
354 (USB2_PORT0_WAKEUP_EVENT | USB2_PORT1_WAKEUP_EVENT | \
355 USB2_PORT2_WAKEUP_EVENT | \
356 SS_PORT0_WAKEUP_EVENT | SS_PORT1_WAKEUP_EVENT | \
357 SS_PORT2_WAKEUP_EVENT | \
358 USB2_HSIC_PORT0_WAKEUP_EVENT)
361 /* PADCTL register offset (Shared T124/T210/T114)*/
362 #define USB2_PORT0_WAKE_INTERRUPT_ENABLE (1 << 0)
363 #define USB2_PORT1_WAKE_INTERRUPT_ENABLE (1 << 1)
364 #define USB2_PORT2_WAKE_INTERRUPT_ENABLE (1 << 2)
367 #define XUSB_PADCTL_USB2_PAD_MUX_0 0x4
368 #define PAD_PORT_MASK(_p) (0x3 << (_p * 2))
369 #define PAD_PORT_SNPS(_p) (0x0 << (_p * 2))
370 #define PAD_PORT_XUSB(_p) (0x1 << (_p * 2))
371 #define XUSB_OTG_MODE 3
372 #define XUSB_DEVICE_MODE 2
373 #define XUSB_HOST_MODE 1
375 #define XUSB_PADCTL_USB2_PORT_CAP_0 0x8
376 #define USB2_OTG_PORT_CAP(_p, val) ((val & 0x3) << (_p * 4))
377 #define USB2_PORT_CAP_REVERSE_ID(x) (0x1 << ((4 * (x + 1)) - 1))
379 #define CLK_RST_PLLU_HW_PWRDN_CFG0_0 0x530
380 #define PLLU_CLK_ENABLE_OVERRIDE_VALUE (1 << 3)
381 #define PLLU_SEQ_IN_SWCTL (1 << 4)
384 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
385 /* XUSB_PADCTL_USB2_PAD_MUX_0 */
386 #define BIAS_PAD_MASK (0x3 << 18)
387 #define BIAS_PAD_XUSB (0x1 << 18)
388 #define HSIC_PAD_TRK(x) (((x) & 0x3) << 16)
389 #define HSIC_PAD_TRK_SNPS (0)
390 #define HSIC_PAD_TRK_XUSB (1)
392 #define XUSB_PADCTL_USB3_PAD_MUX_0 0x28
393 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK0 (1 << 1)
394 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK1 (1 << 2)
395 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK2 (1 << 3)
396 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK3 (1 << 4)
397 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK4 (1 << 5)
398 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK5 (1 << 6)
399 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK6 (1 << 7)
400 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_SATA_PAD_IDDQ_DISABLE_MASK0 (1 << 8)
401 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0 (0x3 << 12)
402 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1 (0x3 << 14)
403 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE2 (0x3 << 16)
404 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3 (0x3 << 18)
405 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4 (0x3 << 20)
406 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE5 (0x3 << 22)
407 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE6 (0x3 << 24)
408 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0 (0x3 << 30)
409 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0_OWNER_USB3_SS (0x1 << 30)
410 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0_OWNER_USB3_SS (0x1 << 12)
411 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3_OWNER_USB3_SS (0x1 << 18)
412 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4_OWNER_USB3_SS (0x1 << 20)
413 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE5_OWNER_USB3_SS (0x1 << 22)
414 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE6_OWNER_USB3_SS (0x1 << 24)
415 #define PAD_MUX_PAD_LANE(_lane, val) \
416 ((_lane == 8) ? ((val & 0x3) << 30) : \
417 ((val & 0x3) << (12 + _lane * 2)))
418 #define PAD_MUX_PAD_LANE_IDDQ(_lane, val) \
419 ((_lane == 8) ? ((val & 0x1) << 8) : \
420 ((val & 0x1) << (_lane + 1)))
422 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0 0x284
423 #define HS_SQUELCH_LEVEL(x) ((x & 0x7) << 0)
424 #define HS_DISCON_LEVEL(x) (((x) & 0x7) << 3)
425 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_1 0x288
426 #define PD_MASK (0x1 << 11)
427 #define PD (0x0 << 11)
428 #define PD_TRK_MASK (0x1 << 26)
429 #define PD_TRK (0x0 << 26)
430 #define TRK_START_TIMER_MASK (0x7F << 12)
431 #define TRK_START_TIMER (0x1E << 12)
432 #define TRK_DONE_RESET_TIMER_MASK (0x7F << 19)
433 #define TRK_DONE_RESET_TIMER (0xA << 19)
434 #define GET_PCTRL(x) ((x & 0xfc0) >> 6)
435 #define GET_TCTRL(x) ((x & 0x3f) >> 0)
439 #define XUSB_PADCTL_HSIC_PAD_TRK_CTL_0 0x340
440 #define HSIC_TRK_START_TIMER(x) (((x) & 0x7F) << 5)
441 #define HSIC_TRK_DONE_RESET_TIMER(x) (((x) & 0x7F) << 12)
442 #define HSIC_PD_TRK(x) (((x) & 0x1) << 19)
444 #define XUSB_PADCTL_HSIC_PAD1_CTL_0_0 0x320
445 #define PAD1_PD_TX_DATA0 (1 << 1)
446 #define PAD1_PD_TX_DATA1 (1 << 2)
447 #define PAD1_PD_TX_STROBE (1 << 3)
448 #define PAD1_PD_TX_MASK \
449 (PAD1_PD_TX_DATA0 | PAD1_PD_TX_DATA1 | PAD1_PD_TX_STROBE)
452 #define XUSB_PADCTL_VBUS_OC_MAP_0 0x18
453 #define VBUS_OC_MAP(_p, val) ((val & 0xf) << ((_p * 5) + 1))
454 #define VBUS_ENABLE(x) (1 << ((x)*5))
455 #define OC_DISABLE (0xf)
457 #define XUSB_PADCTL_OC_DET_0 0x1c
458 #define VBUS_EN_OC_MAP(x, v) 0x0
459 #define SET_OC_DETECTED(x) (1 << (x))
460 #define OC_DETECTED(x) (1 << (8 + (x)))
461 #define OC_DETECTED_VBUS_PAD(x) (1 << (12 + (x)))
462 #define OC_DETECTED_VBUS_PAD_MASK (0xf << 12)
463 #define OC_DETECTED_INTR_ENABLE(x) (1 << (20 + (x)))
464 #define OC_DETECTED_INTR_ENABLE_VBUS_PAD(x) (1 << (24 + (x)))
466 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_0(_p) (0x88 + _p * 0x40)
467 #define USB2_OTG_HS_CURR_LVL (0x3F << 0)
468 #define USB2_OTG_PD (0x1 << 26)
469 #define USB2_OTG_PD2 (0x1 << 27)
470 #define USB2_PD2_OVRD_EN (0x1 << 28)
471 #define USB2_OTG_PD_ZI (0x1 << 29)
473 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_1(_p) (0x8c + _p * 0x40)
474 #define USB2_OTG_TERM_RANGE_ADJ (0xF << 3)
475 #define USB2_OTG_PD_DR (0x1 << 2)
476 #define USB2_OTG_PD_DISC_FORCE_POWERUP (0x1 << 1)
477 #define USB2_OTG_PD_CHRP_FORCE_POWERUP (0x1 << 0)
478 #define RPD_CTRL (0x1f << 26)
479 #define GET_RPD_CTRL(x) ((x & 0x7c000000) >> 26)
480 #define USB2_OTG_HS_IREF_CAP 0x0
483 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL0(_p) \
486 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p) \
488 #define VREG_FIX18 (1 << 6)
489 #define VREG_LEV (0x3 << 7)
490 #define VREG_LEV_EN (0x1 << 7)
492 #define XUSB_PADCTL_USB2_OC_MAP_0 0x10
493 #define PORT_OC_PIN(_p, val) ((val & 0xf) << (_p * 4))
494 #define OC_VBUS_PAD(p) (p + 4)
495 #define OC_DISABLED 0xf
497 #define XUSB_PADCTL_SS_PORT_MAP 0x14
498 #define SS_PORT_MAP(_p, val) \
499 ((val & 0x7) << (_p * 5))
501 #define XUSB_PADCTL_UPHY_USB3_ECTL_2_0(p) (0xa64 + p * 0x40)
502 #define XUSB_PADCTL_UPHY_USB3_ECTL_2_0_RX_CTLE_MASK 0xffff
503 #define XUSB_PADCTL_UPHY_USB3_ECTL_3_0(p) (0xa68 + p * 0x40)
504 #define XUSB_PADCTL_UPHY_USB3_ECTL_4_0(p) (0xa6c + p * 0x40)
505 #define XUSB_PADCTL_UPHY_USB3_ECTL_4_0_RX_CDR_CTRL_MASK (0xffff << 16)
506 #define XUSB_PADCTL_UPHY_USB3_ECTL_6_0(p) (0xa74 + p * 0x40)
508 #define XUSB_PADCTL_USB2_VBUS_ID_0 0xc60
509 #define VBUS_SOURCE_SELECT(val) ((val & 0x3) << 12)
510 #define ID_SOURCE_SELECT(val) ((val & 0x3) << 16)
511 #define USB2_VBUS_ID_0_VBUS_OVERRIDE (1 << 14)
512 #define IDDIG_CHNG_INTR_EN (1 << 11)
513 #define USB2_VBUS_ID_0_ID_SRC_OVERRIDE (0x1 << 16)
514 #define USB2_VBUS_ID_0_ID_OVERRIDE (0xf << 18)
515 #define USB2_VBUS_ID_0_ID_OVERRIDE_RID_FLOAT (0x8 << 18)
516 #define USB2_VBUS_ID_0_ID_OVERRIDE_RID_GND (0x0 << 18)
517 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_STS (0x1 << 0)
518 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_STS_CHG (0x1 << 1)
519 #define USB2_VBUS_ID_0_VBUS_SESS_VLD_CHG_INT_EN (0x1 << 2)
520 #define USB2_VBUS_ID_0_VBUS_VLD_STS (0x1 << 3)
521 #define USB2_VBUS_ID_0_VBUS_VLD_STS_CHG (0x1 << 4)
522 #define USB2_VBUS_ID_0_VBUS_VLD_CHG_INT_EN (0x1 << 5)
523 #define USB2_VBUS_ID_0_IDDIG_STS (0x1 << 6)
524 #define USB2_VBUS_ID_0_IDDIGA_STS (0x1 << 7)
525 #define USB2_VBUS_ID_0_IDDIGB_STS (0x1 << 8)
526 #define USB2_VBUS_ID_0_IDDIGC_STS (0x1 << 9)
527 #define USB2_VBUS_ID_0_RID_MASK (0xf << 6)
528 #define USB2_VBUS_ID_0_RID_FLOAT USB2_VBUS_ID_0_IDDIG_STS
529 #define USB2_VBUS_ID_0_RID_A USB2_VBUS_ID_0_IDDIGA_STS
530 #define USB2_VBUS_ID_0_RID_B USB2_VBUS_ID_0_IDDIGB_STS
531 #define USB2_VBUS_ID_0_RID_C USB2_VBUS_ID_0_IDDIGC_STS
532 #define USB2_VBUS_ID_0_RID_GND (0x0 << 6)
533 #define USB2_VBUS_ID_0_IDDIG_STS_CHG (0x1 << 10)
534 #define USB2_VBUS_ID_0_IDDIG_CHG_INT_EN (0x1 << 11)
535 #define USB2_VBUS_ID_0_VBUS_SRC_SELECT (0x3 << 12)
536 #define USB2_VBUS_ID_0_VBUS_SRC_OVERRIDE (0x1 << 12)
537 #define USB2_VBUS_ID_0_VBUS_WKUP_OVERRIDE (0x1 << 15)
538 #define USB2_VBUS_ID_0_ID_SRC_SELECT (0x3 << 16)
539 #define USB2_VBUS_ID_0_VBUS_WKUP_STS (0x1 << 22)
540 #define USB2_VBUS_ID_0_VBUS_WKUP_STS_CHG (0x1 << 23)
541 #define USB2_VBUS_ID_0_VBUS_WKUP_CHG_INT_EN (0x1 << 24)
542 #define USB2_VBUS_ID_0_INTR_STS_CHG_MASK (USB2_VBUS_ID_0_VBUS_VLD_STS_CHG | \
543 USB2_VBUS_ID_0_VBUS_SESS_VLD_STS_CHG | \
544 USB2_VBUS_ID_0_VBUS_WKUP_STS_CHG)
546 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL0_0(x) (0x80 + 0x40 * x)
547 #define USB2_BATTERY_CHRG_OTGPAD_GENERATE_SRP (1 << 31)
548 #define USB2_BATTERY_CHRG_OTGPAD_SRP_INTR_EN (1 << 30)
549 #define USB2_BATTERY_CHRG_OTGPAD_SRP_DETECTED (1 << 29)
550 #define USB2_BATTERY_CHRG_OTGPAD_SRP_DETECT_EN (1 << 28)
551 #define USB2_BATTERY_CHRG_OTGPAD_DCD_DETECTED (1 << 26)
552 #define USB2_BATTERY_CHRG_OTGPAD_INTR_STS_CHG_MASK (\
553 USB2_BATTERY_CHRG_OTGPAD_SRP_DETECTED | \
554 USB2_BATTERY_CHRG_OTGPAD_DCD_DETECTED)
557 #define XUSB_PADCTL_USB3_PAD_MUX_0 0x134
558 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK0 (1 << 1)
559 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK1 (1 << 2)
560 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK2 (1 << 3)
561 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK3 (1 << 4)
562 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_PCIE_PAD_IDDQ_DISABLE_MASK4 (1 << 5)
563 #define XUSB_PADCTL_USB3_PAD_MUX_FORCE_SATA_PAD_IDDQ_DISABLE_MASK0 (1 << 6)
564 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0 (0x3 << 16)
565 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1 (0x3 << 18)
566 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE2 (0x3 << 20)
567 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE3 (0x3 << 22)
568 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE4 (0x3 << 24)
569 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0 (0x3 << 26)
570 #define XUSB_PADCTL_USB3_PAD_MUX_SATA_PAD_LANE0_OWNER_USB3_SS (0x1 << 26)
571 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE0_OWNER_USB3_SS (0x1 << 16)
572 #define XUSB_PADCTL_USB3_PAD_MUX_PCIE_PAD_LANE1_OWNER_USB3_SS (0x1 << 18)
574 #ifdef CONFIG_ARCH_TEGRA_11x_SOC
575 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0 0xa0
577 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0 0xb8
579 #define PD_MASK (0x1 << 12)
581 #define XUSB_PADCTL_VBUS_OC_MAP_0 0x0
582 #define VBUS_OC_MAP(_p, val) 0x0
583 #define VBUS_ENABLE(x) 0x0
584 #define OC_DISABLE 0x0
586 #define XUSB_PADCTL_OC_DET_0 0x18
587 #define VBUS_EN_OC_MAP(x, v) \
589 (((v) & 0x7) << 5) : (((v) & 0x7) << (10 + 3 * (x))))
590 #define SET_OC_DETECTED(x) (1 << (x))
591 #define OC_DETECTED(x) (1 << (16 + (x)))
592 #define OC_DETECTED_VBUS_PAD(x) (1 << (20 + (x)))
593 #define OC_DETECTED_VBUS_PAD_MASK (0x7 << 20)
594 #define OC_DETECTED_INTR_ENABLE(x) (1 << (24 + (x)))
595 #define OC_DETECTED_INTR_ENABLE_VBUS_PAD(x) (1 << (28 + (x)))
597 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_0(_p) (0xa0 + _p * 0x4)
598 #define USB2_OTG_HS_CURR_LVL (0x3F << 0)
599 #define USB2_OTG_PD (0x1 << 19)
600 #define USB2_OTG_PD2 (0x1 << 20)
601 #define USB2_OTG_PD_ZI (0x1 << 21)
603 #define XUSB_PADCTL_USB2_OTG_PAD_CTL_1(_p) (0xac + _p * 0x4)
604 #define USB2_OTG_PD_DR (0x1 << 2)
605 #define USB2_OTG_TERM_RANGE_ADJ (0xF << 3)
606 #define USB2_OTG_HS_IREF_CAP (0x3 << 9)
607 #define USB2_OTG_PD_CHRP_FORCE_POWERUP (0x1 << 0)
608 #define USB2_OTG_PD_DISC_FORCE_POWERUP (0x1 << 1)
611 #define XUSB_PADCTL_USB2_OC_MAP_0 0x10
612 #define PORT_OC_PIN(_p, val) ((val & 0xf) << (_p * 3))
613 #define OC_VBUS_PAD(p) (p + 4)
614 #define OC_DISABLED 0xf
616 #define XUSB_PADCTL_SS_PORT_MAP 0x14
617 #define SS_PORT_MAP(_p, val) \
618 ((val & 0x7) << (_p * 4))
620 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p) 0x0
621 #define VREG_FIX18 0x0
623 #define VREG_LEV_EN 0x0
626 #define XUSB_PADCTL_USB2_VBUS_ID_0 0x0
627 #define VBUS_SOURCE_SELECT(val) 0x0
628 #define ID_SOURCE_SELECT(val) 0x0
629 #define IDDIG_CHNG_INTR_EN 0x0
631 #define HSIC_PAD_TRK 0x0
632 #define TRK_START_TIMER_MASK 0x0
633 #define TRK_DONE_RESET_TIMER_MASK 0x0
635 #define XUSB_PADCTL_HSIC_PAD_TRK_CTL_0 0x0
636 #define HSIC_TRK_START_TIMER_MASK 0x0
637 #define HSIC_TRK_DONE_RESET_TIMER_MASK 0x0
638 #define HSIC_PD_TRK_MASK 0x0
640 #define XUSB_PADCTL_HSIC_PAD1_CTL_0_0 0x0
641 #define PAD1_PD_TX_MASK 0x0
644 #define CLK_RST_CONTROLLER_SATA_PLL_CFG0_0 0x490
645 #define SATA_PADPLL_RESET_SWCTL (1 << 0)
646 #define SATA_PADPLL_USE_LOCKDET (1 << 2)
647 #define SATA_SEQ_IN_SWCTL (1 << 4)
648 #define SATA_SEQ_RESET_INPUT_VALUE (1 << 5)
649 #define SATA_SEQ_LANE_PD_INPUT_VALUE (1 << 6)
650 #define SATA_SEQ_PADPLL_PD_INPUT_VALUE (1 << 7)
651 #define SATA_PADPLL_SLEEP_IDDQ (1 << 13)
652 #define SATA_SEQ_ENABLE (1 << 24)
653 #define SATA_SEQ_START_STATE (1 << 25)
655 #define CLK_RST_CONTROLLER_XUSBIO_PLL_CFG0_0 0x51C
656 #define XUSBIO_PADPLL_RESET_SWCTL (1 << 0)
657 #define XUSBIO_CLK_ENABLE_SWCTL (1 << 2)
658 #define XUSBIO_PADPLL_USE_LOCKDET (1 << 6)
659 #define XUSBIO_PADPLL_SLEEP_IDDQ (1 << 13)
660 #define XUSBIO_SEQ_ENABLE (1 << 24)
662 void tegra_xhci_release_otg_port(bool release);
663 void tegra_xhci_release_dev_port(bool release);
664 void tegra_xhci_ss_wake_on_interrupts(u32 portmap, bool enable);
665 void tegra_xhci_hs_wake_on_interrupts(u32 portmap, bool enable);
666 void tegra_xhci_ss_wake_signal(u32 portmap, bool enable);
667 void tegra_xhci_ss_vcore(u32 portmap, bool enable);
669 #ifndef CONFIG_ARCH_TEGRA_21x_SOC
670 int utmi_phy_pad_disable(void);
671 int utmi_phy_pad_enable(void);
673 int utmi_phy_pad_disable(struct tegra_prod_list *prod_list);
674 int utmi_phy_pad_enable(struct tegra_prod_list *prod_list);
676 int usb3_phy_pad_enable(u32 lane_owner);
677 int pcie_phy_pad_enable(bool enable, int lane_owner);
678 bool tegra_phy_get_lane_rdet(u8 lane_num);
680 int utmi_phy_iddq_override(bool set);
681 void tegra_usb_pad_reg_update(u32 reg_offset, u32 mask, u32 val);
682 u32 tegra_usb_pad_reg_read(u32 reg_offset);
683 void tegra_usb_pad_reg_write(u32 reg_offset, u32 val);
685 void xusb_utmi_pad_init(int pad, u32 cap, bool external_pmic);
686 void xusb_ss_pad_init(int pad, int port_map, u32 cap);
687 void usb2_vbus_id_init(void);
688 int hsic_trk_enable(void);
690 int pex_usb_pad_pll_reset_assert(void);
691 int pex_usb_pad_pll_reset_deassert(void);
692 int sata_usb_pad_pll_reset_assert(void);
693 int sata_usb_pad_pll_reset_deassert(void);
694 int t210_sata_uphy_pll_init(bool sata_used_by_xusb);
696 int tegra_pd2_asserted(int pad);
697 int tegra_pd2_deasserted(int pad);
699 void xusb_utmi_pad_deinit(int pad);
700 void xusb_ss_pad_deinit(int pad);
701 void usb3_phy_pad_disable(void);
702 void xusb_enable_pad_protection(bool);
704 void xusb_utmi_pad_driver_power(int port, bool on);
706 int tegra_padctl_init_sata_pad(void);
707 int tegra_padctl_enable_sata_pad(bool enable);
709 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
710 void t210_receiver_detector(unsigned port, bool on);
711 void t210_clamp_en_early(unsigned port, bool on);