Re: [PATCH v2 11/11] usb: musb: da8xx: Remove mach code

From: Sergei Shtylyov
Date: Thu Mar 17 2016 - 09:11:51 EST


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 <david@xxxxxxxxxxxxxx>
---

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