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: Mon, 4 Feb 2013 14:24:35 +0100 [thread overview]
Message-ID: <1359984275-24646-10-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1359984275-24646-1-git-send-email-s.hauer@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
drivers/usb/chipidea/ci13xxx_imx.c | 39 +++++++++++++++++-------------------
1 file changed, 18 insertions(+), 21 deletions(-)
diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c
index b598bb8f..136869b 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,19 +146,21 @@ 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 (PTR_ERR(phy) == -EPROBE_DEFER) {
+ ret = -EPROBE_DEFER;
+ goto err_clk;
+ }
+
+ 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;
}
+
+ data->phy = phy;
}
/* we only support host now, so enable vbus here */
@@ -170,7 +171,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 +223,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 +243,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
next prev parent reply other threads:[~2013-02-04 13:24 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
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 1/9] usb: otg: use try_module_get in all usb_get_phy functions and add missing module_put Sascha Hauer
2013-02-04 13:59 ` Roger Quadros
2013-02-04 14:10 ` Marc Kleine-Budde
2013-02-04 14:39 ` Roger Quadros
2013-02-04 13:24 ` [PATCH 2/9] USB: move bulk of otg/otg.c to phy/phy.c Sascha Hauer
2013-02-19 9:30 ` Felipe Balbi
2013-02-19 19:06 ` Sascha Hauer
2013-02-19 19:48 ` Felipe Balbi
2013-02-04 13:24 ` [PATCH 3/9] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-14 9:36 ` Alexander Shishkin
2013-02-14 9:49 ` Marc Kleine-Budde
2013-02-14 9:58 ` Felipe Balbi
2013-02-14 10:07 ` Sascha Hauer
2013-02-14 10:15 ` Felipe Balbi
2013-02-14 11:24 ` Sascha Hauer
2013-02-14 13:10 ` Felipe Balbi
2013-02-14 16:06 ` Sascha Hauer
2013-02-14 18:04 ` Felipe Balbi
2013-02-14 18:30 ` Sascha Hauer
2013-02-14 19:36 ` Felipe Balbi
2013-02-15 10:54 ` Sascha Hauer
2013-02-17 9:00 ` Peter Chen
2013-02-14 10:11 ` Marc Kleine-Budde
2013-02-14 10:16 ` Felipe Balbi
2013-03-13 9:43 ` Peter Chen
2013-02-04 13:24 ` [PATCH 4/9] USB: chipidea: ci13xxx-imx: create dynamic platformdata Sascha Hauer
2013-02-04 13:24 ` [PATCH 5/9] USB: chipidea: add PTW and PTS handling Sascha Hauer
2013-02-14 13:07 ` Alexander Shishkin
2013-02-27 10:23 ` Marc Kleine-Budde
2013-02-04 13:24 ` [PATCH 6/9] USB chipidea: introduce dual role mode pdata flags Sascha Hauer
2013-02-22 2:09 ` Peter Chen
2013-02-27 10:42 ` Marc Kleine-Budde
2013-02-04 13:24 ` [PATCH 7/9] USB chipidea i.MX: introduce dr_mode property Sascha Hauer
2013-02-04 13:24 ` [PATCH 8/9] USB mxs-phy: Register phy with framework Sascha Hauer
2013-02-04 13:24 ` Sascha Hauer [this message]
2013-02-05 11:45 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy Sergei Shtylyov
2013-02-05 11:58 ` Sascha Hauer
2013-02-05 5:54 ` [PATCH v4] USB: add devicetree helpers for determining dr_mode and phy_type Peter Chen
2013-02-07 10:56 ` Sascha Hauer
2013-02-12 13:59 ` Sascha Hauer
2013-02-14 13:22 ` Alexander Shishkin
-- 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-01 7:52 [PATCH v3] USB: add devicetree helpers for determining dr_mode and phy_type Sascha Hauer
2013-02-01 7:52 ` [PATCH 9/9] USB chipidea i.MX: use devm_usb_get_phy_by_phandle to get phy 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=1359984275-24646-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).