123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- Device tree binding for NVIDIA Tegra XUSB pad controller
- ========================================================
- 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@0,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@0,01003000 {
- ...
- phys = <&padctl 0>;
- phy-names = "pcie";
- ...
- };
- ...
- padctl: padctl@0,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>;
- };
- };
- };
|