On 3/17/2016 5:26 AM, David Lechner wrote:
Use the new phy-da8xx-usb driver to take the place of the mach code that
pokes CFGCHIP2 in the da8xx musb glue driver.
Signed-off-by: David Lechner <da...@lechnology.com>
---
v2 changes: This is part of a previous patch that was split. This version uses
the new phy driver instead of a second clock. It also gets rid of more mach
code.
drivers/usb/musb/da8xx.c | 126 ++++++++++++-----------------------------------
1 file changed, 31 insertions(+), 95 deletions(-)
diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c
index 50f07a5..1d51711 100644
--- a/drivers/usb/musb/da8xx.c
+++ b/drivers/usb/musb/da8xx.c
@@ -30,13 +30,11 @@
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
+#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/usb/usb_phy_generic.h>
-#include <mach/da8xx.h>
-#include <linux/platform_data/usb-davinci.h>
I guess we can move this header back into mach/ now?
[...]
@@ -383,31 +335,18 @@ static irqreturn_t da8xx_musb_interrupt(int irq, void
*hci)
return ret;
}
+extern int da8xx_usb20_phy_set_mode(struct phy *phy, enum musb_mode mode);
+
You now need to select your new PHY driver since otherwise the kernel
won't build.
You can remove "depends on BROKEN" as well since your patch is un-breaking
it. :-)
[...]
@@ -425,19 +364,24 @@ static int da8xx_musb_init(struct musb *musb)
[...]
/* Start the on-chip PHY and its PLL. */
- phy_on();
+ phy_power_on(glue->phy);
What about phy_init()?
@@ -448,9 +392,12 @@ fail:
static int da8xx_musb_exit(struct musb *musb)
{
+ struct da8xx_glue *glue = dev_get_drvdata(musb->controller->parent);
+
del_timer_sync(&otg_workaround);
- phy_off();
+ phy_power_off(glue->phy);
phy_exit()?
[...]
@@ -503,19 +450,19 @@ static int da8xx_probe(struct platform_device *pdev)
[...]
glue->dev = &pdev->dev;
pdata->platform_ops = &da8xx_ops;
- glue->phy = usb_phy_generic_register();
- if (IS_ERR(glue->phy)) {
- ret = PTR_ERR(glue->phy);
- goto err5;
+ glue->usb_phy = usb_phy_generic_register();
Hm, do we still need the USB PHY? It does nothing IIRC...
[...]
MBR, Sergei