RE: [RFC PATCH 0/8] MXS: Add i.MX28 USB Host driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> 
> On Tue, Apr 17, 2012 at 10:29:21PM +0200, Marek Vasut wrote:
> > > >
> > > > So the PHY actually registers the EHCI driver (plat_bus->phy->ehci)?
> > > > That's slightly weird, don't you think?
> > >
> > > Your hardware device is a device consisting of a ehci core and a USB
> device
> > > core. Currently we register the child devices independently which
> leads
> > > to the mentioned problems. Instead we should register the USB core as
> a
> > > whole and pass the resources to either the client or the host driver.
> >
> > Ok, giving it a second thought -- you mean to create "stub" driver,
> which claims
> > and toggles the clock _and_ registers both the EHCI host driver and PHY
> driver
> > under itself in the hierarchy. Is that correct?
> 
> No, the registration of the phy is fine the way it is. The stub driver
> should only register the ehci and the usb device. Maybe some pseudo code
> helps describing what I mean:
> 
> arch/arm/mach-mxs:
> 
> 	mx28_register_usbphy0();
> 	mx28_register_usb0();
> 
> drivers/usb/otg/mxs-otg.c:
> 
> 	probe() {
> 		clk_get();
> 		clk_prepare_enable();
> 
> 		usb_get_phy(&pdev->dev);
> 
> 		if (pdata->mode == USB_OTG_MODE_HOST)
> 			usb_add_hcd(priv->host);
> 		else
> 			usb_gadget_vbus_connect(priv->gadget);
> 	}
> 
> 	module_platform_driver(mxs_otg_driver);
> 
> drivers/usb/otg/mxs-otg-phy.c:
> 
> 	probe() {
> 		clk_get();
> 		clk_prepare_enable();
> 		usb_register_phy(phy, "mxs-otg.0");
> 	}
> 
> 	module_platform_driver(mxs_otg_phy_driver);
> 
A similar file is drivers/usb/host/fsl-mph-dr-of.c.

> 
> The mxs-otg part can be reused on i.MX aswell, whereas mxs-otg-phy is
> mxs (and i.MX6 how we just learned) specific.
> What currently is missing is a usb_get_phy() with a device argument to
> get the phy specific to a device. That's a problem, but you currently
> have it aswell with your current approach
> 
As there are many things need to do, how about finish PHY layer first,
then the OTG driver part. After PHY layer and FSL PHY driver finish, the both
ports at i.mx28 can be used, and the operation mode (device or host) can
be decided by platform code.
 
> Sascha
> 
> --
> Pengutronix e.K.                           |
> |
> Industrial Linux Solutions                 | http://www.pengutronix.de/
> |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0
> |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555
> |


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux