Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

phy: tegra: xusb: Add support to get companion USB 3 port

Tegra XUSB host, device mode driver requires the USB 3 companion port
number for corresponding USB 2 port. Add API to retrieve the same.

Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-by: JC Kuo <jckuo@nvidia.com>
Acked-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>

authored by

Nagarjuna Kristam and committed by
Thierry Reding
5a40fc4b e8f7d2f4

+23
+21
drivers/phy/tegra/xusb.c
··· 1299 1299 } 1300 1300 EXPORT_SYMBOL_GPL(tegra_phy_xusb_utmi_port_reset); 1301 1301 1302 + int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, 1303 + unsigned int port) 1304 + { 1305 + struct tegra_xusb_usb2_port *usb2; 1306 + struct tegra_xusb_usb3_port *usb3; 1307 + int i; 1308 + 1309 + usb2 = tegra_xusb_find_usb2_port(padctl, port); 1310 + if (!usb2) 1311 + return -EINVAL; 1312 + 1313 + for (i = 0; i < padctl->soc->ports.usb3.count; i++) { 1314 + usb3 = tegra_xusb_find_usb3_port(padctl, i); 1315 + if (usb3 && usb3->port == usb2->base.index) 1316 + return usb3->base.index; 1317 + } 1318 + 1319 + return -ENODEV; 1320 + } 1321 + EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_usb3_companion); 1322 + 1302 1323 MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>"); 1303 1324 MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver"); 1304 1325 MODULE_LICENSE("GPL v2");
+2
include/linux/phy/tegra/xusb.h
··· 21 21 int tegra_xusb_padctl_set_vbus_override(struct tegra_xusb_padctl *padctl, 22 22 bool val); 23 23 int tegra_phy_xusb_utmi_port_reset(struct phy *phy); 24 + int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, 25 + unsigned int port); 24 26 #endif /* PHY_TEGRA_XUSB_H */