Message ID | 1405675890-8802-9-git-send-email-LW@KARO-electronics.de |
---|---|
State | New |
Headers | show |
Hi, On Fri, Jul 18, 2014 at 11:31:29AM +0200, Lothar Waßmann wrote: > This patch makes it possible to use the musb driver with HW that > requires external regulators or clocks. can you provide an example of such HW ? Are you not using the internal PHYs ? > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> > --- > drivers/usb/phy/phy-am335x.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/phy/phy-am335x.c b/drivers/usb/phy/phy-am335x.c > index 6522fa7..de25674 100644 > --- a/drivers/usb/phy/phy-am335x.c > +++ b/drivers/usb/phy/phy-am335x.c > @@ -22,6 +22,7 @@ static int am335x_init(struct usb_phy *phy) > { > struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); > > + usb_gen_phy_init(phy); > phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, true); > return 0; > } > @@ -31,6 +32,7 @@ static void am335x_shutdown(struct usb_phy *phy) > struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); > > phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, false); > + usb_gen_phy_shutdown(phy); > } > > static int am335x_phy_probe(struct platform_device *pdev) > -- > 1.7.10.4 >
Hi, > On Fri, Jul 18, 2014 at 11:31:29AM +0200, Lothar Waßmann wrote: > > This patch makes it possible to use the musb driver with HW that > > requires external regulators or clocks. > > can you provide an example of such HW ? Are you not using the internal > PHYs ? > The Ka-Ro electronics TX48 module uses the mmc0_clk pin as VBUSEN rathern than usb0_drvvbus. This patch makes it possible to use an external regulator to handle the VBUS switch through the 'vcc-supply' property of the underlying generic_phy device. > > Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> > > --- > > drivers/usb/phy/phy-am335x.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/usb/phy/phy-am335x.c b/drivers/usb/phy/phy-am335x.c > > index 6522fa7..de25674 100644 > > --- a/drivers/usb/phy/phy-am335x.c > > +++ b/drivers/usb/phy/phy-am335x.c > > @@ -22,6 +22,7 @@ static int am335x_init(struct usb_phy *phy) > > { > > struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); > > > > + usb_gen_phy_init(phy); > > phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, true); > > return 0; > > } > > @@ -31,6 +32,7 @@ static void am335x_shutdown(struct usb_phy *phy) > > struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); > > > > phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, false); > > + usb_gen_phy_shutdown(phy); > > } > > > > static int am335x_phy_probe(struct platform_device *pdev) > > -- > > 1.7.10.4 > > >
Hi,, On Mon, Jul 21, 2014 at 10:03:07AM +0200, Lothar Waßmann wrote: > Hi, > > > On Fri, Jul 18, 2014 at 11:31:29AM +0200, Lothar Waßmann wrote: > > > This patch makes it possible to use the musb driver with HW that > > > requires external regulators or clocks. > > > > can you provide an example of such HW ? Are you not using the internal > > PHYs ? > > > The Ka-Ro electronics TX48 module uses the mmc0_clk pin as VBUSEN > rathern than usb0_drvvbus. This patch makes it possible to use an > external regulator to handle the VBUS switch through the 'vcc-supply' > property of the underlying generic_phy device. OK, I get it now. But why would not use usb0_drvvbus ? You could still route usb0_drvvbus to the regulator enable pin and the regulator would be enabled for you once correct values are written to the IP's mailbox. I suppose this has something to do with layout constraints ? cheers
Hi, Felipe Balbi wrote: > Hi,, > > On Mon, Jul 21, 2014 at 10:03:07AM +0200, Lothar Waßmann wrote: > > Hi, > > > > > On Fri, Jul 18, 2014 at 11:31:29AM +0200, Lothar Waßmann wrote: > > > > This patch makes it possible to use the musb driver with HW that > > > > requires external regulators or clocks. > > > > > > can you provide an example of such HW ? Are you not using the internal > > > PHYs ? > > > > > The Ka-Ro electronics TX48 module uses the mmc0_clk pin as VBUSEN > > rathern than usb0_drvvbus. This patch makes it possible to use an > > external regulator to handle the VBUS switch through the 'vcc-supply' > > property of the underlying generic_phy device. > > OK, I get it now. But why would not use usb0_drvvbus ? You could still > route usb0_drvvbus to the regulator enable pin and the regulator would > be enabled for you once correct values are written to the IP's mailbox. > > I suppose this has something to do with layout constraints ? > Yes. The usb0_drvvbus is used for a different purpose. Lothar Waßmann
On Tue, Jul 22, 2014 at 10:06:13AM +0200, Lothar Waßmann wrote: > Hi, > > Felipe Balbi wrote: > > Hi,, > > > > On Mon, Jul 21, 2014 at 10:03:07AM +0200, Lothar Waßmann wrote: > > > Hi, > > > > > > > On Fri, Jul 18, 2014 at 11:31:29AM +0200, Lothar Waßmann wrote: > > > > > This patch makes it possible to use the musb driver with HW that > > > > > requires external regulators or clocks. > > > > > > > > can you provide an example of such HW ? Are you not using the internal > > > > PHYs ? > > > > > > > The Ka-Ro electronics TX48 module uses the mmc0_clk pin as VBUSEN > > > rathern than usb0_drvvbus. This patch makes it possible to use an > > > external regulator to handle the VBUS switch through the 'vcc-supply' > > > property of the underlying generic_phy device. > > > > OK, I get it now. But why would not use usb0_drvvbus ? You could still > > route usb0_drvvbus to the regulator enable pin and the regulator would > > be enabled for you once correct values are written to the IP's mailbox. > > > > I suppose this has something to do with layout constraints ? > > > Yes. The usb0_drvvbus is used for a different purpose. alright, thanks for the info. I'll revisit this in a few days, quite busy right now and my tree is closed for v3.17 anyway. cheers
diff --git a/drivers/usb/phy/phy-am335x.c b/drivers/usb/phy/phy-am335x.c index 6522fa7..de25674 100644 --- a/drivers/usb/phy/phy-am335x.c +++ b/drivers/usb/phy/phy-am335x.c @@ -22,6 +22,7 @@ static int am335x_init(struct usb_phy *phy) { struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); + usb_gen_phy_init(phy); phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, true); return 0; } @@ -31,6 +32,7 @@ static void am335x_shutdown(struct usb_phy *phy) struct am335x_phy *am_phy = dev_get_drvdata(phy->dev); phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, false); + usb_gen_phy_shutdown(phy); } static int am335x_phy_probe(struct platform_device *pdev)
This patch makes it possible to use the musb driver with HW that requires external regulators or clocks. Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de> --- drivers/usb/phy/phy-am335x.c | 2 ++ 1 file changed, 2 insertions(+)