[PATCH 00/14] USB: omap-ehci: Move PHY management to PHY driver

Roger Quadros
2013-01-10T16:51:44Z

The OMAP's High Speed Host controller can interface to ULPI/UTMI
PHY's transparently i.e. whithout requiring the device drivers to
access the PHY [1]. However, the OS must ensure that the PHY has
the necessary resources (power/clock/reset) enabled before it is used.

Till now, the omap-ehci driver was managing the power and reset of the PHY
whereas, clock enabling was left to the bootloader or board files.

In this patchset we make the NOP PHY driver (nop-usb-xceiv.c) handle
all the PHY resources that are available so that it can be used by
platforms like OMAP.

The omap-ehci driver instantiates a PHY platform device for each port
that is in PHY mode. It then uses the USB PHY APIs to manage the PHY.

All this results in a much cleaner code and makes USB PHY resource management
work properly on OMAP.

NOTE: Only omap4panda board is adapted for the changes. So USB Host will
break for other boards. Once we have done a priliminary review, I can adapt
other boards as well.

This patchset depends on the series
https://lkml.org/lkml/2013/1/2/144
git://github.com/rogerq/linux.git arm-for-next-usbhost9-part

--
cheeer,
-roger

[1] - In practice we would need to access the PHY to work around Silicon Erratas
in the OMAP's USB Host IP.

Roger Quadros (14):
mfd: omap-usb-host: Consolidate OMAP USB-HS platform data
usb: phy: Add new API usb_get_phy_from_dev()
usb: xceiv: nop: Manage PHY clock
usb: phy: nop: Handle power supply regulator for the PHY
usb: phy: nop: Handle RESET for the PHY
mfd: omap-usb-host: update nports in platform_data
usb: ehci-omap: Instantiate PHY devices if required
mfd: omap-usb-host: Remove PHY reset handling code
usb: ehci-omap: Remove PHY reset handling code
usb: ehci-omap: Remove PHY regulator handling code
ARM: OMAP2+: omap4panda: Provide USB Host's PHY platform data
ARM: OMAP2+: omap4panda: Adapt HUB power to regulator framework
ARM: OMAP2+: omap4panda: Adapt HUB reset to regulator framework
ARM: OMAP2+: omap4panda: Remove irrelevant USB host platform data

arch/arm/mach-omap2/board-3430sdp.c | 2 +-
arch/arm/mach-omap2/board-3630sdp.c | 2 +-
arch/arm/mach-omap2/board-am3517crane.c | 2 +-
arch/arm/mach-omap2/board-am3517evm.c | 2 +-
arch/arm/mach-omap2/board-cm-t35.c | 2 +-
arch/arm/mach-omap2/board-cm-t3517.c | 2 +-
arch/arm/mach-omap2/board-devkit8000.c | 2 +-
arch/arm/mach-omap2/board-igep0020.c | 4 +-
arch/arm/mach-omap2/board-omap3beagle.c | 2 +-
arch/arm/mach-omap2/board-omap3evm.c | 2 +-
arch/arm/mach-omap2/board-omap3pandora.c | 2 +-
arch/arm/mach-omap2/board-omap3stalker.c | 2 +-
arch/arm/mach-omap2/board-omap3touchbook.c | 2 +-
arch/arm/mach-omap2/board-omap4panda.c | 117 +++++++++++++-----
arch/arm/mach-omap2/board-overo.c | 2 +-
arch/arm/mach-omap2/board-zoom.c | 2 +-
arch/arm/mach-omap2/usb-host.c | 30 +----
arch/arm/mach-omap2/usb.h | 21 +---
drivers/mfd/omap-usb-host.c | 64 +---------
drivers/mfd/omap-usb-tll.c | 8 +-
drivers/usb/host/ehci-omap.c | 182 ++++++++++++++--------------
drivers/usb/otg/nop-usb-xceiv.c | 86 +++++++++++++
drivers/usb/otg/otg.c | 36 ++++++
include/linux/platform_data/usb-omap.h | 28 ++---
include/linux/usb/nop-usb-xceiv.h | 1 +
include/linux/usb/phy.h | 6 +
26 files changed, 345 insertions(+), 266 deletions(-)

--
1.7.4.1