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_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)
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)
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)
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)
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)
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)
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
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)
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)
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)
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)
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)
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)
209 #define SATA_LANE (0x1)
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)
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)
226 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0 0x140
227 #define XUSB_PADCTL_IOPHY_PLL_S0_CTL3_0_RCAL_BYPASS (1 << 7)
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)
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)
245 /* PADCTL ELPG_PROGRAM */
246 #ifdef CONFIG_ARCH_TEGRA_21x_SOC
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)
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)
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))
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)
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)
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)
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
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
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
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)
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)
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)
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
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))
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)
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)
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)))
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)
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)
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)
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)
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)))
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)
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
463 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL0(_p) \
466 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p) \
468 #define VREG_FIX18 (1 << 6)
469 #define VREG_LEV (0x3 << 7)
470 #define VREG_LEV_EN (0x1 << 7)
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
477 #define XUSB_PADCTL_SS_PORT_MAP 0x14
478 #define SS_PORT_MAP(_p, val) \
479 ((val & 0x7) << (_p * 5))
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)
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)
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)
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)
554 #ifdef CONFIG_ARCH_TEGRA_11x_SOC
555 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0 0xa0
557 #define XUSB_PADCTL_USB2_BIAS_PAD_CTL_0 0xb8
559 #define PD_MASK (0x1 << 12)
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
566 #define XUSB_PADCTL_OC_DET_0 0x18
567 #define VBUS_EN_OC_MAP(x, v) \
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)))
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)
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)
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
596 #define XUSB_PADCTL_SS_PORT_MAP 0x14
597 #define SS_PORT_MAP(_p, val) \
598 ((val & 0x7) << (_p * 4))
600 #define XUSB_PADCTL_USB2_BATTERY_CHRG_OTGPAD_CTL1(_p) 0x0
601 #define VREG_FIX18 0x0
603 #define VREG_LEV_EN 0x0
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
611 #define HSIC_PAD_TRK 0x0
612 #define TRK_START_TIMER_MASK 0x0
613 #define TRK_DONE_RESET_TIMER_MASK 0x0
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
620 #define XUSB_PADCTL_HSIC_PAD1_CTL_0_0 0x0
621 #define PAD1_PD_TX_MASK 0x0
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)
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)
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);
649 #ifndef CONFIG_ARCH_TEGRA_21x_SOC
650 int utmi_phy_pad_disable(void);
651 int utmi_phy_pad_enable(void);
653 int utmi_phy_pad_disable(struct tegra_prod_list *prod_list);
654 int utmi_phy_pad_enable(struct tegra_prod_list *prod_list);
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);
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);
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);
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);
676 int tegra_pd2_asserted(int pad);
677 int tegra_pd2_deasserted(int pad);
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);
684 void xusb_utmi_pad_driver_power(int port, bool on);
686 int tegra_padctl_init_sata_pad(void);
687 int tegra_padctl_enable_sata_pad(bool enable);