source "drivers/usb/gadget/Kconfig"
 
-source "drivers/usb/otg/Kconfig"
-
 endif # USB_SUPPORT
 
 
 obj-$(CONFIG_USB)              += core/
 
-obj-$(CONFIG_USB_OTG_UTILS)    += otg/
-
 obj-$(CONFIG_USB_DWC3)         += dwc3/
 
 obj-$(CONFIG_USB_MON)          += mon/
 
+++ /dev/null
-#
-# USB OTG infrastructure may be needed for peripheral-only, host-only,
-# or OTG-capable configurations when OTG transceivers or controllers
-# are used.
-#
-
-comment "OTG and related infrastructure"
-
-config USB_OTG_UTILS
-       bool
-       help
-         Select this to make sure the build includes objects from
-         the OTG infrastructure directory.
-
-if USB || USB_GADGET
-
-#
-# USB Transceiver Drivers
-#
-config USB_GPIO_VBUS
-       tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
-       depends on GENERIC_GPIO
-       select USB_OTG_UTILS
-       help
-         Provides simple GPIO VBUS sensing for controllers with an
-         internal transceiver via the usb_phy interface, and
-         optionally control of a D+ pullup GPIO as well as a VBUS
-         current limit regulator.
-
-config ISP1301_OMAP
-       tristate "Philips ISP1301 with OMAP OTG"
-       depends on I2C && ARCH_OMAP_OTG
-       select USB_OTG_UTILS
-       help
-         If you say yes here you get support for the Philips ISP1301
-         USB-On-The-Go transceiver working with the OMAP OTG controller.
-         The ISP1301 is a full speed USB  transceiver which is used in
-         products including H2, H3, and H4 development boards for Texas
-         Instruments OMAP processors.
-
-         This driver can also be built as a module.  If so, the module
-         will be called isp1301_omap.
-
-config USB_ULPI
-       bool "Generic ULPI Transceiver Driver"
-       depends on ARM
-       select USB_OTG_UTILS
-       help
-         Enable this to support ULPI connected USB OTG transceivers which
-         are likely found on embedded boards.
-
-config USB_ULPI_VIEWPORT
-       bool
-       depends on USB_ULPI
-       help
-         Provides read/write operations to the ULPI phy register set for
-         controllers with a viewport register (e.g. Chipidea/ARC controllers).
-
-config TWL4030_USB
-       tristate "TWL4030 USB Transceiver Driver"
-       depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
-       select USB_OTG_UTILS
-       help
-         Enable this to support the USB OTG transceiver on TWL4030
-         family chips (including the TWL5030 and TPS659x0 devices).
-         This transceiver supports high and full speed devices plus,
-         in host mode, low speed.
-
-config TWL6030_USB
-       tristate "TWL6030 USB Transceiver Driver"
-       depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
-       select USB_OTG_UTILS
-       help
-         Enable this to support the USB OTG transceiver on TWL6030
-         family chips. This TWL6030 transceiver has the VBUS and ID GND
-         and OTG SRP events capabilities. For all other transceiver functionality
-         UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
-         are hooked to this driver through platform_data structure.
-         The definition of internal PHY APIs are in the mach-omap2 layer.
-
-config NOP_USB_XCEIV
-       tristate "NOP USB Transceiver Driver"
-       select USB_OTG_UTILS
-       help
-         This driver is to be used by all the usb transceiver which are either
-         built-in with usb ip or which are autonomous and doesn't require any
-         phy programming such as ISP1x04 etc.
-
-config USB_MSM_OTG
-       tristate "OTG support for Qualcomm on-chip USB controller"
-       depends on (USB || USB_GADGET) && ARCH_MSM
-       select USB_OTG_UTILS
-       help
-         Enable this to support the USB OTG transceiver on MSM chips. It
-         handles PHY initialization, clock management, and workarounds
-         required after resetting the hardware and power management.
-         This driver is required even for peripheral only or host only
-         mode configurations.
-         This driver is not supported on boards like trout which
-         has an external PHY.
-
-config AB8500_USB
-       tristate "AB8500 USB Transceiver Driver"
-       depends on AB8500_CORE
-       select USB_OTG_UTILS
-       help
-         Enable this to support the USB OTG transceiver in AB8500 chip.
-         This transceiver supports high and full speed devices plus,
-         in host mode, low speed.
-
-config FSL_USB2_OTG
-       bool "Freescale USB OTG Transceiver Driver"
-       depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_SUSPEND
-       select USB_OTG
-       select USB_OTG_UTILS
-       help
-         Enable this to support Freescale USB OTG transceiver.
-
-config USB_MXS_PHY
-       tristate "Freescale MXS USB PHY support"
-       depends on ARCH_MXC || ARCH_MXS
-       select STMP_DEVICE
-       select USB_OTG_UTILS
-       help
-         Enable this to support the Freescale MXS USB PHY.
-
-         MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
-
-config USB_MV_OTG
-       tristate "Marvell USB OTG support"
-       depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND
-       select USB_OTG
-       select USB_OTG_UTILS
-       help
-         Say Y here if you want to build Marvell USB OTG transciever
-         driver in kernel (including PXA and MMP series). This driver
-         implements role switch between EHCI host driver and gadget driver.
-
-         To compile this driver as a module, choose M here.
-
-endif # USB || OTG
 
