blob: 1911e71f01eb7c90b780978377bf8e2deb47d7e0 [file] [edit]
# 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;
};