On Tue, Dec 13, 2011 at 01:21:17PM +0200, Felipe Balbi wrote: > > Why there needs struct usb_otg at struct usb_phy? > > From my point, at general otg driver, it doesn't need to touch phy. > > The phy are only needed to operated at vendor's otg driver. > > So, I don't know why below is not ok: > > > > > struct twl6030_usb { > > > > > > + struct usb_phy phy; > > > > > > + struct usb_otg otg; > > > > struct usb_otg { > > unsigned otg_specific; > > > > > > > struct otg_phy { > > unsigned phy_specific; > > } > > > > Besides, for some SoCs, there is no otg driver at mainline until now, but > > they need to get usb_phy. > > the thing is that OTG adds a few extra bits and pieces to the PHY. For > example we have extra states on the USB state machine, we have a few > analog comparators (for VBUS and ID pin) and so on. So, when we _do_ > have OTG, some of it is handled by the PHY. One more question before I make the v9. If you have two PHYs but only one of the is OTG, how do you make sure the other PHY driver can not take advantage of OTG utility? Peter, didn't you say that this is what you guys have, two transceivers and only one of them is OTG? -- heikki -- 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