summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorKamil Debski <k.debski@samsung.com>2013-07-31 12:04:33 +0200
committerChanho Park <chanho61.park@samsung.com>2014-11-18 11:44:41 +0900
commit1282c8c03dbfff15ff8d71d6458dd08ae2c5fc49 (patch)
tree52be6e291a99918eeccdf755f84c02c19813e9fc /drivers/usb
parent7722d81447ba701572cf7dcee081d5f8f57b8ae7 (diff)
downloadlinux-3.10-1282c8c03dbfff15ff8d71d6458dd08ae2c5fc49.tar.gz
linux-3.10-1282c8c03dbfff15ff8d71d6458dd08ae2c5fc49.tar.bz2
linux-3.10-1282c8c03dbfff15ff8d71d6458dd08ae2c5fc49.zip
usb: s3c-hsotg: Use the new Exynos USB phy driver with the generic phy framework
Change the used phy driver to the new Exynos USB phy driver that uses the generic phy framework. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/s3c-hsotg.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
index afcd3260a9a..0ec467f1e89 100644
--- a/drivers/usb/gadget/s3c-hsotg.c
+++ b/drivers/usb/gadget/s3c-hsotg.c
@@ -30,6 +30,7 @@
#include <linux/clk.h>
#include <linux/regulator/consumer.h>
#include <linux/of_platform.h>
+#include <linux/phy/phy.h>
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
@@ -133,6 +134,7 @@ struct s3c_hsotg_ep {
/**
* struct s3c_hsotg - driver state.
* @dev: The parent device supplied to the probe function
+
* @driver: USB gadget driver
* @phy: The otg phy transceiver structure for phy control.
* @plat: The platform specific configuration data. This can be removed once
@@ -156,7 +158,7 @@ struct s3c_hsotg_ep {
struct s3c_hsotg {
struct device *dev;
struct usb_gadget_driver *driver;
- struct usb_phy *phy;
+ struct phy *phy;
struct s3c_hsotg_plat *plat;
spinlock_t lock;
@@ -2823,14 +2825,11 @@ static void s3c_hsotg_phy_enable(struct s3c_hsotg *hsotg)
dev_dbg(hsotg->dev, "pdev 0x%p\n", pdev);
- if (hsotg->phy) {
- struct usb_otg *otg = hsotg->phy->otg;
- if (otg && otg->set_host)
- otg->set_host(otg, NULL);
- usb_phy_init(hsotg->phy);
- }
+ if (hsotg->phy)
+ phy_power_on(hsotg->phy);
else if (hsotg->plat->phy_init)
hsotg->plat->phy_init(pdev, hsotg->plat->phy_type);
+
}
/**
@@ -2845,7 +2844,7 @@ static void s3c_hsotg_phy_disable(struct s3c_hsotg *hsotg)
struct platform_device *pdev = to_platform_device(hsotg->dev);
if (hsotg->phy)
- usb_phy_shutdown(hsotg->phy);
+ phy_power_off(hsotg->phy);
else if (hsotg->plat->phy_exit)
hsotg->plat->phy_exit(pdev, hsotg->plat->phy_type);
}
@@ -3455,7 +3454,7 @@ static void s3c_hsotg_delete_debug(struct s3c_hsotg *hsotg)
static int s3c_hsotg_probe(struct platform_device *pdev)
{
struct s3c_hsotg_plat *plat = pdev->dev.platform_data;
- struct usb_phy *phy;
+ struct phy *phy;
struct device *dev = &pdev->dev;
struct s3c_hsotg_ep *eps;
struct s3c_hsotg *hsotg;
@@ -3470,7 +3469,7 @@ static int s3c_hsotg_probe(struct platform_device *pdev)
return -ENOMEM;
}
- phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
+ phy = devm_phy_get(&pdev->dev, "device");
if (IS_ERR(phy)) {
/* Fallback for pdata */
plat = pdev->dev.platform_data;