# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/nvidia,tegra210-xusb-padctl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NVIDIA Tegra210 XUSB pad controller

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Jon Hunter <jonathanh@nvidia.com>

description: |
  The Tegra XUSB pad controller manages a set of I/O lanes (with differential
  signals) which connect directly to pins/pads on the SoC package. Each lane
  is controlled by a HW block referred to as a "pad" in the Tegra hardware
  documentation. Each such "pad" may control either one or multiple lanes,
  and thus contains any logic common to all its lanes. Each lane can be
  separately configured and powered up.

  Some of the lanes are high-speed lanes, which can be used for PCIe, SATA or
  super-speed USB. Other lanes are for various types of low-speed, full-speed
  or high-speed USB (such as UTMI, ULPI and HSIC). The XUSB pad controller
  contains a software-configurable mux that sits between the I/O controller
  ports (e.g. PCIe) and the lanes.

  In addition to per-lane configuration, USB 3.0 ports may require additional
  settings on a per-board basis.

  Pads will be represented as children of the top-level XUSB pad controller
  device tree node. Each lane exposed by the pad will be represented by its
  own subnode and can be referenced by users of the lane using the standard
  PHY bindings, as described by the phy-bindings.txt file in this directory.

  The Tegra hardware documentation refers to the connection between the XUSB
  pad controller and the XUSB controller as "ports". This is confusing since
  "port" is typically used to denote the physical USB receptacle. The device
  tree binding in this document uses the term "port" to refer to the logical
  abstraction of the signals that are routed to a USB receptacle (i.e. a PHY
  for the USB signal, the VBUS power supply, the USB 2.0 companion port for
  USB 3.0 receptacles, ...).

