Hi Daniel

> 
> On 08.04.2013 12:42, B, Ravi wrote:
> >> Subject: [PATCH v2 07/11] usb: musb: add Kconfig options for HOST,
> GAGDET
> >> or DUAL_ROLE modes
> >>
> >> This makes building the actual object files optional to the selected
> >> mode, which saves users who know which kind of USB mode support they
> >> need some binary size.
> >>
> >> Unimplemented functions are stubbed out with static inline functions.
> >>
> >> Signed-off-by: Daniel Mack <zon...@gmail.com>
> >> ---
> >>  drivers/usb/musb/Kconfig       | 29 +++++++++++++++++++++++++++++
> >>  drivers/usb/musb/Makefile      | 10 ++++++++--
> >>  drivers/usb/musb/musb_gadget.h | 21 +++++++++++++++++++++
> >>  drivers/usb/musb/musb_host.h   | 29 +++++++++++++++++++++++++++--
> >>  4 files changed, 85 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
> >> index 47442d3..aab1568 100644
> >> --- a/drivers/usb/musb/Kconfig
> >> +++ b/drivers/usb/musb/Kconfig
> >> @@ -28,6 +28,35 @@ config USB_MUSB_HDRC
> >>  if USB_MUSB_HDRC
> >>
> >>  choice
> >> +  bool "MUSB Mode Selection"
> >> +  default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
> >> +  default USB_MUSB_HOST if (USB && !USB_GADGET)
> >> +  default USB_MUSB_GADGET if (!USB && USB_GADGET)
> >> +
> >> +config USB_MUSB_HOST
> >> +  bool "Host only mode"
> >> +  depends on USB
> >> +  help
> >> +    Select this when you want to use MUSB in host mode only,
> >> +    thereby the gadget feature will be regressed.
> >> +
> >> +config USB_MUSB_GADGET
> >> +  bool "Gadget only mode"
> >> +  depends on USB_GADGET
> >> +  help
> >> +    Select this when you want to use MUSB in gadget mode only,
> >> +    thereby the host feature will be regressed.
> >> +
> >> +config USB_MUSB_DUAL_ROLE
> >> +  bool "Dual Role mode"
> >> +  depends on (USB && USB_GADGET)
> >> +  help
> >> +    This is the default mode of working of MUSB controller where
> >> +    both host and gadget features are enabled.
> >> +
> >> +endchoice
> >
> > How do you cater for multi-instance support? Where one controller to
> force as host and other as device (similar to am33x beagle configuration).
> > In general for all combination possible like <host, host> <host, device>
> <device, host> <dual, dual> etc.
> 
> The actual mode chosen for an instance is passed in via pdata/DT. The
> Kconfig options only exist in order to stub out code that certainly
> isn't needed for a particular platform. IOW, to reduce the binary size.
> 
> So the beagleboard will have to select the DUAL_ROLE config parameters,
> where other board (like mine) can go for the HOST only option.
> 
> If a user selects a mode as runtime parameter that is stubbed out by the
> chosen config, it will simply don't do anything. Just as with a driver
> that is referenced from DT but not compiled in. I don't think we should
> be over-smart here and mess with the configured platform data. If the
> platform data is wrong, it has to be fixed anyway. Felipe, do you agree?
> 
> 

I understand, this is for binary code reduction. But in multi instance case 
force host/device config option shall be selected only when both controller 
need to configured as host only or device only. like <host, host> or <device, 
device>. In any other case dual-role need to be chosen.
You can explain in help section of this Kconfig option.

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

Reply via email to