The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/usb/qcom,dwc3.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Qualcomm SuperSpeed DWC3 USB SoC controller
    8 
    9 maintainers:
   10   - Wesley Cheng <quic_wcheng@quicinc.com>
   11 
   12 properties:
   13   compatible:
   14     items:
   15       - enum:
   16           - qcom,ipq4019-dwc3
   17           - qcom,ipq6018-dwc3
   18           - qcom,ipq8064-dwc3
   19           - qcom,ipq8074-dwc3
   20           - qcom,msm8953-dwc3
   21           - qcom,msm8994-dwc3
   22           - qcom,msm8996-dwc3
   23           - qcom,msm8998-dwc3
   24           - qcom,qcs404-dwc3
   25           - qcom,sc7180-dwc3
   26           - qcom,sc7280-dwc3
   27           - qcom,sc8280xp-dwc3
   28           - qcom,sdm660-dwc3
   29           - qcom,sdm845-dwc3
   30           - qcom,sdx55-dwc3
   31           - qcom,sdx65-dwc3
   32           - qcom,sm4250-dwc3
   33           - qcom,sm6115-dwc3
   34           - qcom,sm6125-dwc3
   35           - qcom,sm6350-dwc3
   36           - qcom,sm6375-dwc3
   37           - qcom,sm8150-dwc3
   38           - qcom,sm8250-dwc3
   39           - qcom,sm8350-dwc3
   40           - qcom,sm8450-dwc3
   41       - const: qcom,dwc3
   42 
   43   reg:
   44     description: Offset and length of register set for QSCRATCH wrapper
   45     maxItems: 1
   46 
   47   "#address-cells":
   48     enum: [ 1, 2 ]
   49 
   50   "#size-cells":
   51     enum: [ 1, 2 ]
   52 
   53   ranges: true
   54 
   55   power-domains:
   56     description: specifies a phandle to PM domain provider node
   57     maxItems: 1
   58 
   59   clocks:
   60     description: |
   61       Several clocks are used, depending on the variant. Typical ones are::
   62        - cfg_noc:: System Config NOC clock.
   63        - core:: Master/Core clock, has to be >= 125 MHz for SS operation and >=
   64                 60MHz for HS operation.
   65        - iface:: System bus AXI clock.
   66        - sleep:: Sleep clock, used for wakeup when USB3 core goes into low
   67                  power mode (U3).
   68        - mock_utmi:: Mock utmi clock needed for ITP/SOF generation in host
   69                      mode. Its frequency should be 19.2MHz.
   70     minItems: 1
   71     maxItems: 9
   72 
   73   clock-names:
   74     minItems: 1
   75     maxItems: 9
   76 
   77   assigned-clocks:
   78     items:
   79       - description: Phandle and clock specifier of MOCK_UTMI_CLK.
   80       - description: Phandle and clock specifoer of MASTER_CLK.
   81 
   82   assigned-clock-rates:
   83     items:
   84       - description: Must be 19.2MHz (19200000).
   85       - description: Must be >= 60 MHz in HS mode, >= 125 MHz in SS mode.
   86   resets:
   87     maxItems: 1
   88 
   89   interconnects:
   90     maxItems: 2
   91 
   92   interconnect-names:
   93     items:
   94       - const: usb-ddr
   95       - const: apps-usb
   96 
   97   interrupts:
   98     minItems: 1
   99     maxItems: 4
  100 
  101   interrupt-names:
  102     minItems: 1
  103     maxItems: 4
  104 
  105   qcom,select-utmi-as-pipe-clk:
  106     description:
  107       If present, disable USB3 pipe_clk requirement.
  108       Used when dwc3 operates without SSPHY and only
  109       HS/FS/LS modes are supported.
  110     type: boolean
  111 
  112   wakeup-source: true
  113 
  114 # Required child node:
  115 
  116 patternProperties:
  117   "^usb@[0-9a-f]+$":
  118     $ref: snps,dwc3.yaml#
  119 
  120     properties:
  121       wakeup-source: false
  122 
  123 required:
  124   - compatible
  125   - reg
  126   - "#address-cells"
  127   - "#size-cells"
  128   - ranges
  129   - power-domains
  130   - clocks
  131   - clock-names
  132   - interrupts
  133   - interrupt-names
  134 
  135 allOf:
  136   - if:
  137       properties:
  138         compatible:
  139           contains:
  140             enum:
  141               - qcom,ipq4019-dwc3
  142     then:
  143       properties:
  144         clocks:
  145           maxItems: 3
  146         clock-names:
  147           items:
  148             - const: core
  149             - const: sleep
  150             - const: mock_utmi
  151 
  152   - if:
  153       properties:
  154         compatible:
  155           contains:
  156             enum:
  157               - qcom,ipq8064-dwc3
  158     then:
  159       properties:
  160         clocks:
  161           items:
  162             - description: Master/Core clock, has to be >= 125 MHz
  163                 for SS operation and >= 60MHz for HS operation.
  164         clock-names:
  165           items:
  166             - const: core
  167 
  168   - if:
  169       properties:
  170         compatible:
  171           contains:
  172             enum:
  173               - qcom,msm8953-dwc3
  174               - qcom,msm8996-dwc3
  175               - qcom,msm8998-dwc3
  176               - qcom,sc7180-dwc3
  177               - qcom,sc7280-dwc3
  178               - qcom,sdm845-dwc3
  179               - qcom,sdx55-dwc3
  180               - qcom,sm6350-dwc3
  181     then:
  182       properties:
  183         clocks:
  184           maxItems: 5
  185         clock-names:
  186           items:
  187             - const: cfg_noc
  188             - const: core
  189             - const: iface
  190             - const: sleep
  191             - const: mock_utmi
  192 
  193   - if:
  194       properties:
  195         compatible:
  196           contains:
  197             enum:
  198               - qcom,ipq6018-dwc3
  199     then:
  200       properties:
  201         clocks:
  202           minItems: 3
  203           maxItems: 4
  204         clock-names:
  205           oneOf:
  206             - items:
  207                 - const: core
  208                 - const: sleep
  209                 - const: mock_utmi
  210             - items:
  211                 - const: cfg_noc
  212                 - const: core
  213                 - const: sleep
  214                 - const: mock_utmi
  215 
  216   - if:
  217       properties:
  218         compatible:
  219           contains:
  220             enum:
  221               - qcom,ipq8074-dwc3
  222     then:
  223       properties:
  224         clocks:
  225           maxItems: 4
  226         clock-names:
  227           items:
  228             - const: cfg_noc
  229             - const: core
  230             - const: sleep
  231             - const: mock_utmi
  232 
  233   - if:
  234       properties:
  235         compatible:
  236           contains:
  237             enum:
  238               - qcom,msm8994-dwc3
  239               - qcom,qcs404-dwc3
  240     then:
  241       properties:
  242         clocks:
  243           maxItems: 4
  244         clock-names:
  245           items:
  246             - const: core
  247             - const: iface
  248             - const: sleep
  249             - const: mock_utmi
  250 
  251   - if:
  252       properties:
  253         compatible:
  254           contains:
  255             enum:
  256               - qcom,sc8280xp-dwc3
  257     then:
  258       properties:
  259         clocks:
  260           maxItems: 9
  261         clock-names:
  262           items:
  263             - const: cfg_noc
  264             - const: core
  265             - const: iface
  266             - const: sleep
  267             - const: mock_utmi
  268             - const: noc_aggr
  269             - const: noc_aggr_north
  270             - const: noc_aggr_south
  271             - const: noc_sys
  272 
  273   - if:
  274       properties:
  275         compatible:
  276           contains:
  277             enum:
  278               - qcom,sdm660-dwc3
  279     then:
  280       properties:
  281         clocks:
  282           minItems: 6
  283         clock-names:
  284           items:
  285             - const: cfg_noc
  286             - const: core
  287             - const: iface
  288             - const: sleep
  289             - const: mock_utmi
  290             - const: bus
  291 
  292   - if:
  293       properties:
  294         compatible:
  295           contains:
  296             enum:
  297               - qcom,sm6125-dwc3
  298               - qcom,sm8150-dwc3
  299               - qcom,sm8250-dwc3
  300               - qcom,sm8450-dwc3
  301     then:
  302       properties:
  303         clocks:
  304           minItems: 6
  305         clock-names:
  306           items:
  307             - const: cfg_noc
  308             - const: core
  309             - const: iface
  310             - const: sleep
  311             - const: mock_utmi
  312             - const: xo
  313 
  314   - if:
  315       properties:
  316         compatible:
  317           contains:
  318             enum:
  319               - qcom,sm8350-dwc3
  320     then:
  321       properties:
  322         clocks:
  323           minItems: 5
  324           maxItems: 6
  325         clock-names:
  326           minItems: 5
  327           items:
  328             - const: cfg_noc
  329             - const: core
  330             - const: iface
  331             - const: sleep
  332             - const: mock_utmi
  333             - const: xo
  334 
  335   - if:
  336       properties:
  337         compatible:
  338           contains:
  339             enum:
  340               - qcom,ipq4019-dwc3
  341               - qcom,ipq6018-dwc3
  342               - qcom,ipq8064-dwc3
  343               - qcom,ipq8074-dwc3
  344               - qcom,msm8994-dwc3
  345               - qcom,qcs404-dwc3
  346               - qcom,sc7180-dwc3
  347               - qcom,sdm845-dwc3
  348               - qcom,sdx55-dwc3
  349               - qcom,sdx65-dwc3
  350               - qcom,sm4250-dwc3
  351               - qcom,sm6115-dwc3
  352               - qcom,sm6125-dwc3
  353               - qcom,sm6350-dwc3
  354               - qcom,sm8150-dwc3
  355               - qcom,sm8250-dwc3
  356               - qcom,sm8350-dwc3
  357               - qcom,sm8450-dwc3
  358     then:
  359       properties:
  360         interrupts:
  361           items:
  362             - description: The interrupt that is asserted
  363                 when a wakeup event is received on USB2 bus.
  364             - description: The interrupt that is asserted
  365                 when a wakeup event is received on USB3 bus.
  366             - description: Wakeup event on DM line.
  367             - description: Wakeup event on DP line.
  368         interrupt-names:
  369           items:
  370             - const: hs_phy_irq
  371             - const: ss_phy_irq
  372             - const: dm_hs_phy_irq
  373             - const: dp_hs_phy_irq
  374 
  375   - if:
  376       properties:
  377         compatible:
  378           contains:
  379             enum:
  380               - qcom,msm8953-dwc3
  381               - qcom,msm8996-dwc3
  382               - qcom,msm8998-dwc3
  383     then:
  384       properties:
  385         interrupts:
  386           maxItems: 2
  387         interrupt-names:
  388           items:
  389             - const: hs_phy_irq
  390             - const: ss_phy_irq
  391 
  392   - if:
  393       properties:
  394         compatible:
  395           contains:
  396             enum:
  397               - qcom,sdm660-dwc3
  398     then:
  399       properties:
  400         interrupts:
  401           minItems: 1
  402           maxItems: 2
  403         interrupt-names:
  404           minItems: 1
  405           items:
  406             - const: hs_phy_irq
  407             - const: ss_phy_irq
  408 
  409   - if:
  410       properties:
  411         compatible:
  412           contains:
  413             enum:
  414               - qcom,sc7280-dwc3
  415     then:
  416       properties:
  417         interrupts:
  418           minItems: 3
  419           maxItems: 4
  420         interrupt-names:
  421           minItems: 3
  422           items:
  423             - const: hs_phy_irq
  424             - const: dp_hs_phy_irq
  425             - const: dm_hs_phy_irq
  426             - const: ss_phy_irq
  427 
  428   - if:
  429       properties:
  430         compatible:
  431           contains:
  432             enum:
  433               - qcom,sc8280xp-dwc3
  434     then:
  435       properties:
  436         interrupts:
  437           maxItems: 4
  438         interrupt-names:
  439           items:
  440             - const: pwr_event
  441             - const: dp_hs_phy_irq
  442             - const: dm_hs_phy_irq
  443             - const: ss_phy_irq
  444 
  445 additionalProperties: false
  446 
  447 examples:
  448   - |
  449     #include <dt-bindings/clock/qcom,gcc-sdm845.h>
  450     #include <dt-bindings/interrupt-controller/arm-gic.h>
  451     #include <dt-bindings/interrupt-controller/irq.h>
  452     soc {
  453         #address-cells = <2>;
  454         #size-cells = <2>;
  455 
  456         usb@a6f8800 {
  457             compatible = "qcom,sdm845-dwc3", "qcom,dwc3";
  458             reg = <0 0x0a6f8800 0 0x400>;
  459 
  460             #address-cells = <2>;
  461             #size-cells = <2>;
  462             ranges;
  463             clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
  464                      <&gcc GCC_USB30_PRIM_MASTER_CLK>,
  465                      <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
  466                      <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
  467                      <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
  468             clock-names = "cfg_noc",
  469                           "core",
  470                           "iface",
  471                           "sleep",
  472                           "mock_utmi";
  473 
  474             assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
  475                           <&gcc GCC_USB30_PRIM_MASTER_CLK>;
  476             assigned-clock-rates = <19200000>, <150000000>;
  477 
  478             interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  479                          <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
  480                          <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
  481                          <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
  482             interrupt-names = "hs_phy_irq", "ss_phy_irq",
  483                           "dm_hs_phy_irq", "dp_hs_phy_irq";
  484 
  485             power-domains = <&gcc USB30_PRIM_GDSC>;
  486 
  487             resets = <&gcc GCC_USB30_PRIM_BCR>;
  488 
  489             usb@a600000 {
  490                 compatible = "snps,dwc3";
  491                 reg = <0 0x0a600000 0 0xcd00>;
  492                 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
  493                 iommus = <&apps_smmu 0x740 0>;
  494                 snps,dis_u2_susphy_quirk;
  495                 snps,dis_enblslpm_quirk;
  496                 phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
  497                 phy-names = "usb2-phy", "usb3-phy";
  498             };
  499         };
  500     };

Cache object: 5c81f039562871594e565561950d87fe


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.