properties:
  compatible:
    const: nvidia,tegra210-xusb-padctl

  reg:
    maxItems: 1

  resets:
    items:
      - description: pad controller reset

  interrupts:
    items:
      - description: XUSB pad controller interrupt

  reset-names:
    items:
      - const: padctl

  avdd-pll-utmip-supply:
    description: UTMI PLL power supply. Must supply 1.8 V.

  avdd-pll-uerefe-supply:
    description: PLLE reference PLL power supply. Must supply 1.05 V.

  dvdd-pex-pll-supply:
    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.

  hvdd-pex-pll-e-supply:
    description: High-voltage PLLE power supply. Must supply 1.8 V.

  nvidia,pmc:
    description: phandle to the Tegra Power Management Controller (PMC) node
    $ref: /schemas/types.yaml#/definitions/phandle

  pads:
    description: A required child node named "pads" contains a list of
      subnodes, one for each of the pads exposed by the XUSB pad controller.
      Each pad may need additional resources that can be referenced in its
      pad node.

      The "status" property is used to enable or disable the use of a pad.
      If set to "disabled", the pad will not be used on the given board. In
      order to use the pad and any of its lanes, this property must be set
      to "okay" or be absent.
    type: object
    additionalProperties: false
    properties:
      usb2:
        type: object
        additionalProperties: false
        properties:
          clocks:
            items:
              - description: USB2 tracking clock

          clock-names:
            items:
              - const: trk

          lanes:
            type: object
            additionalProperties: false
            properties:
              usb2-0:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb, uart ]

              usb2-1:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb, uart ]

              usb2-2:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb, uart ]

              usb2-3:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb, uart ]

      hsic:
        type: object
        additionalProperties: false
        properties:
          clocks:
            items:
              - description: HSIC tracking clock

          clock-names:
            items:
              - const: trk

          lanes:
            type: object
            additionalProperties: false
            properties:
              hsic-0:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb ]

              hsic-1:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ snps, xusb ]

      pcie:
        type: object
        additionalProperties: false
        properties:
          clocks:
            items:
              - description: PCIe PLL clock source

          clock-names:
            items:
              - const: pll

          resets:
            items:
              - description: PCIe PHY reset

          reset-names:
            items:
              - const: phy

          lanes:
            type: object
            additionalProperties: false
            properties:
              pcie-0:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-1:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-2:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-3:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-4:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-5:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

              pcie-6:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ pcie-x1, usb3-ss, pcie-x4 ]

      sata:
        type: object
        additionalProperties: false
        properties:
          clocks:
            items:
              - description: SATA PLL clock source

          clock-names:
            items:
              - const: pll

          resets:
            items:
              - description: SATA PHY reset

          reset-names:
            items:
              - const: phy

          lanes:
            type: object
            additionalProperties: false
            properties:
              sata-0:
                type: object
                additionalProperties: false
                properties:
                  "#phy-cells":
                    const: 0

                  nvidia,function:
                    description: Function selection for this lane.
                    $ref: /schemas/types.yaml#/definitions/string
                    enum: [ usb3-ss, sata ]

  ports:
    description: A required child node named "ports" contains a list of
      subnodes, one for each of the ports exposed by the XUSB pad controller.
      Each port may need additional resources that can be referenced in its
      port node.

      The "status" property is used to enable or disable the use of a port.
      If set to "disabled", the port will not be used on the given board. In
      order to use the port, this property must be set to "okay".
    type: object
    additionalProperties: false
    properties:
      usb2-0:
        type: object
        additionalProperties: false
        properties:
          # no need to further describe this because the connector will
          # match on gpio-usb-b-connector or usb-b-connector and cause
          # that binding to be selected for the subnode
          connector:
            type: object

          mode:
            description: A string that determines the mode in which to
              run the port.
            $ref: /schemas/types.yaml#/definitions/string
            enum: [ host, peripheral, otg ]

          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          usb-role-switch:
            description: |
              A boolean property whole presence indicates that the port
              supports OTG or peripheral mode. If present, the port
              supports switching between USB host and peripheral roles.
              A connector must be added as a subnode in that case.

              See ../connector/usb-connector.yaml.

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

        dependencies:
          usb-role-switch: [ connector ]

      usb2-1:
        type: object
        additionalProperties: false
        properties:
          # no need to further describe this because the connector will
          # match on gpio-usb-b-connector or usb-b-connector and cause
          # that binding to be selected for the subnode
          connector:
            type: object

          mode:
            description: A string that determines the mode in which to
              run the port.
            $ref: /schemas/types.yaml#/definitions/string
            enum: [ host, peripheral, otg ]

          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          usb-role-switch:
            description: |
              A boolean property whole presence indicates that the port
              supports OTG or peripheral mode. If present, the port
              supports switching between USB host and peripheral roles.
              A connector must be added as a subnode in that case.

              See ../connector/usb-connector.yaml.

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

        dependencies:
          usb-role-switch: [ connector ]

      usb2-2:
        type: object
        additionalProperties: false
        properties:
          # no need to further describe this because the connector will
          # match on gpio-usb-b-connector or usb-b-connector and cause
          # that binding to be selected for the subnode
          connector:
            type: object

          mode:
            description: A string that determines the mode in which to
              run the port.
            $ref: /schemas/types.yaml#/definitions/string
            enum: [ host, peripheral, otg ]

          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          usb-role-switch:
            description: |
              A boolean property whole presence indicates that the port
              supports OTG or peripheral mode. If present, the port
              supports switching between USB host and peripheral roles.
              A connector must be added as a subnode in that case.

              See ../connector/usb-connector.yaml.

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

        dependencies:
          usb-role-switch: [ connector ]

      usb2-3:
        type: object
        additionalProperties: false
        properties:
          # no need to further describe this because the connector will
          # match on gpio-usb-b-connector or usb-b-connector and cause
          # that binding to be selected for the subnode
          connector:
            type: object

          mode:
            description: A string that determines the mode in which to
              run the port.
            $ref: /schemas/types.yaml#/definitions/string
            enum: [ host, peripheral, otg ]

          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          usb-role-switch:
            description: |
              A boolean property whole presence indicates that the port
              supports OTG or peripheral mode. If present, the port
              supports switching between USB host and peripheral roles.
              A connector must be added as a subnode in that case.

              See ../connector/usb-connector.yaml.

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

        dependencies:
          usb-role-switch: [ connector ]

      hsic-0:
        type: object
        additionalProperties: false
        properties:
          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

      hsic-1:
        type: object
        additionalProperties: false
        properties:
          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

      usb3-0:
        type: object
        additionalProperties: false
        properties:
          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          nvidia,usb2-companion:
            description: A single cell that specifies the physical port
              number to map this super-speed USB port to. The range of
              valid port numbers varies with the SoC generation.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [ 0, 1, 2, 3 ]

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

      usb3-1:
        type: object
        additionalProperties: false
        properties:
          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          nvidia,usb2-companion:
            description: A single cell that specifies the physical port
              number to map this super-speed USB port to. The range of
              valid port numbers varies with the SoC generation.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [ 0, 1, 2, 3 ]

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

      usb3-2:
        type: object
        additionalProperties: false
        properties:
          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          nvidia,usb2-companion:
            description: A single cell that specifies the physical port
              number to map this super-speed USB port to. The range of
              valid port numbers varies with the SoC generation.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [ 0, 1, 2, 3 ]

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

      usb3-3:
        type: object
        additionalProperties: false
        properties:
          nvidia,internal:
            description: A boolean property whose presence determines
              that a port is internal. In the absence of this property
              the port is considered to be external.
            $ref: /schemas/types.yaml#/definitions/flag

          nvidia,usb2-companion:
            description: A single cell that specifies the physical port
              number to map this super-speed USB port to. The range of
              valid port numbers varies with the SoC generation.
            $ref: /schemas/types.yaml#/definitions/uint32
            enum: [ 0, 1, 2, 3 ]

          vbus-supply:
            description: A phandle to the regulator supplying the VBUS
              voltage.

