xref: /linux/Documentation/devicetree/bindings/usb/nxp,imx-dwc3.yaml (revision 99ef60d119f3b2621067dd5fc1ea4a37360709e4)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright 2026 NXP
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/usb/nxp,imx-dwc3.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: NXP i.MX Soc USB Controller
9
10maintainers:
11  - Xu Yang <xu.yang_2@nxp.com>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - enum:
18              - nxp,imx94-dwc3
19              - nxp,imx95-dwc3
20          - const: nxp,imx8mp-dwc3
21      - const: nxp,imx8mp-dwc3
22
23  reg:
24    items:
25      - description: DWC3 core registers
26      - description: HSIO Block Control registers
27      - description: Wrapper registers of dwc3 core
28
29  reg-names:
30    items:
31      - const: core
32      - const: blkctl
33      - const: glue
34
35  interrupts:
36    items:
37      - description: DWC3 controller interrupt
38      - description: Wakeup interrupt from glue logic
39
40  interrupt-names:
41    items:
42      - const: dwc_usb3
43      - const: wakeup
44
45  iommus:
46    maxItems: 1
47
48  clocks:
49    items:
50      - description: System hsio root clock
51      - description: SoC Bus Clock for AHB/AXI/Native
52      - description: Reference clock for generating ITP when UTMI/ULPI PHY is suspended
53      - description: Suspend clock used for usb wakeup logic
54
55  clock-names:
56    items:
57      - const: hsio
58      - const: bus_early
59      - const: ref
60      - const: suspend
61
62  fsl,permanently-attached:
63    type: boolean
64    description:
65      Indicates if the device attached to a downstream port is
66      permanently attached
67
68  fsl,disable-port-power-control:
69    type: boolean
70    description:
71      Indicates whether the host controller implementation includes port
72      power control. Defines Bit 3 in capability register (HCCPARAMS)
73
74  fsl,over-current-active-low:
75    type: boolean
76    description:
77      Over current signal polarity is active low
78
79  fsl,power-active-low:
80    type: boolean
81    description:
82      Power pad (PWR) polarity is active low
83
84  power-domains:
85    maxItems: 1
86
87required:
88  - compatible
89  - reg
90  - clocks
91  - clock-names
92  - interrupts
93  - power-domains
94
95allOf:
96  - $ref: snps,dwc3-common.yaml#
97
98unevaluatedProperties: false
99
100examples:
101  - |
102    #include <dt-bindings/interrupt-controller/arm-gic.h>
103
104    usb@4c100000 {
105      compatible = "nxp,imx94-dwc3", "nxp,imx8mp-dwc3";
106      reg = <0x4c100000 0x10000>,
107            <0x4c010010 0x04>,
108            <0x4c1f0000 0x20>;
109      reg-names = "core", "blkctl", "glue";
110      clocks = <&scmi_clk 74>,    //IMX94_CLK_HSIO
111               <&scmi_clk 74>,    //IMX94_CLK_HSIO
112               <&scmi_clk 2>,     //IMX94_CLK_24M
113               <&scmi_clk 1>;     //IMX94_CLK_32K
114      clock-names = "hsio", "bus_early", "ref", "suspend";
115      interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
116                   <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>;
117      interrupt-names = "dwc_usb3", "wakeup";
118      power-domains = <&scmi_devpd 13>;   //IMX94_PD_HSIO_TOP
119      phys = <&usb3_phy>, <&usb3_phy>;
120      phy-names = "usb2-phy", "usb3-phy";
121      snps,gfladj-refclk-lpm-sel-quirk;
122      snps,parkmode-disable-ss-quirk;
123    };
124