+++ /dev/null
-#
-# OTG infrastructure and transceiver drivers
-#
-
-ccflags-$(CONFIG_USB_DEBUG)            := -DDEBUG
-ccflags-$(CONFIG_USB_GADGET_DEBUG)     += -DDEBUG
-
-# transceiver drivers
-obj-$(CONFIG_USB_GPIO_VBUS)    += gpio_vbus.o
-obj-$(CONFIG_ISP1301_OMAP)     += isp1301_omap.o
-obj-$(CONFIG_TWL4030_USB)      += twl4030-usb.o
-obj-$(CONFIG_TWL6030_USB)      += twl6030-usb.o
-obj-$(CONFIG_NOP_USB_XCEIV)    += nop-usb-xceiv.o
-obj-$(CONFIG_USB_ULPI)         += ulpi.o
-obj-$(CONFIG_USB_ULPI_VIEWPORT)        += ulpi_viewport.o
-obj-$(CONFIG_USB_MSM_OTG)      += msm_otg.o
-obj-$(CONFIG_AB8500_USB)       += ab8500-usb.o
-fsl_usb2_otg-objs              := fsl_otg.o otg_fsm.o
-obj-$(CONFIG_FSL_USB2_OTG)     += fsl_usb2_otg.o
-obj-$(CONFIG_USB_MXS_PHY)      += mxs-phy.o
-obj-$(CONFIG_USB_MV_OTG)       += mv_otg.o
 
 comment "USB Physical Layer drivers"
        depends on USB || USB_GADGET
 
