Hi, On Thu, Oct 13, 2011 at 12:50:55PM +0530, Gupta, Ajay Kumar wrote: > We are facing an issue in AM335x based custom board which has two musb > port. > > a) musb0 ID pin is floating and have micro-B plug receptacle > connector. [DEVICE ONLY] > b) musb1 ID pin is grounded and have standard-A plug receptacle > connector. [HOST ONLY] > > We are using udc-core in linux v3.1-rc8 kernel. This kernel only > provides option for selecting gadget driver for first instance only as > builtin. why don't you mark all gadget drivers as modules ? I do that all the time: CONFIG_USB_GADGET=m CONFIG_USB_GADGET_DEBUG=y CONFIG_USB_GADGET_DEBUG_FILES=y CONFIG_USB_GADGET_DEBUG_FS=y CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_R8A66597=m CONFIG_USB_M66592=m CONFIG_USB_AMD5536UDC=m CONFIG_USB_CI13XXX_PCI=m CONFIG_USB_NET2272=m CONFIG_USB_NET2272_DMA=y CONFIG_USB_NET2280=m CONFIG_USB_GOKU=m CONFIG_USB_EG20T=m CONFIG_USB_DUMMY_HCD=m CONFIG_USB_GADGET_DUALSPEED=y CONFIG_USB_GADGET_SUPERSPEED=y CONFIG_USB_ZERO=m CONFIG_USB_ZERO_HNPTEST=y CONFIG_USB_AUDIO=m CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y CONFIG_USB_ETH_EEM=y CONFIG_USB_G_NCM=m CONFIG_USB_GADGETFS=m CONFIG_USB_FUNCTIONFS=m CONFIG_USB_FUNCTIONFS_ETH=y CONFIG_USB_FUNCTIONFS_RNDIS=y CONFIG_USB_FUNCTIONFS_GENERIC=y CONFIG_USB_FILE_STORAGE=m CONFIG_USB_FILE_STORAGE_TEST=y CONFIG_USB_MASS_STORAGE=m CONFIG_USB_G_SERIAL=m CONFIG_USB_MIDI_GADGET=m CONFIG_USB_G_PRINTER=m CONFIG_USB_CDC_COMPOSITE=m CONFIG_USB_G_NOKIA=m CONFIG_USB_G_MULTI=m CONFIG_USB_G_MULTI_RNDIS=y CONFIG_USB_G_MULTI_CDC=y CONFIG_USB_G_HID=m CONFIG_USB_G_DBGP=m # CONFIG_USB_G_DBGP_PRINTK is not set CONFIG_USB_G_DBGP_SERIAL=y CONFIG_USB_G_WEBCAM=m > Current musb driver requires a gadget module to be inserted for a musb > port to be usable in OTG mode which is the only mode available in > v3.1-rc8 due to recent changes removing all HOST and GADGET only > ifdeffery. You can add runtime checks based on platform_data. Something like: switch (pdata->mode) { case MUSB_HOST: start_host(); break; case MUSB_PERIPHERAL: start_gadget(); break; case MUSB_OTG: start_gadget() start_host(); break; default: error(); } which means that for a port which is host-only, it won't require a gadget driver and for a port which is gadget-only, it won't start host stack. > Now for the custom board's musb1 port to be usable we have two option: > 1) After bootup insert a gadget module and then use host functionality. > 2) Change the menuconfig logic and possibly udc-core layer so that it provides option > to select second gadget module as builtin. why built-in ? > 3) Change musb driver so that there is no need for gadget driver for > host only ports. (may be based on musb->board_mode ?) yes. > In there any plan to support option 2) or 3) above? > > Now the issue on our custom board is that we want root filesystem on > MSC pen drive connected to musb1 port and this gadget limitation is > stopping us to support this. well, patches are welcome ;-) -- balbi
Attachment:
signature.asc
Description: Digital signature