# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/usb/nvidia,tegra-xudc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Device tree binding for NVIDIA Tegra XUSB device mode controller (XUDC)

description:
  The Tegra XUDC controller supports both USB 2.0 HighSpeed/FullSpeed and
  USB 3.0 SuperSpeed protocols.

maintainers:
  - Nagarjuna Kristam <nkristam@nvidia.com>
  - JC Kuo <jckuo@nvidia.com>
  - Thierry Reding <treding@nvidia.com>

properties:
  compatible:
    items:
      - enum:
          - nvidia,tegra210-xudc # For Tegra210
          - nvidia,tegra186-xudc # For Tegra186
          - nvidia,tegra194-xudc # For Tegra194

  reg:
    minItems: 2
    maxItems: 3
    items:
      - description: XUSB device controller registers
      - description: XUSB device PCI Config registers
      - description: XUSB device registers.

  reg-names:
    minItems: 2
    maxItems: 3
    items:
      - const: base
      - const: fpci
      - const: ipfs

  interrupts:
    maxItems: 1
    description: Must contain the XUSB device interrupt.

  clocks:
    minItems: 4
    maxItems: 5
    items:
      - description: Clock to enable core XUSB dev clock.
      - description: Clock to enable XUSB super speed clock.
      - description: Clock to enable XUSB super speed dev clock.
      - description: Clock to enable XUSB high speed dev clock.
      - description: Clock to enable XUSB full speed dev clock.

  clock-names:
    minItems: 4
    maxItems: 5
    items:
     - const: dev
     - const: ss
     - const: ss_src
     - const: fs_src
     - const: hs_src

  power-domains:
    items:
      - description: XUSBB(device) power-domain
      - description: XUSBA(superspeed) power-domain

  power-domain-names:
    items:
      - const: dev
      - const: ss

  nvidia,xusb-padctl:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description:
      phandle to the XUSB pad controller that is used to configure the USB pads
      used by the XUDC controller.

  phys:
    minItems: 1
    description:
      Must contain an entry for each entry in phy-names.
      See ../phy/phy-bindings.txt for details.

  phy-names:
    minItems: 1
    items:
      - const: usb2-0
      - const: usb2-1
      - const: usb2-2
      - const: usb2-3
      - const: usb3-0
      - const: usb3-1
      - const: usb3-2
      - const: usb3-3

  avddio-usb-supply:
    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.

  hvdd-usb-supply:
    description: USB controller power supply. Must supply 3.3 V.

required:
  - compatible
  - reg
  - reg-names
  - interrupts
  - clocks
  - clock-names
  - power-domains
  - power-domain-names
  - nvidia,xusb-padctl
  - phys
  - phy-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra210-xudc
    then:
      properties:
        reg:
          minItems: 3
        reg-names:
          minItems: 3
        clocks:
          minItems: 5
        clock-names:
          minItems: 5
      required:
        - avddio-usb-supply
        - hvdd-usb-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra186-xudc
              - nvidia,tegra194-xudc
    then:
      properties:
        reg:
          maxItems: 2
        reg-names:
          maxItems: 2
        clocks:
          maxItems: 4
        clock-names:
          maxItems: 4

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

    usb@700d0000 {
        compatible = "nvidia,tegra210-xudc";
        reg = <0x700d0000 0x8000>,
              <0x700d8000 0x1000>,
              <0x700d9000 0x1000>;
        reg-names = "base", "fpci", "ipfs";

        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;

        clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>,
                 <&tegra_car TEGRA210_CLK_XUSB_SS>,
                 <&tegra_car TEGRA210_CLK_XUSB_SSP_SRC>,
                 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
                 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>;
        clock-names = "dev", "ss", "ss_src", "fs_src", "hs_src";

        power-domains = <&pd_xusbdev>, <&pd_xusbss>;
        power-domain-names = "dev", "ss";

        nvidia,xusb-padctl = <&padctl>;

        phys = <&micro_b>;
        phy-names = "usb2-0";

        avddio-usb-supply = <&vdd_pex_1v05>;
        hvdd-usb-supply = <&vdd_3v3_sys>;
    };