additionalProperties: false

required:
  - avdd-pll-utmip-supply
  - avdd-pll-uerefe-supply
  - dvdd-pex-pll-supply
  - hvdd-pex-pll-e-supply

examples:
  - |
    #include <dt-bindings/clock/tegra210-car.h>
    #include <dt-bindings/gpio/tegra-gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    padctl@7009f000 {
        compatible = "nvidia,tegra210-xusb-padctl";
        reg = <0x7009f000 0x1000>;
        interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
        resets = <&tegra_car 142>;
        reset-names = "padctl";

        avdd-pll-utmip-supply = <&vdd_1v8>;
        avdd-pll-uerefe-supply = <&vdd_pex_1v05>;
        dvdd-pex-pll-supply = <&vdd_pex_1v05>;
        hvdd-pex-pll-e-supply = <&vdd_1v8>;

        pads {
            usb2 {
                clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>;
                clock-names = "trk";

                lanes {
                    usb2-0 {
                        nvidia,function = "xusb";
                        #phy-cells = <0>;
                    };

                    usb2-1 {
                        nvidia,function = "xusb";
                        #phy-cells = <0>;
                    };

                    usb2-2 {
                        nvidia,function = "xusb";
                        #phy-cells = <0>;
                    };

                    usb2-3 {
                        nvidia,function = "xusb";
                        #phy-cells = <0>;
                    };
                };
            };

            hsic {
                clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>;
                clock-names = "trk";
                status = "disabled";

                lanes {
                    hsic-0 {
                        status = "disabled";
                        #phy-cells = <0>;
                    };

                    hsic-1 {
                        status = "disabled";
                        #phy-cells = <0>;
                    };
                };
            };

            pcie {
                clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
                clock-names = "pll";
                resets = <&tegra_car 205>;
                reset-names = "phy";

                lanes {
                    pcie-0 {
                        nvidia,function = "pcie-x1";
                        #phy-cells = <0>;
                    };

                    pcie-1 {
                        nvidia,function = "pcie-x4";
                        #phy-cells = <0>;
                    };

                    pcie-2 {
                        nvidia,function = "pcie-x4";
                        #phy-cells = <0>;
                    };

                    pcie-3 {
                        nvidia,function = "pcie-x4";
                        #phy-cells = <0>;
                    };

                    pcie-4 {
                        nvidia,function = "pcie-x4";
                        #phy-cells = <0>;
                    };

                    pcie-5 {
                        nvidia,function = "usb3-ss";
                        #phy-cells = <0>;
                    };

                    pcie-6 {
                        nvidia,function = "usb3-ss";
                        #phy-cells = <0>;
                    };
                };
            };

            sata {
                clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
                clock-names = "pll";
                resets = <&tegra_car 204>;
                reset-names = "phy";

                lanes {
                    sata-0 {
                        nvidia,function = "sata";
                        #phy-cells = <0>;
                    };
                };
            };
        };

        ports {
            usb2-0 {
                mode = "peripheral";
                usb-role-switch;

                connector {
                    compatible = "gpio-usb-b-connector",
                                 "usb-b-connector";
                    label = "micro-USB";
                    type = "micro";
                    vbus-gpios = <&gpio TEGRA_GPIO(CC, 4) GPIO_ACTIVE_LOW>;
                };
            };

            usb2-1 {
                vbus-supply = <&vdd_5v0_rtl>;
                mode = "host";
            };

            usb2-2 {
                vbus-supply = <&vdd_usb_vbus>;
                mode = "host";
            };

            usb2-3 {
                mode = "host";
            };

            hsic-0 {
                status = "disabled";
            };

            hsic-1 {
                status = "disabled";
            };

            usb3-0 {
                nvidia,usb2-companion = <1>;
            };

            usb3-1 {
                nvidia,usb2-companion = <2>;
            };

            usb3-2 {
                status = "disabled";
            };

            usb3-3 {
                status = "disabled";
            };
        };
    };
