linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/10] Tegra XHCI support
@ 2014-05-15  0:32 Andrew Bresticker
  2014-05-15  0:32 ` [RFC PATCH 01/10] clk: tegra: Enable hardware control of PLLE Andrew Bresticker
                   ` (10 more replies)
  0 siblings, 11 replies; 25+ messages in thread
From: Andrew Bresticker @ 2014-05-15  0:32 UTC (permalink / raw)
  To: linux-tegra, devicetree, linux-kernel, linux-arm-kernel, linux-usb
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala,
	Stephen Warren, Thierry Reding, Russell King, Peter De Schrijver,
	Prashant Gaikwad, Mike Turquette, Kishon Vijay Abraham I,
	Greg Kroah-Hartman, Mathias Nyman, Grant Likely, Randy Dunlap,
	Andrew Bresticker

This is a first pass at the host and PHY drivers necessary for USB3.0
support on Tegra114 and Tegra124.  The Tegra XHCI host controller requires
external firmware [1] which must be loaded before using any USB ports owned
by the controller.  The XUSB PHY driver handles mapping and enabling of
the UTMI, HSIC, and SuperSpeed pads to the XHCI controller.

Tested on a Venice2 with a variety of USB2.0 and USB3.0 memory sticks
and ethernet dongles.  

Notes:
 - I've included support for Tegra114, but since I don't have Tegra114-based
   hardware, it is completely untested.
 - The PCIe and SATA PHYs also are programmed using the XUSB_PADCTL space
   as well.  At least some of the code can be re-used, specifically with
   respect to lane programming.  I believe Thierry is working on the PCIe
   parts of this.
 - HSIC support is mostly untested and I think there are still some issues
   to work out there.  I do have a Tegra124 board with a HSIC hub so I'll
   try to sort those out.
 - The DT bindings are rough, comments/suggestions very welcome.
 - The XUSB PHY driver doesn't play nice with the existing Tegra USB2.0
   PHY driver, so I've assinged all USB ports to XUSB in the DT for now.
 - Patch 5 is a temporary hack to get to the fuse data.  Internally we
   have this based on Peter's fuse driver series [2], but I haven't seen
   any activity on that upstream lately.

Based on work by:
  a lot of people, but from what I can tell from the L4T tree [3], the
  original authors of the Tegra XHCI driver are:
    Ajay Gupta <ajayg@nvidia.com>
    Bharath Yadav <byadav@nvidia.com>

[1] http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/xhci-firmware-2014.05.09.00.00.tbz2
[2] http://patchwork.ozlabs.org/patch/314883/
[3] git://nv-tegra.nvidia.com/linux-3.10.git

Andrew Bresticker (8):
  clk: tegra: Fix xusb_hs_src clock hierarchy
  clk: tegra: Initialize xusb clocks
  ARM: tegra: Export function to read USB calibration data
  usb: xhci: Add Tegra XHCI host-controller driver
  phy: Add Tegra XUSB PHY driver
  ARM: tegra124: Bind CAR to syscon device
  ARM: tegra124: Add XHCI controller and PHY
  ARM: tegra124: Enable XHCI on Venice2

