# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # Copyright (c) 2020 NXP %YAML 1.2 --- $id: http://devicetree.org/schemas/usb/fsl,imx8qm-cdns3.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: NXP iMX8QM Soc USB Controller maintainers: - Frank Li <Frank.Li@nxp.com> properties: compatible: const: fsl,imx8qm-usb3 reg: items: - description: Register set for iMX USB3 Platform Control "#address-cells": enum: [ 1, 2 ] "#size-cells": enum: [ 1, 2 ] ranges: true clocks: items: - description: Standby clock. Used during ultra low power states. - description: USB bus clock for usb3 controller. - description: AXI clock for AXI interface. - description: ipg clock for register access. - description: Core clock for usb3 controller. clock-names: items: - const: lpm - const: bus - const: aclk - const: ipg - const: core power-domains: maxItems: 1 # Required child node: patternProperties: "^usb@[0-9a-f]+$": $ref: cdns,usb3.yaml# required: - compatible - reg - "#address-cells" - "#size-cells" - ranges - clocks - clock-names - power-domains additionalProperties: false examples: - | #include <dt-bindings/clock/imx8-lpcg.h> #include <dt-bindings/firmware/imx/rsrc.h> #include <dt-bindings/interrupt-controller/arm-gic.h> usb@5b110000 { compatible = "fsl,imx8qm-usb3"; reg = <0x5b110000 0x10000>; ranges; clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, <&usb3_lpcg IMX_LPCG_CLK_0>, <&usb3_lpcg IMX_LPCG_CLK_7>, <&usb3_lpcg IMX_LPCG_CLK_4>, <&usb3_lpcg IMX_LPCG_CLK_5>; clock-names = "lpm", "bus", "aclk", "ipg", "core"; assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; assigned-clock-rates = <250000000>; power-domains = <&pd IMX_SC_R_USB_2>; #address-cells = <1>; #size-cells = <1>; usb@5b120000 { compatible = "cdns,usb3"; reg = <0x5b120000 0x10000>, /* memory area for OTG/DRD registers */ <0x5b130000 0x10000>, /* memory area for HOST registers */ <0x5b140000 0x10000>; /* memory area for DEVICE registers */ reg-names = "otg", "xhci", "dev"; interrupt-parent = <&gic>; interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "host", "peripheral", "otg", "wakeup"; phys = <&usb3_phy>; phy-names = "cdns3,usb3-phy"; }; };