The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/pinctrl/nvidia,tegra124-xusb-padctl.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 Device tree binding for NVIDIA Tegra XUSB pad controller
    2 ========================================================
    3 
    4 NOTE: It turns out that this binding isn't an accurate description of the XUSB
    5 pad controller. While the description is good enough for the functional subset
    6 required for PCIe and SATA, it lacks the flexibility to represent the features
    7 needed for USB. For the new binding, see ../phy/nvidia,tegra-xusb-padctl.txt.
    8 The binding described in this file is deprecated and should not be used.
    9 
   10 The Tegra XUSB pad controller manages a set of lanes, each of which can be
   11 assigned to one out of a set of different pads. Some of these pads have an
   12 associated PHY that must be powered up before the pad can be used.
   13 
   14 This document defines the device-specific binding for the XUSB pad controller.
   15 
   16 Refer to pinctrl-bindings.txt in this directory for generic information about
   17 pin controller device tree bindings and ../phy/phy-bindings.txt for details on
   18 how to describe and reference PHYs in device trees.
   19 
   20 Required properties:
   21 --------------------
   22 - compatible: For Tegra124, must contain "nvidia,tegra124-xusb-padctl".
   23   Otherwise, must contain '"nvidia,<chip>-xusb-padctl",
   24   "nvidia-tegra124-xusb-padctl"', where <chip> is tegra132 or tegra210.
   25 - reg: Physical base address and length of the controller's registers.
   26 - resets: Must contain an entry for each entry in reset-names.
   27   See ../reset/reset.txt for details.
   28 - reset-names: Must include the following entries:
   29   - padctl
   30 - #phy-cells: Should be 1. The specifier is the index of the PHY to reference.
   31   See <dt-bindings/pinctrl/pinctrl-tegra-xusb.h> for the list of valid values.
   32 
   33 Lane muxing:
   34 ------------
   35 
   36 Child nodes contain the pinmux configurations following the conventions from
   37 the pinctrl-bindings.txt document. Typically a single, static configuration is
   38 given and applied at boot time.
   39 
   40 Each subnode describes groups of lanes along with parameters and pads that
   41 they should be assigned to. The name of these subnodes is not important. All
   42 subnodes should be parsed solely based on their content.
   43 
   44 Each subnode only applies the parameters that are explicitly listed. In other
   45 words, if a subnode that lists a function but no pin configuration parameters
   46 implies no information about any pin configuration parameters. Similarly, a
   47 subnode that describes only an IDDQ parameter implies no information about
   48 what function the pins are assigned to. For this reason even seemingly boolean
   49 values are actually tristates in this binding: unspecified, off or on.
   50 Unspecified is represented as an absent property, and off/on are represented
   51 as integer values 0 and 1.
   52 
   53 Required properties:
   54 - nvidia,lanes: An array of strings. Each string is the name of a lane.
   55 
   56 Optional properties:
   57 - nvidia,function: A string that is the name of the function (pad) that the
   58   pin or group should be assigned to. Valid values for function names are
   59   listed below.
   60 - nvidia,iddq: Enables IDDQ mode of the lane. (0: no, 1: yes)
   61 
   62 Note that not all of these properties are valid for all lanes. Lanes can be
   63 divided into three groups:
   64 
   65   - otg-0, otg-1, otg-2:
   66 
   67     Valid functions for this group are: "snps", "xusb", "uart", "rsvd".
   68 
   69     The nvidia,iddq property does not apply to this group.
   70 
   71   - ulpi-0, hsic-0, hsic-1:
   72 
   73     Valid functions for this group are: "snps", "xusb".
   74 
   75     The nvidia,iddq property does not apply to this group.
   76 
   77   - pcie-0, pcie-1, pcie-2, pcie-3, pcie-4, sata-0:
   78 
   79     Valid functions for this group are: "pcie", "usb3", "sata", "rsvd".
   80 
   81 
   82 Example:
   83 ========
   84 
   85 SoC file extract:
   86 -----------------
   87 
   88         padctl@7009f000 {
   89                 compatible = "nvidia,tegra124-xusb-padctl";
   90                 reg = <0x0 0x7009f000 0x0 0x1000>;
   91                 resets = <&tegra_car 142>;
   92                 reset-names = "padctl";
   93 
   94                 #phy-cells = <1>;
   95         };
   96 
   97 Board file extract:
   98 -------------------
   99 
  100         pcie-controller@1003000 {
  101                 ...
  102 
  103                 phys = <&padctl 0>;
  104                 phy-names = "pcie";
  105 
  106                 ...
  107         };
  108 
  109         ...
  110 
  111         padctl: padctl@7009f000 {
  112                 pinctrl-0 = <&padctl_default>;
  113                 pinctrl-names = "default";
  114 
  115                 padctl_default: pinmux {
  116                         usb3 {
  117                                 nvidia,lanes = "pcie-0", "pcie-1";
  118                                 nvidia,function = "usb3";
  119                                 nvidia,iddq = <0>;
  120                         };
  121 
  122                         pcie {
  123                                 nvidia,lanes = "pcie-2", "pcie-3",
  124                                                "pcie-4";
  125                                 nvidia,function = "pcie";
  126                                 nvidia,iddq = <0>;
  127                         };
  128 
  129                         sata {
  130                                 nvidia,lanes = "sata-0";
  131                                 nvidia,function = "sata";
  132                                 nvidia,iddq = <0>;
  133                         };
  134                 };
  135         };

Cache object: 410ee5f4da9e35c2c28ef38d32937a7c


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.