File Index
Files and directories
Sign in
FILE

nvidia,tegra-xudc.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/usb/nvidia,tegra-xudc.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: NVIDIA Tegra XUSB device mode controller (XUDC)
  8
  9description:
 10  The Tegra XUDC controller supports both USB 2.0 HighSpeed/FullSpeed and
 11  USB 3.0 SuperSpeed protocols.
 12
 13maintainers:
 14  - Nagarjuna Kristam <nkristam@nvidia.com>
 15  - JC Kuo <jckuo@nvidia.com>
 16  - Thierry Reding <treding@nvidia.com>
 17
 18properties:
 19  compatible:
 20    items:
 21      - enum:
 22          - nvidia,tegra210-xudc # For Tegra210
 23          - nvidia,tegra186-xudc # For Tegra186
 24          - nvidia,tegra194-xudc # For Tegra194
 25          - nvidia,tegra234-xudc # For Tegra234
 26
 27  reg:
 28    minItems: 2
 29    items:
 30      - description: XUSB device controller registers
 31      - description: XUSB device PCI Config registers
 32      - description: XUSB device registers.
 33
 34  reg-names:
 35    minItems: 2
 36    items:
 37      - const: base
 38      - const: fpci
 39      - const: ipfs
 40
 41  interrupts:
 42    maxItems: 1
 43    description: Must contain the XUSB device interrupt.
 44
 45  clocks:
 46    minItems: 4
 47    items:
 48      - description: Clock to enable core XUSB dev clock.
 49      - description: Clock to enable XUSB super speed clock.
 50      - description: Clock to enable XUSB super speed dev clock.
 51      - description: Clock to enable XUSB high speed dev clock.
 52      - description: Clock to enable XUSB full speed dev clock.
 53
 54  clock-names:
 55    minItems: 4
 56    items:
 57      - const: dev
 58      - const: ss
 59      - const: ss_src
 60      - const: fs_src
 61      - const: hs_src
 62
 63  interconnects:
 64    items:
 65      - description: memory read client
 66      - description: memory write client
 67
 68  interconnect-names:
 69    items:
 70      - const: dma-mem # read
 71      - const: write
 72
 73  iommus:
 74    maxItems: 1
 75
 76  power-domains:
 77    items:
 78      - description: XUSBB(device) power-domain
 79      - description: XUSBA(superspeed) power-domain
 80
 81  power-domain-names:
 82    items:
 83      - const: dev
 84      - const: ss
 85
 86  nvidia,xusb-padctl:
 87    $ref: /schemas/types.yaml#/definitions/phandle
 88    description:
 89      phandle to the XUSB pad controller that is used to configure the USB pads
 90      used by the XUDC controller.
 91
 92  phys:
 93    minItems: 1
 94    maxItems: 2
 95    description:
 96      Must contain an entry for each entry in phy-names.
 97      See ../phy/phy-bindings.txt for details.
 98
 99  phy-names:
100    minItems: 1
101    items:
102      - const: usb2-0
103      - const: usb3-0
104
105  avddio-usb-supply:
106    description: PCIe/USB3 analog logic power supply. Must supply 1.05 V.
107
108  hvdd-usb-supply:
109    description: USB controller power supply. Must supply 3.3 V.
110
111  dma-coherent: true
112
113required:
114  - compatible
115  - reg
116  - reg-names
117  - interrupts
118  - clocks
119  - clock-names
120  - power-domains
121  - power-domain-names
122  - nvidia,xusb-padctl
123  - phys
124  - phy-names
125
126allOf:
127  - if:
128      properties:
129        compatible:
130          contains:
131            enum:
132              - nvidia,tegra210-xudc
133    then:
134      properties:
135        reg:
136          minItems: 3
137        reg-names:
138          minItems: 3
139        clocks:
140          minItems: 5
141        clock-names:
142          minItems: 5
143      required:
144        - avddio-usb-supply
145        - hvdd-usb-supply
146
147  - if:
148      properties:
149        compatible:
150          contains:
151            enum:
152              - nvidia,tegra186-xudc
153              - nvidia,tegra194-xudc
154              - nvidia,tegra234-xudc
155    then:
156      properties:
157        reg:
158          maxItems: 2
159        reg-names:
160          maxItems: 2
161        clocks:
162          maxItems: 4
163        clock-names:
164          maxItems: 4
165
166  - if:
167      properties:
168        compatible:
169          contains:
170            enum:
171              - nvidia,tegra194-xudc
172              - nvidia,tegra234-xudc
173    then:
174      required:
175        - dma-coherent
176
177additionalProperties: false
178
179examples:
180  - |
181    #include <dt-bindings/clock/tegra210-car.h>
182    #include <dt-bindings/gpio/tegra-gpio.h>
183    #include <dt-bindings/interrupt-controller/arm-gic.h>
184
185    usb@700d0000 {
186        compatible = "nvidia,tegra210-xudc";
187        reg = <0x700d0000 0x8000>,
188              <0x700d8000 0x1000>,
189              <0x700d9000 0x1000>;
190        reg-names = "base", "fpci", "ipfs";
191
192        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
193
194        clocks = <&tegra_car TEGRA210_CLK_XUSB_DEV>,
195                 <&tegra_car TEGRA210_CLK_XUSB_SS>,
196                 <&tegra_car TEGRA210_CLK_XUSB_SSP_SRC>,
197                 <&tegra_car TEGRA210_CLK_XUSB_FS_SRC>,
198                 <&tegra_car TEGRA210_CLK_XUSB_HS_SRC>;
199        clock-names = "dev", "ss", "ss_src", "fs_src", "hs_src";
200
201        power-domains = <&pd_xusbdev>, <&pd_xusbss>;
202        power-domain-names = "dev", "ss";
203
204        nvidia,xusb-padctl = <&padctl>;
205
206        phys = <&micro_b>;
207        phy-names = "usb2-0";
208
209        avddio-usb-supply = <&vdd_pex_1v05>;
210        hvdd-usb-supply = <&vdd_3v3_sys>;
211    };
~/ Read-only file preview.