* [PATCH 1/5] USB: PHY: Make PHY driver selection possible by controller drivers
2013-05-29 11:43 [PATCH 0/5] USB: PHY: Improve PHY selection logic Roger Quadros
@ 2013-05-29 11:43 ` Roger Quadros
[not found] ` <1369827811-534-1-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 11:43 UTC (permalink / raw)
To: gregkh
Cc: balbi, stern, kishon, arnd, adrienverge, linux-usb, linux-omap,
linux-kernel, Roger Quadros
Convert PHY Drivers from menuconfig to menu so that the PHY drivers
can be explicitely selected by the controller drivers.
USB_PHY is no longer a user visible option. It is upto to the PHY
drivers to select it if needed. This patch does so for the existing
PHY drivers that use the USB_PHY library.
Doing so moves the USB_PHY and PHY driver selection problem from the
end user to the PHY and controller driver developer.
e.g.
Earlier, a controller driver (e.g. EHCI_OMAP) that needs to select
a PHY driver (e.g. NOP_PHY) couldn't do so because the PHY driver
depended on USB_PHY. Making the controller driver depend on USB_PHY
has a negative effect that makes it invisible to the user till
USB_PHY is selected. Most end users will not familiar with this.
With this patch, the end user just needs to select the controller driver
needed for his/her platform without worrying about which PHY driver to
select.
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
drivers/usb/Makefile | 3 +--
drivers/usb/phy/Kconfig | 31 +++++++++++++++++++++----------
2 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index c41feba..411c34c 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -43,8 +43,7 @@ obj-$(CONFIG_USB_MICROTEK) += image/
obj-$(CONFIG_USB_SERIAL) += serial/
-obj-$(CONFIG_USB) += misc/
-obj-$(CONFIG_USB_PHY) += phy/
+obj-$(CONFIG_USB) += misc/ phy/
obj-$(CONFIG_EARLY_PRINTK_DBGP) += early/
obj-$(CONFIG_USB_ATM) += atm/
diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index 7ef3eb8..b57f7f0 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -1,16 +1,11 @@
#
# Physical Layer USB driver configuration
#
-menuconfig USB_PHY
- bool "USB Physical Layer drivers"
- help
- USB controllers (those which are host, device or DRD) need a
- device to handle the physical layer signalling, commonly called
- a PHY.
-
- The following drivers add support for such PHY devices.
+menu "USB Physical Layer drivers"
-if USB_PHY
+config USB_PHY
+ bool
+ default n
#
# USB Transceiver Drivers
@@ -18,6 +13,7 @@ if USB_PHY
config AB8500_USB
tristate "AB8500 USB Transceiver Driver"
depends on AB8500_CORE
+ select USB_PHY
help
Enable this to support the USB OTG transceiver in AB8500 chip.
This transceiver supports high and full speed devices plus,
@@ -27,12 +23,14 @@ config FSL_USB2_OTG
bool "Freescale USB OTG Transceiver Driver"
depends on USB_EHCI_FSL && USB_FSL_USB2 && PM_RUNTIME
select USB_OTG
+ select USB_PHY
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_PHY
help
If you say yes here you get support for the Philips ISP1301
USB-On-The-Go transceiver working with the OMAP OTG controller.
@@ -46,12 +44,14 @@ config ISP1301_OMAP
config MV_U3D_PHY
bool "Marvell USB 3.0 PHY controller Driver"
depends on CPU_MMP3
+ select USB_PHY
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_PHY
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
@@ -70,6 +70,7 @@ config OMAP_USB2
tristate "OMAP USB2 PHY Driver"
depends on ARCH_OMAP2PLUS
select OMAP_CONTROL_USB
+ select USB_PHY
help
Enable this to support the transceiver that is part of SOC. This
driver takes care of all the PHY functionality apart from comparator.
@@ -79,6 +80,7 @@ config OMAP_USB2
config OMAP_USB3
tristate "OMAP USB3 PHY Driver"
select OMAP_CONTROL_USB
+ select USB_PHY
help
Enable this to support the USB3 PHY that is part of SOC. This
driver takes care of all the PHY functionality apart from comparator.
@@ -95,6 +97,7 @@ config SAMSUNG_USBPHY
config SAMSUNG_USB2PHY
tristate "Samsung USB 2.0 PHY controller Driver"
select SAMSUNG_USBPHY
+ select USB_PHY
help
Enable this to support Samsung USB 2.0 (High Speed) PHY controller
driver for Samsung SoCs.
@@ -102,6 +105,7 @@ config SAMSUNG_USB2PHY
config SAMSUNG_USB3PHY
tristate "Samsung USB 3.0 PHY controller Driver"
select SAMSUNG_USBPHY
+ select USB_PHY
help
Enable this to support Samsung USB 3.0 (Super Speed) phy controller
for samsung SoCs.
@@ -109,6 +113,7 @@ config SAMSUNG_USB3PHY
config TWL4030_USB
tristate "TWL4030 USB Transceiver Driver"
depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
+ select USB_PHY
help
Enable this to support the USB OTG transceiver on TWL4030
family chips (including the TWL5030 and TPS659x0 devices).
@@ -129,6 +134,7 @@ config TWL6030_USB
config USB_GPIO_VBUS
tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
depends on GPIOLIB
+ select USB_PHY
help
Provides simple GPIO VBUS sensing for controllers with an
internal transceiver via the usb_phy interface, and
@@ -139,6 +145,7 @@ config USB_ISP1301
tristate "NXP ISP1301 USB transceiver support"
depends on USB || USB_GADGET
depends on I2C
+ select USB_PHY
help
Say Y here to add support for the NXP ISP1301 USB transceiver driver.
This chip is typically used as USB transceiver for USB host, gadget
@@ -150,6 +157,7 @@ config USB_ISP1301
config USB_MSM_OTG
tristate "OTG support for Qualcomm on-chip USB controller"
depends on (USB || USB_GADGET) && ARCH_MSM
+ select USB_PHY
help
Enable this to support the USB OTG transceiver on MSM chips. It
handles PHY initialization, clock management, and workarounds
@@ -163,6 +171,7 @@ config USB_MV_OTG
tristate "Marvell USB OTG support"
depends on USB_EHCI_MV && USB_MV_UDC && PM_RUNTIME
select USB_OTG
+ select USB_PHY
help
Say Y here if you want to build Marvell USB OTG transciever
driver in kernel (including PXA and MMP series). This driver
@@ -174,6 +183,7 @@ config USB_MXS_PHY
tristate "Freescale MXS USB PHY support"
depends on ARCH_MXC || ARCH_MXS
select STMP_DEVICE
+ select USB_PHY
help
Enable this to support the Freescale MXS USB PHY.
@@ -182,6 +192,7 @@ config USB_MXS_PHY
config USB_RCAR_PHY
tristate "Renesas R-Car USB phy support"
depends on USB || USB_GADGET
+ select USB_PHY
help
Say Y here to add support for the Renesas R-Car USB phy driver.
This chip is typically used as USB phy for USB host, gadget.
@@ -204,4 +215,4 @@ config USB_ULPI_VIEWPORT
Provides read/write operations to the ULPI phy register set for
controllers with a viewport register (e.g. Chipidea/ARC controllers).
-endif # USB_PHY
+endmenu
--
1.7.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread[parent not found: <1369827811-534-1-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>]
* [PATCH 2/5] USB: ehci-omap: select NOP_USB_XCEIV PHY driver
[not found] ` <1369827811-534-1-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
@ 2013-05-29 11:43 ` Roger Quadros
2013-05-29 15:33 ` Adrien Vergé
0 siblings, 1 reply; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 11:43 UTC (permalink / raw)
To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r
Cc: balbi-l0cyMroinI0, stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz,
kishon-l0cyMroinI0, arnd-r2nGTMty4D4,
adrienverge-Re5JQEeQqe8AvxtiuMwx3w,
linux-usb-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Roger Quadros
ehci-omap needs NOP_USB_XCEIV PHY driver to function
properly, so select it. As the USB PHY drivers no longer
depend on USB_PHY, it is safe to select the PHY drivers.
Signed-off-by: Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>
---
drivers/usb/host/Kconfig | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 344d5e2..5561b47 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -150,13 +150,11 @@ config USB_EHCI_MXC
config USB_EHCI_HCD_OMAP
tristate "EHCI support for OMAP3 and later chips"
depends on ARCH_OMAP
+ select NOP_USB_XCEIV
default y
---help---
Enables support for the on-chip EHCI controller on
OMAP3 and later chips.
- If your system uses a PHY on the USB port, you will need to
- enable USB_PHY and the appropriate PHY driver as well. Most
- boards need the NOP_USB_XCEIV PHY driver.
config USB_EHCI_HCD_ORION
tristate "Support for Marvell EBU on-chip EHCI USB controller"
--
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 2/5] USB: ehci-omap: select NOP_USB_XCEIV PHY driver
2013-05-29 11:43 ` [PATCH 2/5] USB: ehci-omap: select NOP_USB_XCEIV PHY driver Roger Quadros
@ 2013-05-29 15:33 ` Adrien Vergé
0 siblings, 0 replies; 10+ messages in thread
From: Adrien Vergé @ 2013-05-29 15:33 UTC (permalink / raw)
To: Roger Quadros
Cc: gregkh, balbi, stern, kishon, arnd, linux-usb, linux-omap,
linux-kernel
2013/5/29 Roger Quadros <rogerq@ti.com>:
> ehci-omap needs NOP_USB_XCEIV PHY driver to function
> properly, so select it. As the USB PHY drivers no longer
> depend on USB_PHY, it is safe to select the PHY drivers.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Adrien Vergé <adrienverge@gmail.com>
Tested-by: Adrien Vergé <adrienverge@gmail.com>
Works well on Pandaboard (OMAP4430).
Thank you!
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/5] USB: ehci-msm: USB_EHCI_MSM need not depend on USB_PHY
2013-05-29 11:43 [PATCH 0/5] USB: PHY: Improve PHY selection logic Roger Quadros
2013-05-29 11:43 ` [PATCH 1/5] USB: PHY: Make PHY driver selection possible by controller drivers Roger Quadros
[not found] ` <1369827811-534-1-git-send-email-rogerq-l0cyMroinI0@public.gmane.org>
@ 2013-05-29 11:43 ` Roger Quadros
2013-05-29 11:43 ` [PATCH 4/5] USB: lpc32xx: USB_LPC32XX " Roger Quadros
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 11:43 UTC (permalink / raw)
To: gregkh
Cc: balbi, stern, kishon, arnd, adrienverge, linux-usb, linux-omap,
linux-kernel, Roger Quadros, Pavankumar Kondeti
As the USB PHY drivers no longer depend on USB_PHY but
select it if needed, the controller drivers need not
depend on USB_PHY. They can safely select the necessary
PHY driver i.e. USB_MSM_OTG in this case.
Signed-off-by: Roger Quadros <rogerq@ti.com>
CC: Pavankumar Kondeti <pkondeti@codeaurora.org>
---
drivers/usb/host/Kconfig | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 5561b47..48e1b70 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -186,7 +186,6 @@ config USB_EHCI_HCD_AT91
config USB_EHCI_MSM
tristate "Support for Qualcomm QSD/MSM on-chip EHCI USB controller"
depends on ARCH_MSM
- depends on USB_PHY
select USB_EHCI_ROOT_HUB_TT
select USB_MSM_OTG
---help---
--
1.7.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 4/5] USB: lpc32xx: USB_LPC32XX need not depend on USB_PHY
2013-05-29 11:43 [PATCH 0/5] USB: PHY: Improve PHY selection logic Roger Quadros
` (2 preceding siblings ...)
2013-05-29 11:43 ` [PATCH 3/5] USB: ehci-msm: USB_EHCI_MSM need not depend on USB_PHY Roger Quadros
@ 2013-05-29 11:43 ` Roger Quadros
2013-05-29 14:06 ` Roland Stigge
2013-05-29 11:43 ` [PATCH 5/5] USB: OMAP: USB_OMAP need not depend USB_PHY Roger Quadros
2013-05-29 11:59 ` [PATCH 0/5] USB: PHY: Improve PHY selection logic Arnd Bergmann
5 siblings, 1 reply; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 11:43 UTC (permalink / raw)
To: gregkh
Cc: balbi, stern, kishon, arnd, adrienverge, linux-usb, linux-omap,
linux-kernel, Roger Quadros, Roland Stigge
As the USB PHY drivers no longer depend on USB_PHY but
select it if needed, the controller drivers need not
depend on USB_PHY. They can safely select the necessary
PHY driver i.e. USB_ISP1301 in this case.
Signed-off-by: Roger Quadros <rogerq@ti.com>
CC: Roland Stigge <stigge@antcom.de>
---
drivers/usb/gadget/Kconfig | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index f41aa0d..2b98bce 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -144,7 +144,6 @@ config USB_AT91
config USB_LPC32XX
tristate "LPC32XX USB Peripheral Controller"
depends on ARCH_LPC32XX
- depends on USB_PHY
select USB_ISP1301
help
This option selects the USB device controller in the LPC32xx SoC.
--
1.7.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 4/5] USB: lpc32xx: USB_LPC32XX need not depend on USB_PHY
2013-05-29 11:43 ` [PATCH 4/5] USB: lpc32xx: USB_LPC32XX " Roger Quadros
@ 2013-05-29 14:06 ` Roland Stigge
0 siblings, 0 replies; 10+ messages in thread
From: Roland Stigge @ 2013-05-29 14:06 UTC (permalink / raw)
To: Roger Quadros
Cc: gregkh, balbi, stern, kishon, arnd, adrienverge, linux-usb,
linux-omap, linux-kernel
On 05/29/2013 01:43 PM, Roger Quadros wrote:
> As the USB PHY drivers no longer depend on USB_PHY but
> select it if needed, the controller drivers need not
> depend on USB_PHY. They can safely select the necessary
> PHY driver i.e. USB_ISP1301 in this case.
>
> Signed-off-by: Roger Quadros <rogerq@ti.com>
Acked-by: Roland Stigge <stigge@antcom.de>
Tested-by: Roland Stigge <stigge@antcom.de>
Thanks!
> CC: Roland Stigge <stigge@antcom.de>
> ---
> drivers/usb/gadget/Kconfig | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index f41aa0d..2b98bce 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -144,7 +144,6 @@ config USB_AT91
> config USB_LPC32XX
> tristate "LPC32XX USB Peripheral Controller"
> depends on ARCH_LPC32XX
> - depends on USB_PHY
> select USB_ISP1301
> help
> This option selects the USB device controller in the LPC32xx SoC.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 5/5] USB: OMAP: USB_OMAP need not depend USB_PHY
2013-05-29 11:43 [PATCH 0/5] USB: PHY: Improve PHY selection logic Roger Quadros
` (3 preceding siblings ...)
2013-05-29 11:43 ` [PATCH 4/5] USB: lpc32xx: USB_LPC32XX " Roger Quadros
@ 2013-05-29 11:43 ` Roger Quadros
2013-05-29 11:59 ` [PATCH 0/5] USB: PHY: Improve PHY selection logic Arnd Bergmann
5 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 11:43 UTC (permalink / raw)
To: gregkh
Cc: balbi, stern, kishon, arnd, adrienverge, linux-usb, linux-omap,
linux-kernel, Roger Quadros
As the USB PHY drivers no longer depend on USB_PHY but
select it if needed, the controller drivers need not
depend on USB_PHY. They can safely select the necessary
PHY driver i.e. ISP1301_OMAP in this case.
Signed-off-by: Roger Quadros <rogerq@ti.com>
---
drivers/usb/gadget/Kconfig | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 2b98bce..86d5d80 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -194,7 +194,6 @@ config USB_FUSB300
config USB_OMAP
tristate "OMAP USB Device Controller"
depends on ARCH_OMAP1
- depends on USB_PHY
select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
help
Many Texas Instruments OMAP processors have flexible full
--
1.7.4.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 0/5] USB: PHY: Improve PHY selection logic
2013-05-29 11:43 [PATCH 0/5] USB: PHY: Improve PHY selection logic Roger Quadros
` (4 preceding siblings ...)
2013-05-29 11:43 ` [PATCH 5/5] USB: OMAP: USB_OMAP need not depend USB_PHY Roger Quadros
@ 2013-05-29 11:59 ` Arnd Bergmann
2013-05-29 12:05 ` Roger Quadros
5 siblings, 1 reply; 10+ messages in thread
From: Arnd Bergmann @ 2013-05-29 11:59 UTC (permalink / raw)
To: Roger Quadros
Cc: gregkh, balbi, stern, kishon, adrienverge, linux-usb, linux-omap,
linux-kernel
On Wednesday 29 May 2013 14:43:26 Roger Quadros wrote:
>
> Improve Kconfig so that the relevant PHY driver can be explicitely
> selected by the controller driver instead of relying on the user
> to do so.
>
> Detailed description in patch 1.
I think you have to fold patches 3-5 into patch 1, otherwise you
get a circular dependency between the Kconfig options during
bisection.
Arnd
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 0/5] USB: PHY: Improve PHY selection logic
2013-05-29 11:59 ` [PATCH 0/5] USB: PHY: Improve PHY selection logic Arnd Bergmann
@ 2013-05-29 12:05 ` Roger Quadros
0 siblings, 0 replies; 10+ messages in thread
From: Roger Quadros @ 2013-05-29 12:05 UTC (permalink / raw)
To: Arnd Bergmann
Cc: gregkh, balbi, stern, kishon, adrienverge, linux-usb, linux-omap,
linux-kernel
On 05/29/2013 02:59 PM, Arnd Bergmann wrote:
> On Wednesday 29 May 2013 14:43:26 Roger Quadros wrote:
>>
>> Improve Kconfig so that the relevant PHY driver can be explicitely
>> selected by the controller driver instead of relying on the user
>> to do so.
>>
>> Detailed description in patch 1.
>
> I think you have to fold patches 3-5 into patch 1, otherwise you
> get a circular dependency between the Kconfig options during
> bisection.
>
You are right. I'll fix that in v2. I'll first wait for more comments
on the overall approach.
cheers,
-roger
^ permalink raw reply [flat|nested] 10+ messages in thread