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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux