162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci# Copyright (c) 2020 NXP 362306a36Sopenharmony_ci%YAML 1.2 462306a36Sopenharmony_ci--- 562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/usb/fsl,imx8qm-cdns3.yaml# 662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 762306a36Sopenharmony_ci 862306a36Sopenharmony_cititle: NXP iMX8QM Soc USB Controller 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cimaintainers: 1162306a36Sopenharmony_ci - Frank Li <Frank.Li@nxp.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciproperties: 1462306a36Sopenharmony_ci compatible: 1562306a36Sopenharmony_ci const: fsl,imx8qm-usb3 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci reg: 1862306a36Sopenharmony_ci items: 1962306a36Sopenharmony_ci - description: Register set for iMX USB3 Platform Control 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci "#address-cells": 2262306a36Sopenharmony_ci enum: [ 1, 2 ] 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci "#size-cells": 2562306a36Sopenharmony_ci enum: [ 1, 2 ] 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci ranges: true 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci clocks: 3062306a36Sopenharmony_ci items: 3162306a36Sopenharmony_ci - description: Standby clock. Used during ultra low power states. 3262306a36Sopenharmony_ci - description: USB bus clock for usb3 controller. 3362306a36Sopenharmony_ci - description: AXI clock for AXI interface. 3462306a36Sopenharmony_ci - description: ipg clock for register access. 3562306a36Sopenharmony_ci - description: Core clock for usb3 controller. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci clock-names: 3862306a36Sopenharmony_ci items: 3962306a36Sopenharmony_ci - const: lpm 4062306a36Sopenharmony_ci - const: bus 4162306a36Sopenharmony_ci - const: aclk 4262306a36Sopenharmony_ci - const: ipg 4362306a36Sopenharmony_ci - const: core 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci power-domains: 4662306a36Sopenharmony_ci maxItems: 1 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci# Required child node: 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_cipatternProperties: 5162306a36Sopenharmony_ci "^usb@[0-9a-f]+$": 5262306a36Sopenharmony_ci $ref: cdns,usb3.yaml# 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cirequired: 5562306a36Sopenharmony_ci - compatible 5662306a36Sopenharmony_ci - reg 5762306a36Sopenharmony_ci - "#address-cells" 5862306a36Sopenharmony_ci - "#size-cells" 5962306a36Sopenharmony_ci - ranges 6062306a36Sopenharmony_ci - clocks 6162306a36Sopenharmony_ci - clock-names 6262306a36Sopenharmony_ci - power-domains 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciadditionalProperties: false 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciexamples: 6762306a36Sopenharmony_ci - | 6862306a36Sopenharmony_ci #include <dt-bindings/clock/imx8-lpcg.h> 6962306a36Sopenharmony_ci #include <dt-bindings/firmware/imx/rsrc.h> 7062306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci usb@5b110000 { 7362306a36Sopenharmony_ci compatible = "fsl,imx8qm-usb3"; 7462306a36Sopenharmony_ci reg = <0x5b110000 0x10000>; 7562306a36Sopenharmony_ci ranges; 7662306a36Sopenharmony_ci clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, 7762306a36Sopenharmony_ci <&usb3_lpcg IMX_LPCG_CLK_0>, 7862306a36Sopenharmony_ci <&usb3_lpcg IMX_LPCG_CLK_7>, 7962306a36Sopenharmony_ci <&usb3_lpcg IMX_LPCG_CLK_4>, 8062306a36Sopenharmony_ci <&usb3_lpcg IMX_LPCG_CLK_5>; 8162306a36Sopenharmony_ci clock-names = "lpm", "bus", "aclk", "ipg", "core"; 8262306a36Sopenharmony_ci assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; 8362306a36Sopenharmony_ci assigned-clock-rates = <250000000>; 8462306a36Sopenharmony_ci power-domains = <&pd IMX_SC_R_USB_2>; 8562306a36Sopenharmony_ci #address-cells = <1>; 8662306a36Sopenharmony_ci #size-cells = <1>; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci usb@5b120000 { 8962306a36Sopenharmony_ci compatible = "cdns,usb3"; 9062306a36Sopenharmony_ci reg = <0x5b120000 0x10000>, /* memory area for OTG/DRD registers */ 9162306a36Sopenharmony_ci <0x5b130000 0x10000>, /* memory area for HOST registers */ 9262306a36Sopenharmony_ci <0x5b140000 0x10000>; /* memory area for DEVICE registers */ 9362306a36Sopenharmony_ci reg-names = "otg", "xhci", "dev"; 9462306a36Sopenharmony_ci interrupt-parent = <&gic>; 9562306a36Sopenharmony_ci interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 9662306a36Sopenharmony_ci <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 9762306a36Sopenharmony_ci <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 9862306a36Sopenharmony_ci <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; 9962306a36Sopenharmony_ci interrupt-names = "host", "peripheral", "otg", "wakeup"; 10062306a36Sopenharmony_ci phys = <&usb3_phy>; 10162306a36Sopenharmony_ci phy-names = "cdns3,usb3-phy"; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci }; 104