e7f44b65b5
- Rewrite of the unflattening code to avoid recursion and lessen the stack usage. - Rewrite of the phandle args parsing code to get rid of the fixed args size. This is needed for IOMMU code. - Sync to latest dtc which adds more dts style checking. These warnings are enabled with "W=1" compiles. - Tegra documentation updates related to the above warnings. - A bunch of spelling and other doc fixes. - Various vendor prefix additions. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJXP3OZAAoJEPr7XbWNvGHDEUAQAJLbR9Js7RENPGX/u0NSJNaJ yQhyNVsz/BkAWFfWT6YEfyNnDY0UcRs2N9RHb+z65TsX1jvJJxLRDLRfz+rExfiZ cA1RJaF77kPOdA0eZapJIzPvAf97Zik+nzKLsqUPUSYaIzghV5rN6aR2AjXN5AYv TMQP41NwNQkxfO5I+NOssEB8IBH+DlAzg0LYXw8wNsAJc8o+DgEQjU8cxCqR0NgE SbpbJNF8tRXEJckZRC+Q7Gyn2J7VglmM/5VTFbBBwgIly2lcLADPVuX/Z6hZE3OH K7mhNWBu61vI5lU6u7q64ePeb63j+Ut/RR0tTPgjsLg0Qg0ue+6iZ66S9ZHEicbU wT4A/hjSImvZoQGGMrtUF5HGcaoMHGLGFgFc/Ouox8OQflntQBzuEx/gOQpPXcIT vdwITNW8/OGV3rgtmRO9mbdSZiAHPsydoTkIl+Ucod3nTrlEEOwgQARYO+2CfSRj sknndj26Kf+0n0tSv2d4JAEdEozp2ZPyfiAfpPXW74jOmOxeswUb3Kxx8YMwhCEl +s96rm1vtpNmJzXtuPV3eB0TydWMQ/3NXN6XOS7qEN/5y1AbQqKEoIyJOziBQMxe c9Eh/YSjsm4uw3Q0wHOI3s4hTwWfuBmwpIsANJVKrRbftPF58bMUBYU/44ReTtA8 iMsrqJpnSCcAyS8doWRY =s+gW -----END PGP SIGNATURE----- Merge tag 'devicetree-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree updates from Rob Herring: - Rewrite of the unflattening code to avoid recursion and lessen the stack usage. - Rewrite of the phandle args parsing code to get rid of the fixed args size. This is needed for IOMMU code. - Sync to latest dtc which adds more dts style checking. These warnings are enabled with "W=1" compiles. - Tegra documentation updates related to the above warnings. - A bunch of spelling and other doc fixes. - Various vendor prefix additions. * tag 'devicetree-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (52 commits) devicetree: Add Creative Technology vendor id gpio: dt-bindings: add ibm,ppc4xx-gpio binding of/unittest: Remove unnecessary module.h header inclusion drivers/of: Fix build warning in populate_node() drivers/of: Fix depth when unflattening devicetree of: dynamic: changeset prop-update revert fix drivers/of: Export of_detach_node() drivers/of: Return allocated memory from of_fdt_unflatten_tree() drivers/of: Specify parent node in of_fdt_unflatten_tree() drivers/of: Rename unflatten_dt_node() drivers/of: Avoid recursively calling unflatten_dt_node() drivers/of: Split unflatten_dt_node() of: include errno.h in of_graph.h of: document refcount incrementation of of_get_cpu_node() Documentation: dt: soc: fix spelling mistakes Documentation: dt: power: fix spelling mistake Documentation: dt: pinctrl: fix spelling mistake Documentation: dt: opp: fix spelling mistake Documentation: dt: net: fix spelling mistakes Documentation: dt: mtd: fix spelling mistake ...
136 lines
4.3 KiB
Plaintext
136 lines
4.3 KiB
Plaintext
Device tree binding for NVIDIA Tegra XUSB pad controller
|
|
========================================================
|
|
|
|
NOTE: It turns out that this binding isn't an accurate description of the XUSB
|
|
pad controller. While the description is good enough for the functional subset
|
|
required for PCIe and SATA, it lacks the flexibility to represent the features
|
|
needed for USB. For the new binding, see ../phy/nvidia,tegra-xusb-padctl.txt.
|
|
The binding described in this file is deprecated and should not be used.
|
|
|
|
The Tegra XUSB pad controller manages a set of lanes, each of which can be
|
|
assigned to one out of a set of different pads. Some of these pads have an
|
|
associated PHY that must be powered up before the pad can be used.
|
|
|
|
This document defines the device-specific binding for the XUSB pad controller.
|
|
|
|
Refer to pinctrl-bindings.txt in this directory for generic information about
|
|
pin controller device tree bindings and ../phy/phy-bindings.txt for details on
|
|
how to describe and reference PHYs in device trees.
|
|
|
|
Required properties:
|
|
--------------------
|
|
- compatible: For Tegra124, must contain "nvidia,tegra124-xusb-padctl".
|
|
Otherwise, must contain '"nvidia,<chip>-xusb-padctl",
|
|
"nvidia-tegra124-xusb-padctl"', where <chip> is tegra132 or tegra210.
|
|
- reg: Physical base address and length of the controller's registers.
|
|
- resets: Must contain an entry for each entry in reset-names.
|
|
See ../reset/reset.txt for details.
|
|
- reset-names: Must include the following entries:
|
|
- padctl
|
|
- #phy-cells: Should be 1. The specifier is the index of the PHY to reference.
|
|
See <dt-bindings/pinctrl/pinctrl-tegra-xusb.h> for the list of valid values.
|
|
|
|
Lane muxing:
|
|
------------
|
|
|
|
Child nodes contain the pinmux configurations following the conventions from
|
|
the pinctrl-bindings.txt document. Typically a single, static configuration is
|
|
given and applied at boot time.
|
|
|
|
Each subnode describes groups of lanes along with parameters and pads that
|
|
they should be assigned to. The name of these subnodes is not important. All
|
|
subnodes should be parsed solely based on their content.
|
|
|
|
Each subnode only applies the parameters that are explicitly listed. In other
|
|
words, if a subnode that lists a function but no pin configuration parameters
|
|
implies no information about any pin configuration parameters. Similarly, a
|
|
subnode that describes only an IDDQ parameter implies no information about
|
|
what function the pins are assigned to. For this reason even seemingly boolean
|
|
values are actually tristates in this binding: unspecified, off or on.
|
|
Unspecified is represented as an absent property, and off/on are represented
|
|
as integer values 0 and 1.
|
|
|
|
Required properties:
|
|
- nvidia,lanes: An array of strings. Each string is the name of a lane.
|
|
|
|
Optional properties:
|
|
- nvidia,function: A string that is the name of the function (pad) that the
|
|
pin or group should be assigned to. Valid values for function names are
|
|
listed below.
|
|
- nvidia,iddq: Enables IDDQ mode of the lane. (0: no, 1: yes)
|
|
|
|
Note that not all of these properties are valid for all lanes. Lanes can be
|
|
divided into three groups:
|
|
|
|
- otg-0, otg-1, otg-2:
|
|
|
|
Valid functions for this group are: "snps", "xusb", "uart", "rsvd".
|
|
|
|
The nvidia,iddq property does not apply to this group.
|
|
|
|
- ulpi-0, hsic-0, hsic-1:
|
|
|
|
Valid functions for this group are: "snps", "xusb".
|
|
|
|
The nvidia,iddq property does not apply to this group.
|
|
|
|
- pcie-0, pcie-1, pcie-2, pcie-3, pcie-4, sata-0:
|
|
|
|
Valid functions for this group are: "pcie", "usb3", "sata", "rsvd".
|
|
|
|
|
|
Example:
|
|
========
|
|
|
|
SoC file extract:
|
|
-----------------
|
|
|
|
padctl@7009f000 {
|
|
compatible = "nvidia,tegra124-xusb-padctl";
|
|
reg = <0x0 0x7009f000 0x0 0x1000>;
|
|
resets = <&tegra_car 142>;
|
|
reset-names = "padctl";
|
|
|
|
#phy-cells = <1>;
|
|
};
|
|
|
|
Board file extract:
|
|
-------------------
|
|
|
|
pcie-controller@01003000 {
|
|
...
|
|
|
|
phys = <&padctl 0>;
|
|
phy-names = "pcie";
|
|
|
|
...
|
|
};
|
|
|
|
...
|
|
|
|
padctl: padctl@7009f000 {
|
|
pinctrl-0 = <&padctl_default>;
|
|
pinctrl-names = "default";
|
|
|
|
padctl_default: pinmux {
|
|
usb3 {
|
|
nvidia,lanes = "pcie-0", "pcie-1";
|
|
nvidia,function = "usb3";
|
|
nvidia,iddq = <0>;
|
|
};
|
|
|
|
pcie {
|
|
nvidia,lanes = "pcie-2", "pcie-3",
|
|
"pcie-4";
|
|
nvidia,function = "pcie";
|
|
nvidia,iddq = <0>;
|
|
};
|
|
|
|
sata {
|
|
nvidia,lanes = "sata-0";
|
|
nvidia,function = "sata";
|
|
nvidia,iddq = <0>;
|
|
};
|
|
};
|
|
};
|