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

title: NVIDIA Tegra186 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,tegra186-xusb-padctl

  reg:
    items:
      - description: pad controller registers
      - description: AO registers

  interrupts:
    items:
      - description: XUSB pad controller interrupt

  reg-names:
    items:
      - const: padctl
      - const: ao

  resets:
    items:
      - description: pad controller reset

  reset-names:
    items:
      - const: padctl

  avdd-pll-erefeut-supply:
    description: UPHY brick and reference clock as well as UTMI PHY
      power supply. Must supply 1.8 V.

  avdd-usb-supply:
    description: USB I/Os, VBUS, ID, REXT, D+/D- power supply. Must
      supply 3.3 V.

  vclamp-usb-supply:
    description: Bias rail for USB pad. Must supply 1.8 V.

  vddio-hsic-supply:
    description: HSIC PHY power supply. Must supply 1.2 V.

  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: [ xusb ]

              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: [ xusb ]

              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: [ xusb ]

      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: [ xusb ]

      usb3:
        type: object
        additionalProperties: false
        properties:
          lanes:
            type: object
            additionalProperties: false
            properties:
              usb3-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: [ xusb ]

              usb3-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: [ xusb ]

              usb3-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: [ xusb ]

  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 ]

      hsic-0:
        type: object
        additionalProperties: false

      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.

additionalProperties: false

required:
  - compatible
  - reg
  - resets
  - reset-names
  - avdd-pll-erefeut-supply
  - avdd-usb-supply
  - vclamp-usb-supply
  - vddio-hsic-supply

examples:
  - |
    #include <dt-bindings/clock/tegra186-clock.h>
    #include <dt-bindings/gpio/tegra186-gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/reset/tegra186-reset.h>

    padctl@3520000 {
        compatible = "nvidia,tegra186-xusb-padctl";
        reg = <0x03520000 0x1000>,
              <0x03540000 0x1000>;
        reg-names = "padctl", "ao";
        interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;

        resets = <&bpmp TEGRA186_RESET_XUSB_PADCTL>;
        reset-names = "padctl";

        avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
        avdd-usb-supply = <&vdd_3v3_sys>;
        vclamp-usb-supply = <&vdd_1v8>;
        vddio-hsic-supply = <&gnd>;

        pads {
            usb2 {
                clocks = <&bpmp TEGRA186_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>;
                    };
                };
            };

            hsic {
                clocks = <&bpmp TEGRA186_CLK_HSIC_TRK>;
                clock-names = "trk";
                status = "disabled";

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

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

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

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

        ports {
            usb2-0 {
                mode = "otg";
                vbus-supply = <&vdd_usb0>;
                usb-role-switch;

                connector {
                    compatible = "gpio-usb-b-connector",
                                 "usb-b-connector";
                    label = "micro-USB";
                    type = "micro";
                    vbus-gpios = <&gpio TEGRA186_MAIN_GPIO(X, 7) GPIO_ACTIVE_LOW>;
                    id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>;
                };
            };

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

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

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

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

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

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