summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/usb/nxp,imx-dwc3.yaml
blob: 1911e71f01eb7c90b780978377bf8e2deb47d7e0 (plain)
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
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2026 NXP
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/nxp,imx-dwc3.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NXP i.MX Soc USB Controller

maintainers:
  - Xu Yang <xu.yang_2@nxp.com>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - nxp,imx94-dwc3
              - nxp,imx95-dwc3
          - const: nxp,imx8mp-dwc3
      - const: nxp,imx8mp-dwc3

  reg:
    items:
      - description: DWC3 core registers
      - description: HSIO Block Control registers
      - description: Wrapper registers of dwc3 core

  reg-names:
    items:
      - const: core
      - const: blkctl
      - const: glue

  interrupts:
    items:
      - description: DWC3 controller interrupt
      - description: Wakeup interrupt from glue logic

  interrupt-names:
    items:
      - const: dwc_usb3
      - const: wakeup

  iommus:
    maxItems: 1

  clocks:
    items:
      - description: System hsio root clock
      - description: SoC Bus Clock for AHB/AXI/Native
      - description: Reference clock for generating ITP when UTMI/ULPI PHY is suspended
      - description: Suspend clock used for usb wakeup logic

  clock-names:
    items:
      - const: hsio
      - const: bus_early
      - const: ref
      - const: suspend

  fsl,permanently-attached:
    type: boolean
    description:
      Indicates if the device attached to a downstream port is
      permanently attached

  fsl,disable-port-power-control:
    type: boolean
    description:
      Indicates whether the host controller implementation includes port
      power control. Defines Bit 3 in capability register (HCCPARAMS)

  fsl,over-current-active-low:
    type: boolean
    description:
      Over current signal polarity is active low

  fsl,power-active-low:
    type: boolean
    description:
      Power pad (PWR) polarity is active low

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - power-domains

allOf:
  - $ref: snps,dwc3-common.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    usb@4c100000 {
      compatible = "nxp,imx94-dwc3", "nxp,imx8mp-dwc3";
      reg = <0x4c100000 0x10000>,
            <0x4c010010 0x04>,
            <0x4c1f0000 0x20>;
      reg-names = "core", "blkctl", "glue";
      clocks = <&scmi_clk 74>,    //IMX94_CLK_HSIO
               <&scmi_clk 74>,    //IMX94_CLK_HSIO
               <&scmi_clk 2>,     //IMX94_CLK_24M
               <&scmi_clk 1>;     //IMX94_CLK_32K
      clock-names = "hsio", "bus_early", "ref", "suspend";
      interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
                   <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>;
      interrupt-names = "dwc_usb3", "wakeup";
      power-domains = <&scmi_devpd 13>;   //IMX94_PD_HSIO_TOP
      phys = <&usb3_phy>, <&usb3_phy>;
      phy-names = "usb2-phy", "usb3-phy";
      snps,gfladj-refclk-lpm-sel-quirk;
      snps,parkmode-disable-ss-quirk;
    };