From: Kishon Vijay Abraham I <kishon@ti.com>
To: <gregkh@linuxfoundation.org>
Cc: <kishon@ti.com>, <linux-kernel@vger.kernel.org>
Subject: [PATCH 12/22] usb: phy: twl4030-usb: Move code from twl4030_phy_power to the runtime PM calls
Date: Wed, 24 Sep 2014 19:17:10 +0530 [thread overview]
Message-ID: <1411566440-19169-13-git-send-email-kishon@ti.com> (raw)
In-Reply-To: <1411566440-19169-1-git-send-email-kishon@ti.com>
From: Tony Lindgren <tony@atomide.com>
We don't need twl4030_phy_power() any longer now that we have
the runtime PM calls. Let's get rid of it as it's confusing.
No functional changes, just move the code and use res instead
of ret as we are not returning that value.
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
drivers/phy/phy-twl4030-usb.c | 72 ++++++++++++++++++-----------------------
1 file changed, 31 insertions(+), 41 deletions(-)
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/phy-twl4030-usb.c
index a292db0..519cc90 100644
--- a/drivers/phy/phy-twl4030-usb.c
+++ b/drivers/phy/phy-twl4030-usb.c
@@ -383,45 +383,6 @@ static void __twl4030_phy_power(struct twl4030_usb *twl, int on)
WARN_ON(twl4030_usb_write_verify(twl, PHY_PWR_CTRL, pwr) < 0);
}
-static void twl4030_phy_power(struct twl4030_usb *twl, int on)
-{
- int ret;
-
- if (on) {
- ret = regulator_enable(twl->usb3v1);
- if (ret)
- dev_err(twl->dev, "Failed to enable usb3v1\n");
-
- ret = regulator_enable(twl->usb1v8);
- if (ret)
- dev_err(twl->dev, "Failed to enable usb1v8\n");
-
- /*
- * Disabling usb3v1 regulator (= writing 0 to VUSB3V1_DEV_GRP
- * in twl4030) resets the VUSB_DEDICATED2 register. This reset
- * enables VUSB3V1_SLEEP bit that remaps usb3v1 ACTIVE state to
- * SLEEP. We work around this by clearing the bit after usv3v1
- * is re-activated. This ensures that VUSB3V1 is really active.
- */
- twl_i2c_write_u8(TWL_MODULE_PM_RECEIVER, 0, VUSB_DEDICATED2);
-
- ret = regulator_enable(twl->usb1v5);
- if (ret)
- dev_err(twl->dev, "Failed to enable usb1v5\n");
-
- __twl4030_phy_power(twl, 1);
- twl4030_usb_write(twl, PHY_CLK_CTRL,
- twl4030_usb_read(twl, PHY_CLK_CTRL) |
- (PHY_CLK_CTRL_CLOCKGATING_EN |
- PHY_CLK_CTRL_CLK32K_EN));
- } else {
- __twl4030_phy_power(twl, 0);
- regulator_disable(twl->usb1v5);
- regulator_disable(twl->usb1v8);
- regulator_disable(twl->usb3v1);
- }
-}
-
static int twl4030_usb_runtime_suspend(struct device *dev)
{
struct twl4030_usb *twl = dev_get_drvdata(dev);
@@ -430,7 +391,10 @@ static int twl4030_usb_runtime_suspend(struct device *dev)
if (twl->asleep)
return 0;
- twl4030_phy_power(twl, 0);
+ __twl4030_phy_power(twl, 0);
+ regulator_disable(twl->usb1v5);
+ regulator_disable(twl->usb1v8);
+ regulator_disable(twl->usb3v1);
twl->asleep = 1;
return 0;
@@ -439,12 +403,38 @@ static int twl4030_usb_runtime_suspend(struct device *dev)
static int twl4030_usb_runtime_resume(struct device *dev)
{
struct twl4030_usb *twl = dev_get_drvdata(dev);
+ int res;
dev_dbg(twl->dev, "%s\n", __func__);
if (!twl->asleep)
return 0;
- twl4030_phy_power(twl, 1);
+ res = regulator_enable(twl->usb3v1);
+ if (res)
+ dev_err(twl->dev, "Failed to enable usb3v1\n");
+
+ res = regulator_enable(twl->usb1v8);
+ if (res)
+ dev_err(twl->dev, "Failed to enable usb1v8\n");
+
+ /*
+ * Disabling usb3v1 regulator (= writing 0 to VUSB3V1_DEV_GRP
+ * in twl4030) resets the VUSB_DEDICATED2 register. This reset
+ * enables VUSB3V1_SLEEP bit that remaps usb3v1 ACTIVE state to
+ * SLEEP. We work around this by clearing the bit after usv3v1
+ * is re-activated. This ensures that VUSB3V1 is really active.
+ */
+ twl_i2c_write_u8(TWL_MODULE_PM_RECEIVER, 0, VUSB_DEDICATED2);
+
+ res = regulator_enable(twl->usb1v5);
+ if (res)
+ dev_err(twl->dev, "Failed to enable usb1v5\n");
+
+ __twl4030_phy_power(twl, 1);
+ twl4030_usb_write(twl, PHY_CLK_CTRL,
+ twl4030_usb_read(twl, PHY_CLK_CTRL) |
+ (PHY_CLK_CTRL_CLOCKGATING_EN |
+ PHY_CLK_CTRL_CLK32K_EN));
twl->asleep = 0;
return 0;
--
1.7.9.5
next prev parent reply other threads:[~2014-09-24 13:48 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 13:46 [GIT PULL 00/22] PHY: for 3.18 Kishon Vijay Abraham I
2014-09-24 13:46 ` [PATCH 01/22] phy: Renesas R-Car Gen2 PHY driver Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 02/22] phy: phy-omap-control: Remove unncessary site specific OOM messages Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 03/22] phy: phy-mvebu-sata: Add missing error check for devm_kzalloc Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 04/22] phy: phy-omap-usb2: Remove unncessary site specific OOM messages Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 05/22] phy: phy-ti-pipe3: " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 06/22] phy: phy-spear1310-miphy: " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 07/22] phy: phy-spear1340-miphy: " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 08/22] phy: phy-spear1310-miphy: Use module_platform_driver to register driver Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 09/22] phy: phy-spear1340-miphy: " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 10/22] usb: phy: twl4030-usb: Remove unused irq_enabled Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 11/22] usb: phy: twl4030-usb: Simplify phy init to use runtime PM Kishon Vijay Abraham I
2014-09-24 13:47 ` Kishon Vijay Abraham I [this message]
2014-09-24 13:47 ` [PATCH 13/22] usb: phy: twl4030-usb: Remove asleep and rely on " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 14/22] usb: phy: twl4030-usb: Use mutex instead of spinlock for protecting the data Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 15/22] phy: phy-stih407-usb: Add usb picoPHY driver found on stih407 SoC family Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 16/22] phy: phy-stih407-usb: Add dt documentation for USB picophy " Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 17/22] MAINTAINERS: Add phy-stih407-usb.c file to ARCH/STI architecture Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 18/22] phy: phy-stih41x-usb: Add usb phy support for STiH41x SoCs Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 19/22] phy: phy-stih41x-usb: Add dt documentation for USB phy on STiH415/6 Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 20/22] MAINTAINERS: Add phy-stih41x-usb.c to ARCH/STI architecture Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 21/22] phy: exynos-dp-video: Use syscon support to control pmu register Kishon Vijay Abraham I
2014-09-24 13:47 ` [PATCH 22/22] phy: remove .owner field for drivers using module_platform_driver Kishon Vijay Abraham I
2014-09-25 12:17 ` [GIT PULL 00/22] PHY: for 3.18 Greg KH
2014-09-25 12:29 ` Kishon Vijay Abraham I
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=1411566440-19169-13-git-send-email-kishon@ti.com \
--to=kishon@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®