+config USB_OTG_UTILS
+       bool
+       help
+         Select this to make sure the build includes objects from
+         the OTG infrastructure directory.
+
+if USB || USB_GADGET
+
+#
+# USB Transceiver Drivers
+#
+config AB8500_USB
+       tristate "AB8500 USB Transceiver Driver"
+       depends on AB8500_CORE
+       select USB_OTG_UTILS
+       help
+         Enable this to support the USB OTG transceiver in AB8500 chip.
+         This transceiver supports high and full speed devices plus,
+         in host mode, low speed.
+
+config FSL_USB2_OTG
+       bool "Freescale USB OTG Transceiver Driver"
+       depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_SUSPEND
+       select USB_OTG
+       select USB_OTG_UTILS
+       help
+         Enable this to support Freescale USB OTG transceiver.
+
+config ISP1301_OMAP
+       tristate "Philips ISP1301 with OMAP OTG"
+       depends on I2C && ARCH_OMAP_OTG
+       select USB_OTG_UTILS
+       help
+         If you say yes here you get support for the Philips ISP1301
+         USB-On-The-Go transceiver working with the OMAP OTG controller.
+         The ISP1301 is a full speed USB  transceiver which is used in
+         products including H2, H3, and H4 development boards for Texas
+         Instruments OMAP processors.
+
+         This driver can also be built as a module.  If so, the module
+         will be called isp1301_omap.
+
+config MV_U3D_PHY
+       bool "Marvell USB 3.0 PHY controller Driver"
+       depends on USB_MV_U3D
+       select USB_OTG_UTILS
+       help
+         Enable this to support Marvell USB 3.0 phy controller for Marvell
+         SoC.
+
+config NOP_USB_XCEIV
+       tristate "NOP USB Transceiver Driver"
+       select USB_OTG_UTILS
+       help
+         This driver is to be used by all the usb transceiver which are either
+         built-in with usb ip or which are autonomous and doesn't require any
+         phy programming such as ISP1x04 etc.
+
+config OMAP_CONTROL_USB
+       tristate "OMAP CONTROL USB Driver"
+       help
+         Enable this to add support for the USB part present in the control
+         module. This driver has API to power on the USB2 PHY and to write to
+         the mailbox. The mailbox is present only in omap4 and the register to
+         power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
+         additional register to power on USB3 PHY.
+
 config OMAP_USB2
        tristate "OMAP USB2 PHY Driver"
        depends on ARCH_OMAP2PLUS
          This driver interacts with the "OMAP Control USB Driver" to power
          on/off the PHY.
 
-config OMAP_CONTROL_USB
-       tristate "OMAP CONTROL USB Driver"
+config SAMSUNG_USBPHY
+       bool "Samsung USB PHY controller Driver"
+       depends on USB_S3C_HSOTG || USB_EHCI_S5P || USB_OHCI_EXYNOS
+       select USB_OTG_UTILS
        help
-         Enable this to add support for the USB part present in the control
-         module. This driver has API to power on the USB2 PHY and to write to
-         the mailbox. The mailbox is present only in omap4 and the register to
-         power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
-         additional register to power on USB3 PHY.
+         Enable this to support Samsung USB phy controller for samsung
+         SoCs.
+
+config TWL4030_USB
+       tristate "TWL4030 USB Transceiver Driver"
+       depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
+       select USB_OTG_UTILS
+       help
+         Enable this to support the USB OTG transceiver on TWL4030
+         family chips (including the TWL5030 and TPS659x0 devices).
+         This transceiver supports high and full speed devices plus,
+         in host mode, low speed.
+
+config TWL6030_USB
+       tristate "TWL6030 USB Transceiver Driver"
+       depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
+       select USB_OTG_UTILS
+       help
+         Enable this to support the USB OTG transceiver on TWL6030
+         family chips. This TWL6030 transceiver has the VBUS and ID GND
+         and OTG SRP events capabilities. For all other transceiver functionality
+         UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
+         are hooked to this driver through platform_data structure.
+         The definition of internal PHY APIs are in the mach-omap2 layer.
+
+config USB_GPIO_VBUS
+       tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
+       depends on GENERIC_GPIO
+       select USB_OTG_UTILS
+       help
+         Provides simple GPIO VBUS sensing for controllers with an
+         internal transceiver via the usb_phy interface, and
+         optionally control of a D+ pullup GPIO as well as a VBUS
+         current limit regulator.
 
 config USB_ISP1301
        tristate "NXP ISP1301 USB transceiver support"
          To compile this driver as a module, choose M here: the
          module will be called isp1301.
 
-config MV_U3D_PHY
-       bool "Marvell USB 3.0 PHY controller Driver"
-       depends on USB_MV_U3D
+config USB_MSM_OTG
+       tristate "OTG support for Qualcomm on-chip USB controller"
+       depends on (USB || USB_GADGET) && ARCH_MSM
        select USB_OTG_UTILS
        help
