usb: renesas_usbhs: clean up rcar2.c to support a generic PHY
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tue, 7 Oct 2014 03:43:05 +0000 (12:43 +0900)
committerFelipe Balbi <balbi@ti.com>
Mon, 3 Nov 2014 16:00:56 +0000 (10:00 -0600)
To support both usb PHY and generic PHY, this patch cleans up rcar2.c.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/renesas_usbhs/rcar2.c

index f264cad..485b889 100644 (file)
 static int usbhs_rcar2_hardware_init(struct platform_device *pdev)
 {
        struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev);
-       struct usb_phy *usb_phy;
 
-       usb_phy = usb_get_phy_dev(&pdev->dev, 0);
-       if (IS_ERR(usb_phy))
-               return PTR_ERR(usb_phy);
+       if (IS_ENABLED(CONFIG_USB_PHY)) {
+               struct usb_phy *usb_phy = usb_get_phy_dev(&pdev->dev, 0);
 
-       priv->usb_phy = usb_phy;
-       return 0;
+               if (IS_ERR(usb_phy))
+                       return PTR_ERR(usb_phy);
+
+               priv->usb_phy = usb_phy;
+               return 0;
+       }
+
+       return -ENXIO;
 }
 
 static int usbhs_rcar2_hardware_exit(struct platform_device *pdev)
 {
        struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev);
 
-       if (!priv->usb_phy)
-               return 0;
-
-       usb_put_phy(priv->usb_phy);
-       priv->usb_phy = NULL;
+       if (priv->usb_phy) {
+               usb_put_phy(priv->usb_phy);
+               priv->usb_phy = NULL;
+       }
 
        return 0;
 }
@@ -47,21 +50,22 @@ static int usbhs_rcar2_power_ctrl(struct platform_device *pdev,
                                void __iomem *base, int enable)
 {
        struct usbhs_priv *priv = usbhs_pdev_to_priv(pdev);
+       int retval = -ENODEV;
 
-       if (!priv->usb_phy)
-               return -ENODEV;
+       if (priv->usb_phy) {
+               if (enable) {
+                       retval = usb_phy_init(priv->usb_phy);
 
-       if (enable) {
-               int retval = usb_phy_init(priv->usb_phy);
-
-               if (!retval)
-                       retval = usb_phy_set_suspend(priv->usb_phy, 0);
-               return retval;
+                       if (!retval)
+                               retval = usb_phy_set_suspend(priv->usb_phy, 0);
+               } else {
+                       usb_phy_set_suspend(priv->usb_phy, 1);
+                       usb_phy_shutdown(priv->usb_phy);
+                       retval = 0;
+               }
        }
 
-       usb_phy_set_suspend(priv->usb_phy, 1);
-       usb_phy_shutdown(priv->usb_phy);
-       return 0;
+       return retval;
 }
 
 static int usbhs_rcar2_get_id(struct platform_device *pdev)