brintos

brintos / linux-shallow public Read only

0
0
Text · 4.8 KiB · c6e661e Raw
212 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)2%YAML 1.23---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 and11  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 Tegra21023          - nvidia,tegra186-xudc # For Tegra18624          - nvidia,tegra194-xudc # For Tegra19425          - nvidia,tegra234-xudc # For Tegra23426 27  reg:28    minItems: 229    items:30      - description: XUSB device controller registers31      - description: XUSB device PCI Config registers32      - description: XUSB device registers.33 34  reg-names:35    minItems: 236    items:37      - const: base38      - const: fpci39      - const: ipfs40 41  interrupts:42    maxItems: 143    description: Must contain the XUSB device interrupt.44 45  clocks:46    minItems: 447    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: 456    items:57      - const: dev58      - const: ss59      - const: ss_src60      - const: fs_src61      - const: hs_src62 63  interconnects:64    items:65      - description: memory read client66      - description: memory write client67 68  interconnect-names:69    items:70      - const: dma-mem # read71      - const: write72 73  iommus:74    maxItems: 175 76  power-domains:77    items:78      - description: XUSBB(device) power-domain79      - description: XUSBA(superspeed) power-domain80 81  power-domain-names:82    items:83      - const: dev84      - const: ss85 86  nvidia,xusb-padctl:87    $ref: /schemas/types.yaml#/definitions/phandle88    description:89      phandle to the XUSB pad controller that is used to configure the USB pads90      used by the XUDC controller.91 92  phys:93    minItems: 194    maxItems: 295    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: 1101    items:102      - const: usb2-0103      - const: usb3-0104 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: true112 113required:114  - compatible115  - reg116  - reg-names117  - interrupts118  - clocks119  - clock-names120  - power-domains121  - power-domain-names122  - nvidia,xusb-padctl123  - phys124  - phy-names125 126allOf:127  - if:128      properties:129        compatible:130          contains:131            enum:132              - nvidia,tegra210-xudc133    then:134      properties:135        reg:136          minItems: 3137        reg-names:138          minItems: 3139        clocks:140          minItems: 5141        clock-names:142          minItems: 5143      required:144        - avddio-usb-supply145        - hvdd-usb-supply146 147  - if:148      properties:149        compatible:150          contains:151            enum:152              - nvidia,tegra186-xudc153              - nvidia,tegra194-xudc154              - nvidia,tegra234-xudc155    then:156      properties:157        reg:158          maxItems: 2159        reg-names:160          maxItems: 2161        clocks:162          maxItems: 4163        clock-names:164          maxItems: 4165 166  - if:167      properties:168        compatible:169          contains:170            enum:171              - nvidia,tegra194-xudc172              - nvidia,tegra234-xudc173    then:174      required:175        - dma-coherent176 177additionalProperties: false178 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    };212