Jim Lin (2):
  clk: tegra: Enable hardware control of PLLE
  clk: tegra: Fix xusb_fs_src mux

 .../bindings/phy/nvidia,tegra-xusb-phy.txt         |   76 ++
 .../devicetree/bindings/usb/nvidia,tegra-xhci.txt  |   42 +
 arch/arm/boot/dts/tegra124-venice2.dts             |   46 +-
 arch/arm/boot/dts/tegra124.dtsi                    |   39 +-
 arch/arm/mach-tegra/fuse.c                         |   13 +
 drivers/clk/tegra/clk-id.h                         |    1 +
 drivers/clk/tegra/clk-pll.c                        |   33 +-
 drivers/clk/tegra/clk-tegra-periph.c               |   10 +-
 drivers/clk/tegra/clk-tegra114.c                   |   22 +-
 drivers/clk/tegra/clk-tegra124.c                   |   21 +-
 drivers/phy/Kconfig                                |   11 +
 drivers/phy/Makefile                               |    1 +
 drivers/phy/phy-tegra-xusb.c                       | 1171 ++++++++++++++++++++
 drivers/phy/phy-tegra-xusb.h                       |  270 +++++
 drivers/usb/host/Kconfig                           |   12 +
 drivers/usb/host/Makefile                          |    2 +
 drivers/usb/host/xhci-tegra.c                      |  796 +++++++++++++
 drivers/usb/host/xhci-tegra.h                      |  131 +++
 include/dt-bindings/clock/tegra114-car.h           |    3 +-
 include/dt-bindings/clock/tegra124-car.h           |    3 +-
 include/linux/tegra-soc.h                          |    1 +
 include/linux/usb/tegra_xusb.h                     |   66 ++
 22 files changed, 2717 insertions(+), 53 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/phy/nvidia,tegra-xusb-phy.txt
 create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra-xhci.txt
 create mode 100644 drivers/phy/phy-tegra-xusb.c
 create mode 100644 drivers/phy/phy-tegra-xusb.h
 create mode 100644 drivers/usb/host/xhci-tegra.c
 create mode 100644 drivers/usb/host/xhci-tegra.h
 create mode 100644 include/linux/usb/tegra_xusb.h

-- 
1.9.1.423.g4596e3a


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2014-05-20 15:41 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-15  0:32 [RFC PATCH 00/10] Tegra XHCI support Andrew Bresticker
2014-05-15  0:32 ` [RFC PATCH 01/10] clk: tegra: Enable hardware control of PLLE Andrew Bresticker
2014-05-15  0:32 ` [RFC PATCH 02/10] clk: tegra: Fix xusb_fs_src mux Andrew Bresticker
2014-05-15  0:32 ` [RFC PATCH 03/10] clk: tegra: Fix xusb_hs_src clock hierarchy Andrew Bresticker
2014-05-15  0:33 ` [RFC PATCH 04/10] clk: tegra: Initialize xusb clocks Andrew Bresticker
2014-05-15 19:22   ` Stephen Warren
2014-05-20 15:41     ` Peter De Schrijver
2014-05-15  0:33 ` [RFC PATCH 05/10] ARM: tegra: Export function to read USB calibration data Andrew Bresticker
2014-05-15 20:39   ` Stephen Warren
2014-05-15  0:33 ` [RFC PATCH 06/10] usb: xhci: Add Tegra XHCI host-controller driver Andrew Bresticker
2014-05-15  8:17   ` Arnd Bergmann
2014-05-15  9:19     ` Thierry Reding
2014-05-15 13:30       ` Arnd Bergmann
2014-05-15 20:18     ` Andrew Bresticker
2014-05-15 21:16       ` Alan Stern
2014-05-15 21:18       ` Thierry Reding
2014-05-16 16:52         ` Andrew Bresticker
2014-05-15  0:33 ` [RFC PATCH 07/10] phy: Add Tegra XUSB PHY driver Andrew Bresticker
2014-05-15  0:33 ` [RFC PATCH 08/10] ARM: tegra124: Bind CAR to syscon device Andrew Bresticker
2014-05-15 19:25   ` Stephen Warren
2014-05-15 20:22     ` Andrew Bresticker
2014-05-15  0:33 ` [RFC PATCH 09/10] ARM: tegra124: Add XHCI controller and PHY Andrew Bresticker
2014-05-15  0:33 ` [RFC PATCH 10/10] ARM: tegra124: Enable XHCI on Venice2 Andrew Bresticker
2014-05-15 19:33 ` [RFC PATCH 00/10] Tegra XHCI support Stephen Warren
2014-05-15 20:44   ` Andrew Bresticker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).