Hi, The OMAP's High Speed Host controller can interface to ULPI/UTMI PHYs transparently i.e. whithout requiring the device drivers to access the PHY. 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 board files add the PHY as a platform device and use usb_bind_phy() (API introduced in [2]) to bind the PHY device to the controller's port. The ehci-omap driver then uses usb_get_phy_dev() to get the PHY device associated to the controller's port. All this results in a much cleaner code and makes USB PHY resource management work properly on OMAP. NOTE: Tested on 4460ES-B1 Panda and BeagleBoard C4 only. Other boards are only build tested. Patches are based on Linux-3.8-rc5 and depend on [1] [PATCH v9 00/20] OMAP USB Host cleanup https://lkml.org/lkml/2013/1/23/155 [2] [PATCH v2 0/6] USB: Add support for multiple PHYs of same type https://lkml.org/lkml/2013/1/24/876 v2: - Added Alan's patch to split ehci-omap into separate driver - Addressed Russell King's comments on usage of clk/regulator framework. - Adapted all board using ehci-omap to using the PHY mechanism. The following changes since commit e18d48b7f7e563664a41d4658b8cc15679ee4745: usb: otg: utils: add facilities in phy lib to support multiple PHYs of same type (2013-01-28 12:20:54 +0200) git://github.com/rogerq/linux.git linux-usbhost15 --- Alan Stern (1): USB: EHCI: split ehci-omap out to a separate driver Roger Quadros (29): usb: phy: nop: use devm_kzalloc() usb: phy: nop: Manage PHY clock usb: phy: nop: Handle power supply regulator for the PHY usb: phy: nop: Handle RESET for the PHY usb: phy: nop: use new PHY API to register PHY mfd: omap-usb-host: update nports in platform_data mfd: omap-usb-host: Remove PHY reset handling code USB: ehci-omap: Use devm_request_and_ioremap() USB: ehci-omap: Use PHY APIs to get the PHY device and put it out of suspend 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 to ehci-omap changes ARM: OMAP3: Beagle: Adapt to ehci-omap changes ARM: OMAP3: 3430SDP: Adapt to ehci-omap changes ARM: OMAP3: 3630SDP: Adapt to ehci-omap changes ARM: OMAP: AM3517crane: Adapt to ehci-omap changes ARM: OMAP: AM3517evm: Adapt to ehci-omap changes ARM: OMAP3: cm-t35: Adapt to ehci-omap changes ARM: OMAP3: cm-t3517: Adapt to ehci-omap changes ARM: OMAP: devkit8000: Adapt to ehci-omap changes ARM: OMAP3: igep0020: Adapt to ehci-omap changes ARM: OMAP3: omap3evm: Adapt to ehci-omap changes ARM: OMAP3: omap3pandora: Adapt to ehci-omap changes ARM: OMAP3: omap3stalker: Adapt to ehci-omap changes ARM: OMAP3: omap3touchbook: Adapt to ehci-omap changes ARM: OMAP3: overo: Adapt to ehci-omap changes ARM: OMAP: zoom: Adapt to ehci-omap changes ARM: OMAP: USB: Remove unused fields from struct usbhs_omap_platform_data arch/arm/mach-omap2/board-3430sdp.c | 99 +++++++++++- arch/arm/mach-omap2/board-3630sdp.c | 100 +++++++++++- arch/arm/mach-omap2/board-am3517crane.c | 95 ++++++++++-- arch/arm/mach-omap2/board-am3517evm.c | 66 +++++++- arch/arm/mach-omap2/board-cm-t35.c | 95 ++++++++++- arch/arm/mach-omap2/board-cm-t3517.c | 97 +++++++++++- arch/arm/mach-omap2/board-devkit8000.c | 20 ++- arch/arm/mach-omap2/board-igep0020.c | 112 +++++++++++-- arch/arm/mach-omap2/board-omap3beagle.c | 93 ++++++++++- arch/arm/mach-omap2/board-omap3evm.c | 63 ++++++-- arch/arm/mach-omap2/board-omap3pandora.c | 54 +++++- arch/arm/mach-omap2/board-omap3stalker.c | 52 +++++- arch/arm/mach-omap2/board-omap3touchbook.c | 62 ++++++- arch/arm/mach-omap2/board-omap4panda.c | 123 ++++++++++---- arch/arm/mach-omap2/board-overo.c | 55 ++++++- arch/arm/mach-omap2/board-zoom.c | 56 ++++++- drivers/mfd/omap-usb-host.c | 48 +------ drivers/usb/host/Kconfig | 2 +- drivers/usb/host/Makefile | 1 + drivers/usb/host/ehci-hcd.c | 6 +- drivers/usb/host/ehci-omap.c | 245 +++++++++++----------------- drivers/usb/otg/nop-usb-xceiv.c | 106 +++++++++++-- include/linux/platform_data/usb-omap.h | 3 - include/linux/usb/nop-usb-xceiv.h | 1 + 24 files changed, 1288 insertions(+), 366 deletions(-) -- 1.7.4.1 -- 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