Skip to content

USB: Add support for multiple PHYs of same type

Kishon Vijay Abraham I linux-arm-kernel linux-omap lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest6 patches 6 repliesIn review
  2. v16 patches 21 repliesSuperseded

Changes in v2 from the cover letter

* made *usb_bind_phy* return an interget instead of struct usb_phy_bind *
* made *__usb_find_phy_dev* return -EPROBE_DEFER if the usb_phy_bind entry has device names filled but phy is NULL.
* Added of_node_put(node) corresponding to of_parse_phandle.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6usb: otg: Add an API to bind the USB controller and PHYdrivers/usb/otg/otg.c include/linux/usb/phy.h+59 -03 replies
2/6usb: otg: utils: add facilities in phy lib to support multiple PHYs of same typedrivers/usb/otg/otg.c include/linux/usb/phy.h+130 -12 replies
3/6ARM: OMAP: USB: Add phy binding informationarch/arm/mach-omap2/board-2430sdp.c arch/arm/mach-omap2/board-3430sdp.c arch/arm/mach-omap2/board-4430sdp.c +14 more+34 -01 reply
4/6drivers: usb: musb: omap: make use of the new PHY lib APIsdrivers/usb/musb/omap2430.c drivers/usb/otg/twl4030-usb.c drivers/usb/phy/omap-usb2.c+5 -30 replies
5/6usb: otg: add device tree support to otg librarydrivers/usb/otg/otg.c include/linux/usb/phy.h+88 -00 replies
6/6USB: MUSB: OMAP: get PHY by phandle for dt bootdrivers/usb/musb/omap2430.c+6 -11 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/6] USB: Add support for multiple PHYs of same type

This patch series adds support for adding multiple PHY's (of same type). The binding information has to be present in the PHY library (otg.c) in order for it to return the appropriate PHY whenever the USB controller request for the PHY. So added a new API usb_bind_phy() to pass the binding information. This API should be called by platform specific initialization code.

So the binding should be done something like usb_bind_phy("musb-hdrc.0.auto", 0, "omap-usb2.1.auto"); specifying the USB controller device name, index, and the PHY device name.
I have done this binding for OMAP platforms, but it should be done for all the platforms.

After this design, the phy can be got by passing the USB controller device pointer and the index.

Changes from v1:
* made *usb_bind_phy* return an interget instead of struct usb_phy_bind *
* made *__usb_find_phy_dev* return -EPROBE_DEFER if the usb_phy_bind entry has device names filled but phy is NULL.
* Added of_node_put(node) corresponding to of_parse_phandle.

Developed this patch series on
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git xceiv after applying "usb: musb: add driver for control module" patch series and "ARM: dts: omap: add dt data for MUSB"

I've kept this patch series and all the patch series to follow in a single branch
git://gitorious.org/linux-usb/linux-usb.git omap5-with-palmas (changes up to 23b4dfa2ab7052569cd88acc6383c4b1a8e8a482)

Did basic enumeration testing in omap4 panda and omap3 beagle.

Kishon Vijay Abraham I (6):
usb: otg: Add an API to bind the USB controller and PHY
usb: otg: utils: add facilities in phy lib to support multiple PHYs
of same type
ARM: OMAP: USB: Add phy binding information
drivers: usb: musb: omap: make use of the new PHY lib APIs
usb: otg: add device tree support to otg library
USB: MUSB: OMAP: get PHY by phandle for dt boot

 arch/arm/mach-omap2/board-2430sdp.c          |    2 +
 arch/arm/mach-omap2/board-3430sdp.c          |    2 +
 arch/arm/mach-omap2/board-4430sdp.c          |    2 +
 arch/arm/mach-omap2/board-cm-t35.c           |    2 +
 arch/arm/mach-omap2/board-devkit8000.c       |    2 +
 arch/arm/mach-omap2/board-igep0020.c         |    2 +
 arch/arm/mach-omap2/board-ldp.c              |    2 +
 arch/arm/mach-omap2/board-omap3beagle.c      |    2 +
 arch/arm/mach-omap2/board-omap3evm.c         |    2 +
 arch/arm/mach-omap2/board-omap3logic.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       |    2 +
 arch/arm/mach-omap2/board-overo.c            |    2 +
 arch/arm/mach-omap2/board-rm680.c            |    2 +
 arch/arm/mach-omap2/board-zoom-peripherals.c |    2 +
 drivers/usb/musb/omap2430.c                  |    7 +-
 drivers/usb/otg/otg.c                        |  235 +++++++++++++++++++++++++-
 drivers/usb/otg/twl4030-usb.c                |    3 +-
 drivers/usb/phy/omap-usb2.c                  |    3 +-
 include/linux/usb/phy.h                      |   43 +++++
 22 files changed, 321 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.9.5