Documentation / devicetree / bindings / usb / dwc3-xilinx.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/dwc3-xilinx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Xilinx SuperSpeed DWC3 USB SoC controller

maintainers:
  - Mubin Sayyed <mubin.sayyed@amd.com>
  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>

properties:
  compatible:
    items:
      - enum:
          - xlnx,zynqmp-dwc3
          - xlnx,versal-dwc3
  reg:
    maxItems: 1
 
  "#address-cells":
    enum: [ 1, 2 ]
 
  "#size-cells":
    enum: [ 1, 2 ]

  ranges: true

  power-domains:
    description: specifies a phandle to PM domain provider node
    maxItems: 1

  clocks:
    description:
      A list of phandle and clock-specifier pairs for the clocks
      listed in clock-names.
    items:
      - description: Master/Core clock, has to be >= 125 MHz
          for SS operation and >= 60MHz for HS operation.
      - description: Clock source to core during PHY power down.

  clock-names:
    items:
      - const: bus_clk
      - const: ref_clk

  resets:
    description:
      A list of phandles for resets listed in reset-names.

    items:
      - description: USB core reset
      - description: USB hibernation reset
      - description: USB APB reset

  reset-names:
    items:
      - const: usb_crst
      - const: usb_hibrst
      - const: usb_apbrst

  phys:
    minItems: 1
    maxItems: 2

  phy-names:
    minItems: 1
    maxItems: 2
    items:
      enum:
        - usb2-phy
        - usb3-phy

  reset-gpios:
    description: GPIO used for the reset ulpi-phy
    maxItems: 1
 
# Required child node:

patternProperties:
  "^usb@[0-9a-f]+$":
    $ref: snps,dwc3.yaml#

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - ranges
  - power-domains
  - clocks
  - clock-names
  - resets
  - reset-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/dma/xlnx-zynqmp-dpdma.h>
    #include <dt-bindings/power/xlnx-zynqmp-power.h>
    #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
    #include <dt-bindings/clock/xlnx-zynqmp-clk.h>
    #include <dt-bindings/reset/xlnx-zynqmp-resets.h>
    #include <dt-bindings/phy/phy.h>
    axi {
        #address-cells = <2>;
        #size-cells = <2>;
 
        usb@0 {
            #address-cells = <0x2>;
            #size-cells = <0x2>;
            compatible = "xlnx,zynqmp-dwc3";
            reg = <0x0 0xff9d0000 0x0 0x100>;
            clocks = <&zynqmp_clk USB0_BUS_REF>, <&zynqmp_clk USB3_DUAL_REF>;
            clock-names = "bus_clk", "ref_clk";
            power-domains = <&zynqmp_firmware PD_USB_0>;
            resets = <&zynqmp_reset ZYNQMP_RESET_USB1_CORERESET>,
                     <&zynqmp_reset ZYNQMP_RESET_USB1_HIBERRESET>,
                     <&zynqmp_reset ZYNQMP_RESET_USB1_APB>;
            reset-names = "usb_crst", "usb_hibrst", "usb_apbrst";
            phys = <&psgtr 2 PHY_TYPE_USB3 0 2>;
            phy-names = "usb3-phy";
            ranges;
 
            usb@fe200000 {
                compatible = "snps,dwc3";
                reg = <0x0 0xfe200000 0x0 0x40000>;
                interrupt-names = "host", "otg";
                interrupts = <0 65 4>, <0 69 4>;
                dr_mode = "host";
                dma-coherent;
            };
        };
    };