Skip to content

Commit

Permalink
phy: tegra: xusb: add [set/clear]_vbus_override()
Browse files Browse the repository at this point in the history
This commit adds tegra_xusb_padctl_set_vbus_override() and
tegra_xusb_padctl_clear_vbus_override() that can be used to change
port role of a dual-role USB (otg-capable) USB2/USB3 port.

Bug 1843963

Change-Id: I89c240d781779e35daa21dff343609ec3dd29300
Signed-off-by: JC Kuo <[email protected]>
  • Loading branch information
jckuo authored and ta72 committed Feb 2, 2017
1 parent e15a977 commit 2694127
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/phy/tegra/xusb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,24 @@ int tegra_xusb_padctl_usb3_set_lfps_detect(struct tegra_xusb_padctl *padctl,
}
EXPORT_SYMBOL_GPL(tegra_xusb_padctl_usb3_set_lfps_detect);

int tegra_xusb_padctl_set_vbus_override(struct tegra_xusb_padctl *padctl)
{
if (padctl->soc->ops->vbus_override)
return padctl->soc->ops->vbus_override(padctl, true);

return -ENOSYS;
}
EXPORT_SYMBOL_GPL(tegra_xusb_padctl_set_vbus_override);

int tegra_xusb_padctl_clear_vbus_override(struct tegra_xusb_padctl *padctl)
{
if (padctl->soc->ops->vbus_override)
return padctl->soc->ops->vbus_override(padctl, false);

return -ENOSYS;
}
EXPORT_SYMBOL_GPL(tegra_xusb_padctl_clear_vbus_override);

MODULE_AUTHOR("Thierry Reding <[email protected]>");
MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver");
MODULE_LICENSE("GPL v2");
1 change: 1 addition & 0 deletions drivers/phy/tegra/xusb.h
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ struct tegra_xusb_padctl_ops {
unsigned int index, bool idle);
int (*usb3_set_lfps_detect)(struct tegra_xusb_padctl *padctl,
unsigned int index, bool enable);
int (*vbus_override)(struct tegra_xusb_padctl *padctl, bool set);
};

struct tegra_xusb_padctl_soc {
Expand Down
2 changes: 2 additions & 0 deletions include/linux/phy/tegra/xusb.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,7 @@ int tegra_xusb_padctl_hsic_set_idle(struct tegra_xusb_padctl *padctl,
unsigned int port, bool idle);
int tegra_xusb_padctl_usb3_set_lfps_detect(struct tegra_xusb_padctl *padctl,
unsigned int port, bool enable);
int tegra_xusb_padctl_set_vbus_override(struct tegra_xusb_padctl *padctl);
int tegra_xusb_padctl_clear_vbus_override(struct tegra_xusb_padctl *padctl);

#endif /* PHY_TEGRA_XUSB_H */

0 comments on commit 2694127

Please sign in to comment.