lkml.org 
[lkml]   [2013]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v1 6/9] usb: musb: dsps: use usb-phy driver API for phy power on/off
Date
use usb-phy driver API for powering on/off phy and removed
usage of the phy control access in platform glue driver.

Signed-off-by: Ravi Babu <ravibabu@ti.com>
---
drivers/usb/musb/musb_dsps.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 0ecedb3..0096aad 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -36,6 +36,7 @@
#include <linux/dma-mapping.h>
#include <linux/pm_runtime.h>
#include <linux/module.h>
+#include <linux/usb/phy.h>
#include <linux/platform_data/usb-omap.h>
#include <linux/sizes.h>

@@ -432,7 +433,7 @@ static int dsps_musb_init(struct musb *musb)
dsps_writel(reg_base, wrp->control, (1 << wrp->reset));

/* Start the on-chip PHY and its PLL. */
- musb_dsps_phy_control(glue, pdev->id, 1);
+ usb_phy_init(musb->xceiv);

musb->isr = dsps_interrupt;

@@ -459,10 +460,7 @@ static int dsps_musb_exit(struct musb *musb)
del_timer_sync(&glue->timer[pdev->id]);

/* Shutdown the on-chip PHY and its PLL. */
- musb_dsps_phy_control(glue, pdev->id, 0);
-
- /* NOP driver needs change if supporting dual instance */
- usb_put_phy(musb->xceiv);
+ usb_phy_shutdown(musb->xceiv);

return 0;
}
@@ -690,10 +688,13 @@ static int dsps_suspend(struct device *dev)
struct platform_device *pdev = to_platform_device(dev->parent);
struct dsps_glue *glue = platform_get_drvdata(pdev);
const struct dsps_musb_wrapper *wrp = glue->wrp;
+ struct musb *musb;
int i;

- for (i = 0; i < wrp->instances; i++)
- musb_dsps_phy_control(glue, i, 0);
+ for (i = 0; i < wrp->instances; i++) {
+ musb = dev_get_drvdata(&glue->musb[i]->dev);
+ usb_phy_set_suspend(musb->xceiv, 1);
+ }

return 0;
}
@@ -703,10 +704,13 @@ static int dsps_resume(struct device *dev)
struct platform_device *pdev = to_platform_device(dev->parent);
struct dsps_glue *glue = platform_get_drvdata(pdev);
const struct dsps_musb_wrapper *wrp = glue->wrp;
+ struct musb *musb;
int i;

- for (i = 0; i < wrp->instances; i++)
- musb_dsps_phy_control(glue, i, 1);
+ for (i = 0; i < wrp->instances; i++) {
+ musb = dev_get_drvdata(&glue->musb[i]->dev);
+ usb_phy_set_suspend(musb->xceiv, 0);
+ }

return 0;
}
--
1.7.0.4


\
 
 \ /
  Last update: 2013-05-23 08:41    [W:0.108 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site