197351cd8SThierry Reding# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
297351cd8SThierry Reding%YAML 1.2
397351cd8SThierry Reding---
497351cd8SThierry Reding$id: http://devicetree.org/schemas/usb/nvidia,tegra186-xusb.yaml#
597351cd8SThierry Reding$schema: http://devicetree.org/meta-schemas/core.yaml#
697351cd8SThierry Reding
797351cd8SThierry Redingtitle: NVIDIA Tegra186 xHCI controller
897351cd8SThierry Reding
997351cd8SThierry Redingmaintainers:
1097351cd8SThierry Reding  - Thierry Reding <thierry.reding@gmail.com>
1197351cd8SThierry Reding  - Jon Hunter <jonathanh@nvidia.com>
1297351cd8SThierry Reding
1397351cd8SThierry Redingdescription: The Tegra xHCI controller supports both USB2 and USB3 interfaces
1497351cd8SThierry Reding  exposed by the Tegra XUSB pad controller.
1597351cd8SThierry Reding
1697351cd8SThierry Redingproperties:
1797351cd8SThierry Reding  compatible:
1897351cd8SThierry Reding    const: nvidia,tegra186-xusb
1997351cd8SThierry Reding
2097351cd8SThierry Reding  reg:
2197351cd8SThierry Reding    items:
2297351cd8SThierry Reding      - description: base and length of the xHCI host registers
2397351cd8SThierry Reding      - description: base and length of the XUSB FPCI registers
2497351cd8SThierry Reding
2597351cd8SThierry Reding  reg-names:
2697351cd8SThierry Reding    items:
2797351cd8SThierry Reding      - const: hcd
2897351cd8SThierry Reding      - const: fpci
2997351cd8SThierry Reding
3097351cd8SThierry Reding  interrupts:
3197351cd8SThierry Reding    items:
3297351cd8SThierry Reding      - description: xHCI host interrupt
3397351cd8SThierry Reding      - description: mailbox interrupt
3497351cd8SThierry Reding
3597351cd8SThierry Reding  clocks:
3697351cd8SThierry Reding    items:
3797351cd8SThierry Reding      - description: XUSB host clock
3897351cd8SThierry Reding      - description: XUSB Falcon source clock
3997351cd8SThierry Reding      - description: XUSB SuperSpeed clock
4097351cd8SThierry Reding      - description: XUSB SuperSpeed source clock
4197351cd8SThierry Reding      - description: XUSB HighSpeed clock source
4297351cd8SThierry Reding      - description: XUSB FullSpeed clock source
4397351cd8SThierry Reding      - description: USB PLL
4497351cd8SThierry Reding      - description: reference clock
4597351cd8SThierry Reding      - description: I/O PLL
4697351cd8SThierry Reding
4797351cd8SThierry Reding  clock-names:
4897351cd8SThierry Reding    items:
4997351cd8SThierry Reding      - const: xusb_host
5097351cd8SThierry Reding      - const: xusb_falcon_src
5197351cd8SThierry Reding      - const: xusb_ss
5297351cd8SThierry Reding      - const: xusb_ss_src
5397351cd8SThierry Reding      - const: xusb_hs_src
5497351cd8SThierry Reding      - const: xusb_fs_src
5597351cd8SThierry Reding      - const: pll_u_480m
5697351cd8SThierry Reding      - const: clk_m
5797351cd8SThierry Reding      - const: pll_e
5897351cd8SThierry Reding
5997351cd8SThierry Reding  interconnects:
6097351cd8SThierry Reding    items:
6197351cd8SThierry Reding      - description: read client
6297351cd8SThierry Reding      - description: write client
6397351cd8SThierry Reding
6497351cd8SThierry Reding  interconnect-names:
6597351cd8SThierry Reding    items:
6697351cd8SThierry Reding      - const: dma-mem # read
6797351cd8SThierry Reding      - const: write
6897351cd8SThierry Reding
6997351cd8SThierry Reding  iommus:
7097351cd8SThierry Reding    maxItems: 1
7197351cd8SThierry Reding
7297351cd8SThierry Reding  nvidia,xusb-padctl:
7397351cd8SThierry Reding    $ref: /schemas/types.yaml#/definitions/phandle
7497351cd8SThierry Reding    description: phandle to the XUSB pad controller that is used to configure
7597351cd8SThierry Reding      the USB pads used by the XHCI controller
7697351cd8SThierry Reding
7797351cd8SThierry Reding  phys:
7897351cd8SThierry Reding    minItems: 1
7997351cd8SThierry Reding    maxItems: 7
8097351cd8SThierry Reding
8197351cd8SThierry Reding  phy-names:
8297351cd8SThierry Reding    minItems: 1
8397351cd8SThierry Reding    maxItems: 7
8497351cd8SThierry Reding    items:
8597351cd8SThierry Reding      enum:
8697351cd8SThierry Reding        - usb2-0
8797351cd8SThierry Reding        - usb2-1
8897351cd8SThierry Reding        - usb2-2
8997351cd8SThierry Reding        - hsic-0
9097351cd8SThierry Reding        - usb3-0
9197351cd8SThierry Reding        - usb3-1
9297351cd8SThierry Reding        - usb3-2
9397351cd8SThierry Reding
9497351cd8SThierry Reding  power-domains:
9597351cd8SThierry Reding    items:
9697351cd8SThierry Reding      - description: XUSBC power domain (for Host and USB 2.0)
9797351cd8SThierry Reding      - description: XUSBA power domain (for SuperSpeed)
9897351cd8SThierry Reding
9997351cd8SThierry Reding  power-domain-names:
10097351cd8SThierry Reding    items:
10197351cd8SThierry Reding      - const: xusb_host
10297351cd8SThierry Reding      - const: xusb_ss
10397351cd8SThierry Reding
10497351cd8SThierry Reding  dvddio-pex-supply:
10597351cd8SThierry Reding    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
10697351cd8SThierry Reding
10797351cd8SThierry Reding  hvddio-pex-supply:
10897351cd8SThierry Reding    description: High-voltage PCIe/USB3 power supply. Must supply 1.8 V.
10997351cd8SThierry Reding
11097351cd8SThierry Reding  avdd-usb-supply:
11197351cd8SThierry Reding    description: USB controller power supply. Must supply 3.3 V.
11297351cd8SThierry Reding
11397351cd8SThierry Reding  avdd-pll-utmip-supply:
11497351cd8SThierry Reding    description: UTMI PLL power supply. Must supply 1.8 V.
11597351cd8SThierry Reding
11697351cd8SThierry Reding  avdd-pll-uerefe-supply:
11797351cd8SThierry Reding    description: PLLE reference PLL power supply. Must supply 1.05 V.
11897351cd8SThierry Reding
11997351cd8SThierry Reding  dvdd-usb-ss-pll-supply:
12097351cd8SThierry Reding    description: PCIe/USB3 PLL power supply. Must supply 1.05 V.
12197351cd8SThierry Reding
12297351cd8SThierry Reding  hvdd-usb-ss-pll-e-supply:
12397351cd8SThierry Reding    description: High-voltage PLLE power supply. Must supply 1.8 V.
12497351cd8SThierry Reding
12597351cd8SThierry RedingallOf:
12697351cd8SThierry Reding  - $ref: usb-xhci.yaml
12797351cd8SThierry Reding
12897351cd8SThierry RedingunevaluatedProperties: false
12997351cd8SThierry Reding
13097351cd8SThierry Redingexamples:
13197351cd8SThierry Reding  - |
13297351cd8SThierry Reding    #include <dt-bindings/clock/tegra186-clock.h>
13397351cd8SThierry Reding    #include <dt-bindings/interrupt-controller/arm-gic.h>
13497351cd8SThierry Reding    #include <dt-bindings/memory/tegra186-mc.h>
13597351cd8SThierry Reding    #include <dt-bindings/power/tegra186-powergate.h>
13697351cd8SThierry Reding    #include <dt-bindings/reset/tegra186-reset.h>
13797351cd8SThierry Reding
13897351cd8SThierry Reding    usb@3530000 {
13997351cd8SThierry Reding        compatible = "nvidia,tegra186-xusb";
14097351cd8SThierry Reding        reg = <0x03530000 0x8000>,
14197351cd8SThierry Reding              <0x03538000 0x1000>;
14297351cd8SThierry Reding        reg-names = "hcd", "fpci";
14397351cd8SThierry Reding        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
14497351cd8SThierry Reding                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
14597351cd8SThierry Reding        clocks = <&bpmp TEGRA186_CLK_XUSB_HOST>,
14697351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_XUSB_FALCON>,
14797351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_XUSB_SS>,
14897351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_XUSB_CORE_SS>,
14997351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_CLK_M>,
15097351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_XUSB_FS>,
15197351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_PLLU>,
15297351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_CLK_M>,
15397351cd8SThierry Reding                 <&bpmp TEGRA186_CLK_PLLE>;
15497351cd8SThierry Reding        clock-names = "xusb_host", "xusb_falcon_src", "xusb_ss",
15597351cd8SThierry Reding                      "xusb_ss_src", "xusb_hs_src", "xusb_fs_src",
15697351cd8SThierry Reding                      "pll_u_480m", "clk_m", "pll_e";
15797351cd8SThierry Reding        power-domains = <&bpmp TEGRA186_POWER_DOMAIN_XUSBC>,
15897351cd8SThierry Reding                        <&bpmp TEGRA186_POWER_DOMAIN_XUSBA>;
15997351cd8SThierry Reding        power-domain-names = "xusb_host", "xusb_ss";
16097351cd8SThierry Reding        interconnects = <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTR &emc>,
16197351cd8SThierry Reding                        <&mc TEGRA186_MEMORY_CLIENT_XUSB_HOSTW &emc>;
16297351cd8SThierry Reding        interconnect-names = "dma-mem", "write";
16397351cd8SThierry Reding        iommus = <&smmu TEGRA186_SID_XUSB_HOST>;
16497351cd8SThierry Reding        nvidia,xusb-padctl = <&padctl>;
16597351cd8SThierry Reding
16697351cd8SThierry Reding        #address-cells = <1>;
16797351cd8SThierry Reding        #size-cells = <0>;
16897351cd8SThierry Reding
169*d8a76e46SThierry Reding        phys = <&phy_usb2_0>, <&phy_usb2_1>, <&phy_usb3_0>;
17097351cd8SThierry Reding        phy-names = "usb2-0", "usb2-1", "usb3-0";
17197351cd8SThierry Reding    };
172