-         Enable this to support Marvell USB 3.0 phy controller for Marvell
-         SoC.
+         Enable this to support the USB OTG transceiver on MSM chips. It
+         handles PHY initialization, clock management, and workarounds
+         required after resetting the hardware and power management.
+         This driver is required even for peripheral only or host only
+         mode configurations.
+         This driver is not supported on boards like trout which
+         has an external PHY.
+
+config USB_MV_OTG
+       tristate "Marvell USB OTG support"
+       depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND
+       select USB_OTG
+       select USB_OTG_UTILS
+       help
+         Say Y here if you want to build Marvell USB OTG transciever
+         driver in kernel (including PXA and MMP series). This driver
+         implements role switch between EHCI host driver and gadget driver.
+
+         To compile this driver as a module, choose M here.
+
+config USB_MXS_PHY
+       tristate "Freescale MXS USB PHY support"
+       depends on ARCH_MXC || ARCH_MXS
+       select STMP_DEVICE
+       select USB_OTG_UTILS
+       help
+         Enable this to support the Freescale MXS USB PHY.
+
+         MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
 
 config USB_RCAR_PHY
        tristate "Renesas R-Car USB phy support"
          To compile this driver as a module, choose M here: the
          module will be called rcar-phy.
 
-config SAMSUNG_USBPHY
-       bool "Samsung USB PHY controller Driver"
-       depends on USB_S3C_HSOTG || USB_EHCI_S5P || USB_OHCI_EXYNOS
+config USB_ULPI
+       bool "Generic ULPI Transceiver Driver"
+       depends on ARM
        select USB_OTG_UTILS
        help
-         Enable this to support Samsung USB phy controller for samsung
-         SoCs.
+         Enable this to support ULPI connected USB OTG transceivers which
+         are likely found on embedded boards.
+
+config USB_ULPI_VIEWPORT
+       bool
+       depends on USB_ULPI
+       help
+         Provides read/write operations to the ULPI phy register set for
+         controllers with a viewport register (e.g. Chipidea/ARC controllers).
+
+endif # USB || OTG
 
 ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG
 
 obj-$(CONFIG_USB_OTG_UTILS)            += phy.o
+
+# transceiver drivers, keep the list sorted
+
+obj-$(CONFIG_AB8500_USB)               += ab8500-usb.o
+fsl_usb2_otg-objs                      := fsl_otg.o otg_fsm.o
+obj-$(CONFIG_FSL_USB2_OTG)             += fsl_usb2_otg.o
+obj-$(CONFIG_ISP1301_OMAP)             += isp1301_omap.o
+obj-$(CONFIG_MV_U3D_PHY)               += mv_u3d_phy.o
+obj-$(CONFIG_NOP_USB_XCEIV)            += nop-usb-xceiv.o
+obj-$(CONFIG_OMAP_CONTROL_USB)         += omap-control-usb.o
 obj-$(CONFIG_OMAP_USB2)                        += omap-usb2.o
 obj-$(CONFIG_OMAP_USB3)                        += omap-usb3.o
-obj-$(CONFIG_OMAP_CONTROL_USB)         += omap-control-usb.o
+obj-$(CONFIG_SAMSUNG_USBPHY)           += samsung-usbphy.o
+obj-$(CONFIG_TWL4030_USB)              += twl4030-usb.o
+obj-$(CONFIG_TWL6030_USB)              += twl6030-usb.o
+obj-$(CONFIG_USB_EHCI_TEGRA)           += tegra_usb_phy.o
+obj-$(CONFIG_USB_GPIO_VBUS)            += gpio_vbus.o
 obj-$(CONFIG_USB_ISP1301)              += isp1301.o
-obj-$(CONFIG_MV_U3D_PHY)               += mv_u3d_phy.o
-obj-$(CONFIG_USB_EHCI_TEGRA)   += tegra_usb_phy.o
+obj-$(CONFIG_USB_MSM_OTG)              += msm_otg.o
+obj-$(CONFIG_USB_MV_OTG)               += mv_otg.o
+obj-$(CONFIG_USB_MXS_PHY)              += mxs-phy.o
 obj-$(CONFIG_USB_RCAR_PHY)             += rcar-phy.o
-obj-$(CONFIG_SAMSUNG_USBPHY)           += samsung-usbphy.o
+obj-$(CONFIG_USB_ULPI)                 += ulpi.o
+obj-$(CONFIG_USB_ULPI_VIEWPORT)                += ulpi_viewport.o