Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ceca718f authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'tegra-for-3.9-soc-usb' of...

Merge tag 'tegra-for-3.9-soc-usb' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc

From Stephen Warren:
ARM: tegra: USB driver cleanup

The Tegra USB driver has a number of issues:

1) The PHY driver isn't a true platform device, and doesn't implement
   the standard USB PHY API.

2) struct device instance numbers were used to make decisions in the
   driver, rather than being parameterized by DT or platform data.

This pull request solves issue (2), and lays the groundwork for solving
issue (1). The work on issue (1) involved introducing new DT nodes for
the USB PHYs, which in turn interacted with the Tegra common clock
framework changes, due to the move of clock lookups into device tree.
Hence, these USB driver changes are taken through the Tegra tree with
acks from USB maintainers.

This pull request is based on the previous pull request, with tag
tegra-for-3.9-soc-ccf.

* tag 'tegra-for-3.9-soc-usb' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  usb: host: tegra: make use of PHY pointer of HCD
  ARM: tegra: Add reset GPIO information to PHY DT node
  usb: host: tegra: don't touch EMC clock
  usb: add APIs to access host registers from Tegra PHY
  USB: PHY: tegra: Get rid of instance number to differentiate PHY type
  USB: PHY: tegra: get rid of instance number to differentiate legacy controller
  ARM: tegra: add clocks properties to USB PHY nodes
  ARM: tegra: add DT nodes for Tegra USB PHY
  usb: phy: remove unused APIs from Tegra PHY.
  usb: host: tegra: Resetting PORT0 based on information received via DT.
  ARM: tegra: Add new DT property to USB node.
  usb: phy: use kzalloc to allocate struct tegra_usb_phy
  ARM: tegra: remove USB address related macros from iomap.h
parents bda6f8e6 ab137d04
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ Required properties :
 - phy_type : Should be one of "ulpi" or "utmi".
 - nvidia,vbus-gpio : If present, specifies a gpio that needs to be
   activated for the bus to be powered.
 - nvidia,phy : phandle of the PHY instance, the controller is connected to.

Required properties for phy_type == ulpi:
  - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.
@@ -27,3 +28,5 @@ Optional properties:
    registers are accessed through the APB_MISC base address instead of
    the USB controller. Since this is a legacy issue it probably does not
    warrant a compatible string of its own.
  - nvidia,needs-double-reset : boolean is to be set for some of the Tegra2
    USB ports, which need reset twice due to hardware issues.
+17 −0
Original line number Diff line number Diff line
Tegra SOC USB PHY

The device node for Tegra SOC USB PHY:

Required properties :
 - compatible : Should be "nvidia,tegra20-usb-phy".
 - reg : Address and length of the register set for the USB PHY interface.
 - phy_type : Should be one of "ulpi" or "utmi".

Required properties for phy_type == ulpi:
  - nvidia,phy-reset-gpio : The GPIO used to reset the PHY.

Optional properties:
  - nvidia,has-legacy-mode : boolean indicates whether this controller can
    operate in legacy mode (as APX 2500 / 2600). In legacy mode some
    registers are accessed through the APB_MISC base address instead of
    the USB controller.
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -432,6 +432,10 @@
		status = "okay";
	};

	usb-phy@c5004400 {
		nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
	};

	sdhci@c8000200 {
		status = "okay";
		cd-gpios = <&gpio 69 0>; /* gpio PI5 */
+4 −0
Original line number Diff line number Diff line
@@ -420,6 +420,10 @@
		status = "okay";
	};

	usb-phy@c5004400 {
		nvidia,phy-reset-gpio = <&gpio 168 0>; /* gpio PV0 */
	};

	sdhci@c8000000 {
		status = "okay";
		cd-gpios = <&gpio 173 0>; /* gpio PV5 */
+4 −0
Original line number Diff line number Diff line
@@ -561,6 +561,10 @@
		status = "okay";
	};

	usb-phy@c5004400 {
		nvidia,phy-reset-gpio = <&gpio 169 0>; /* gpio PV1 */
	};

	sdhci@c8000000 {
		status = "okay";
		power-gpios = <&gpio 86 0>; /* gpio PK6 */
Loading