From: Roger Quadros <rogerq@ti.com>
To: <balbi@ti.com>
Cc: <tony@atomide.com>, <mark.rutland@arm.com>, <mkl@pengutronix.de>,
<linux-kernel@vger.kernel.org>, <linux-usb@vger.kernel.org>,
<linux-omap@vger.kernel.org>,
<devicetree-discuss@lists.ozlabs.org>, <rogerq@ti.com>
Subject: [PATCH 5/8] usb: phy: nop: Handle RESET for the PHY
Date: Tue, 12 Mar 2013 13:24:23 +0200 [thread overview]
Message-ID: <1363087466-32444-6-git-send-email-rogerq@ti.com> (raw)
In-Reply-To: <1363087466-32444-1-git-send-email-rogerq@ti.com>
We expect the RESET line to be modeled as a regulator with supply
name "reset". The regulator should be modeled such that enabling
the regulator brings the PHY device out of RESET and disabling the
regulator holds the device in RESET.
They PHY will be held in RESET in .shutdown() and brought out of
RESET in .init().
Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Felipe Balbi <balbi@ti.com>
---
drivers/usb/otg/nop-usb-xceiv.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/otg/nop-usb-xceiv.c b/drivers/usb/otg/nop-usb-xceiv.c
index fbdcfef..6efc9b7 100644
--- a/drivers/usb/otg/nop-usb-xceiv.c
+++ b/drivers/usb/otg/nop-usb-xceiv.c
@@ -40,6 +40,7 @@ struct nop_usb_xceiv {
struct device *dev;
struct clk *clk;
struct regulator *vcc;
+ struct regulator *reset;
};
static struct platform_device *pd;
@@ -80,6 +81,12 @@ static int nop_init(struct usb_phy *phy)
if (!IS_ERR(nop->clk))
clk_enable(nop->clk);
+ if (!IS_ERR(nop->reset)) {
+ /* De-assert RESET */
+ if (regulator_enable(nop->reset))
+ dev_err(phy->dev, "Failed to de-assert reset\n");
+ }
+
return 0;
}
@@ -87,6 +94,12 @@ static void nop_shutdown(struct usb_phy *phy)
{
struct nop_usb_xceiv *nop = dev_get_drvdata(phy->dev);
+ if (!IS_ERR(nop->reset)) {
+ /* Assert RESET */
+ if (regulator_disable(nop->reset))
+ dev_err(phy->dev, "Failed to assert reset\n");
+ }
+
if (!IS_ERR(nop->clk))
clk_disable(nop->clk);
@@ -172,6 +185,12 @@ static int nop_usb_xceiv_probe(struct platform_device *pdev)
PTR_ERR(nop->vcc));
}
+ nop->reset = devm_regulator_get(&pdev->dev, "reset");
+ if (IS_ERR(nop->reset)) {
+ dev_dbg(&pdev->dev, "Error getting reset regulator: %ld\n",
+ PTR_ERR(nop->reset));
+ }
+
nop->dev = &pdev->dev;
nop->phy.dev = nop->dev;
nop->phy.label = "nop-xceiv";
--
1.7.4.1
next prev parent reply other threads:[~2013-03-12 11:27 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-12 11:24 [PATCH 0/8] USB: PHY: nop: Device tree support for 3.10 Roger Quadros
2013-03-12 11:24 ` [PATCH 1/8] usb: phy: nop: Add some parameters to platform data Roger Quadros
2013-03-12 11:54 ` Marc Kleine-Budde
2013-03-12 14:12 ` Roger Quadros
2013-03-12 14:17 ` Marc Kleine-Budde
2013-03-12 14:28 ` Roger Quadros
2013-03-12 14:42 ` Marc Kleine-Budde
2013-03-12 15:20 ` Roger Quadros
2013-03-12 16:06 ` Marc Kleine-Budde
2013-03-13 15:17 ` Peter Ujfalusi
2013-03-13 15:46 ` Roger Quadros
2013-03-13 15:52 ` Marc Kleine-Budde
2013-03-12 11:24 ` [PATCH 2/8] usb: phy: nop: use devm_kzalloc() Roger Quadros
2013-03-12 11:24 ` [PATCH 3/8] usb: phy: nop: Manage PHY clock Roger Quadros
2013-03-12 11:24 ` [PATCH 4/8] usb: phy: nop: Handle power supply regulator for the PHY Roger Quadros
2013-03-12 11:24 ` Roger Quadros [this message]
2013-03-12 11:24 ` [PATCH 6/8] usb: phy: nop: use new PHY API to register PHY Roger Quadros
2013-03-12 11:24 ` [PATCH 7/8] usb: phy: nop: Add device tree support and binding information Roger Quadros
2013-03-12 11:24 ` [PATCH 8/8] USB: phy: nop: Defer probe if device needs VCC/RESET Roger Quadros
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=1363087466-32444-6-git-send-email-rogerq@ti.com \
--to=rogerq@ti.com \
--cc=balbi@ti.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mkl@pengutronix.de \
--cc=tony@atomide.com \
/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
Powered by JetHome