> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] On Behalf Of dinguyen@xxxxxxxxxx > Sent: Wednesday, July 30, 2014 8:21 AM > > Update DWC2 kconfig and makefile to support dual-role mode. The platform > file will always get compiled for the case where the controller is directly > connected to the CPU. So for loadable modules, only dwc2.ko is needed. > > Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxx> > --- > v2: Remove reference to dwc2_gadget > --- > drivers/usb/dwc2/Kconfig | 59 +++++++++++++++++++++++++-------------------- > drivers/usb/dwc2/Makefile | 21 ++++++++-------- > 2 files changed, 44 insertions(+), 36 deletions(-) > > diff --git a/drivers/usb/dwc2/Kconfig b/drivers/usb/dwc2/Kconfig > index f93807b..3d69928 100644 > --- a/drivers/usb/dwc2/Kconfig > +++ b/drivers/usb/dwc2/Kconfig > @@ -1,40 +1,29 @@ > config USB_DWC2 > - bool "DesignWare USB2 DRD Core Support" > + tristate "DesignWare USB2 DRD Core Support" > depends on USB > help > Say Y here if your system has a Dual Role Hi-Speed USB > controller based on the DesignWare HSOTG IP Core. > > - For host mode, if you choose to build the driver as dynamically > - linked modules, the core module will be called dwc2.ko, the PCI > - bus interface module (if you have a PCI bus system) will be > - called dwc2_pci.ko, and the platform interface module (for > - controllers directly connected to the CPU) will be called > - dwc2_platform.ko. For gadget mode, there will be a single > - module called dwc2_gadget.ko. > - > - NOTE: The s3c-hsotg driver is now renamed to dwc2_gadget. The > - host and gadget drivers are still currently separate drivers. > - There are plans to merge the dwc2_gadget driver with the dwc2 > - host driver in the near future to create a dual-role driver. > + If you choose to build the driver as dynamically > + linked modules, a single dwc2.ko(regardless of mode of operation) > + will get built for both platform IPs and PCI. > > if USB_DWC2 > > +choice > + bool "DWC2 Mode Selection" > + default USB_DWC2_DUAL_ROLE if (USB && USB_GADGET) > + default USB_DWC2_HOST if (USB && !USB_GADGET) > + default USB_DWC2_PERIPHERAL if (!USB && USB_GADGET) > + > config USB_DWC2_HOST > - tristate "Host only mode" > + bool "Host only mode" > depends on USB > help > The Designware USB2.0 high-speed host controller > - integrated into many SoCs. > - > -config USB_DWC2_PLATFORM > - bool "DWC2 Platform" > - depends on USB_DWC2_HOST > - default USB_DWC2_HOST > - help > - The Designware USB2.0 platform interface module for > - controllers directly connected to the CPU. This is only > - used for host mode. > + integrated into many SoCs. Select this option if you want the > + driver to operate in Host-only mode. > > config USB_DWC2_PCI > bool "DWC2 PCI" > @@ -47,11 +36,29 @@ config USB_DWC2_PCI > comment "Gadget mode requires USB Gadget support to be enabled" > > config USB_DWC2_PERIPHERAL > - tristate "Gadget only mode" > + bool "Gadget only mode" > depends on USB_GADGET > help > The Designware USB2.0 high-speed gadget controller > - integrated into many SoCs. > + integrated into many SoCs. Select this option if you want the > + driver to operate in Peripheral-only mode. > + > +config USB_DWC2_DUAL_ROLE > + bool "Dual Role mode" > + depends on ((USB=y || USB=USB_DWC2) && (USB_GADGET=y)) Hi Dinh, I just noticed that for dual-role mode, you are not allowing USB_GADGET to be modular. Is there a reason for that? If so, please mention it in the commit message. It should also be explained in the help text. Or maybe add another comment line saying "Dual-role mode requires USB Gadget = y" or something like that. -- Paul -- 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