All of lore.kernel.org
 help / color / mirror / Atom feed
From: s.hauer@pengutronix.de (Sascha Hauer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy
Date: Fri,  1 Feb 2013 08:52:12 +0100	[thread overview]
Message-ID: <1359705132-9434-10-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1359705132-9434-1-git-send-email-s.hauer@pengutronix.de>

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/usb/chipidea/ci13xxx_imx.c |   31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c
index b598bb8f..1df4b41 100644
--- a/drivers/usb/chipidea/ci13xxx_imx.c
+++ b/drivers/usb/chipidea/ci13xxx_imx.c
@@ -30,7 +30,6 @@
 	((struct usb_phy *)platform_get_drvdata(pdev))
 
 struct ci13xxx_imx_data {
-	struct device_node *phy_np;
 	struct usb_phy *phy;
 	struct platform_device *ci_pdev;
 	struct clk *clk;
@@ -90,12 +89,12 @@ static int ci13xxx_imx_probe(struct platform_device *pdev)
 {
 	struct ci13xxx_imx_data *data;
 	struct ci13xxx_platform_data *pdata;
-	struct platform_device *plat_ci, *phy_pdev;
-	struct device_node *phy_np;
+	struct platform_device *plat_ci;
 	struct resource *res;
 	struct regulator *reg_vbus;
 	struct pinctrl *pinctrl;
 	int ret;
+	struct usb_phy *phy;
 
 	if (of_find_property(pdev->dev.of_node, "fsl,usbmisc", NULL)
 		&& !usbmisc_ops)
@@ -147,18 +146,12 @@ static int ci13xxx_imx_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	phy_np = of_parse_phandle(pdev->dev.of_node, "fsl,usbphy", 0);
-	if (phy_np) {
-		data->phy_np = phy_np;
-		phy_pdev = of_find_device_by_node(phy_np);
-		if (phy_pdev) {
-			struct usb_phy *phy;
-			phy = pdev_to_phy(phy_pdev);
-			if (phy &&
-			    try_module_get(phy_pdev->dev.driver->owner)) {
-				usb_phy_init(phy);
-				data->phy = phy;
-			}
+	phy = devm_usb_get_phy_by_phandle(&pdev->dev, "fsl,usbphy", 0);
+	if (!IS_ERR(phy)) {
+		ret = usb_phy_init(phy);
+		if (ret) {
+			dev_err(&pdev->dev, "unable to init phy: %d\n", ret);
+			goto err_clk;
 		}
 	}
 
@@ -170,7 +163,7 @@ static int ci13xxx_imx_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev,
 				"Failed to enable vbus regulator, err=%d\n",
 				ret);
-			goto put_np;
+			goto err_clk;
 		}
 		data->reg_vbus = reg_vbus;
 	} else {
@@ -222,9 +215,7 @@ static int ci13xxx_imx_probe(struct platform_device *pdev)
 err:
 	if (reg_vbus)
 		regulator_disable(reg_vbus);
-put_np:
-	if (phy_np)
-		of_node_put(phy_np);
+err_clk:
 	clk_disable_unprepare(data->clk);
 	return ret;
 }
@@ -244,8 +235,6 @@ static int ci13xxx_imx_remove(struct platform_device *pdev)
 		module_put(data->phy->dev->driver->owner);
 	}
 
-	of_node_put(data->phy_np);
-
 	clk_disable_unprepare(data->clk);
 
 	platform_set_drvdata(pdev, NULL);
-- 
1.7.10.4

  parent reply	other threads:[~2013-02-01  7:52 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-01  7:52 [PATCH v3] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-01  7:52 ` [PATCH 1/9] USB: move bulk of otg/otg.c to phy/phy.c Sascha Hauer
2013-02-01  7:52 ` [PATCH 2/9] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-01  7:52 ` [PATCH 3/9] USB: chipidea: ci13xxx-imx: create dynamic platformdata Sascha Hauer
2013-02-01  7:52 ` [PATCH 4/9] USB: chipidea: add PTW and PTS handling Sascha Hauer
2013-02-01  9:00   ` Michael Grzeschik
2013-02-01 12:50     ` Alexander Shishkin
2013-02-04  3:16       ` Peter Chen
2013-02-01  7:52 ` [PATCH 5/9] USB chipidea: introduce dual role mode pdata flags Sascha Hauer
2013-02-01  7:52 ` [PATCH 6/9] USB chipidea i.MX: introduce dr_mode property Sascha Hauer
2013-02-01  7:52 ` [PATCH 7/9] como fec wip Sascha Hauer
2013-02-01  7:52 ` [PATCH 8/9] USB mxs-phy: Register phy with framework Sascha Hauer
2013-02-01  7:52 ` Sascha Hauer [this message]
2013-02-01 17:53 ` [PATCH v3] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-02 14:54   ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2013-02-27 12:27 [PATCH v5 0/9] " Marc Kleine-Budde
2013-02-27 12:27 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy Marc Kleine-Budde
2013-02-04 13:24 [PATCH v4] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-04 13:24 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy Sascha Hauer
2013-02-05 11:45   ` Sergei Shtylyov
2013-02-05 11:58     ` Sascha Hauer
2013-02-01  7:48 [PATCH v3] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-01  7:48 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1359705132-9434-10-git-send-email-s.hauer@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.