1*f126890aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*f126890aSEmmanuel Vadot# Copyright (c) 2020 NXP 3*f126890aSEmmanuel Vadot%YAML 1.2 4*f126890aSEmmanuel Vadot--- 5*f126890aSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/fsl,imx8qm-cdns3.yaml# 6*f126890aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 7*f126890aSEmmanuel Vadot 8*f126890aSEmmanuel Vadottitle: NXP iMX8QM Soc USB Controller 9*f126890aSEmmanuel Vadot 10*f126890aSEmmanuel Vadotmaintainers: 11*f126890aSEmmanuel Vadot - Frank Li <Frank.Li@nxp.com> 12*f126890aSEmmanuel Vadot 13*f126890aSEmmanuel Vadotproperties: 14*f126890aSEmmanuel Vadot compatible: 15*f126890aSEmmanuel Vadot const: fsl,imx8qm-usb3 16*f126890aSEmmanuel Vadot 17*f126890aSEmmanuel Vadot reg: 18*f126890aSEmmanuel Vadot items: 19*f126890aSEmmanuel Vadot - description: Register set for iMX USB3 Platform Control 20*f126890aSEmmanuel Vadot 21*f126890aSEmmanuel Vadot "#address-cells": 22*f126890aSEmmanuel Vadot enum: [ 1, 2 ] 23*f126890aSEmmanuel Vadot 24*f126890aSEmmanuel Vadot "#size-cells": 25*f126890aSEmmanuel Vadot enum: [ 1, 2 ] 26*f126890aSEmmanuel Vadot 27*f126890aSEmmanuel Vadot ranges: true 28*f126890aSEmmanuel Vadot 29*f126890aSEmmanuel Vadot clocks: 30*f126890aSEmmanuel Vadot items: 31*f126890aSEmmanuel Vadot - description: Standby clock. Used during ultra low power states. 32*f126890aSEmmanuel Vadot - description: USB bus clock for usb3 controller. 33*f126890aSEmmanuel Vadot - description: AXI clock for AXI interface. 34*f126890aSEmmanuel Vadot - description: ipg clock for register access. 35*f126890aSEmmanuel Vadot - description: Core clock for usb3 controller. 36*f126890aSEmmanuel Vadot 37*f126890aSEmmanuel Vadot clock-names: 38*f126890aSEmmanuel Vadot items: 39*f126890aSEmmanuel Vadot - const: lpm 40*f126890aSEmmanuel Vadot - const: bus 41*f126890aSEmmanuel Vadot - const: aclk 42*f126890aSEmmanuel Vadot - const: ipg 43*f126890aSEmmanuel Vadot - const: core 44*f126890aSEmmanuel Vadot 45*f126890aSEmmanuel Vadot power-domains: 46*f126890aSEmmanuel Vadot maxItems: 1 47*f126890aSEmmanuel Vadot 48*f126890aSEmmanuel Vadot# Required child node: 49*f126890aSEmmanuel Vadot 50*f126890aSEmmanuel VadotpatternProperties: 51*f126890aSEmmanuel Vadot "^usb@[0-9a-f]+$": 52*f126890aSEmmanuel Vadot $ref: cdns,usb3.yaml# 53*f126890aSEmmanuel Vadot 54*f126890aSEmmanuel Vadotrequired: 55*f126890aSEmmanuel Vadot - compatible 56*f126890aSEmmanuel Vadot - reg 57*f126890aSEmmanuel Vadot - "#address-cells" 58*f126890aSEmmanuel Vadot - "#size-cells" 59*f126890aSEmmanuel Vadot - ranges 60*f126890aSEmmanuel Vadot - clocks 61*f126890aSEmmanuel Vadot - clock-names 62*f126890aSEmmanuel Vadot - power-domains 63*f126890aSEmmanuel Vadot 64*f126890aSEmmanuel VadotadditionalProperties: false 65*f126890aSEmmanuel Vadot 66*f126890aSEmmanuel Vadotexamples: 67*f126890aSEmmanuel Vadot - | 68*f126890aSEmmanuel Vadot #include <dt-bindings/clock/imx8-lpcg.h> 69*f126890aSEmmanuel Vadot #include <dt-bindings/firmware/imx/rsrc.h> 70*f126890aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 71*f126890aSEmmanuel Vadot 72*f126890aSEmmanuel Vadot usb@5b110000 { 73*f126890aSEmmanuel Vadot compatible = "fsl,imx8qm-usb3"; 74*f126890aSEmmanuel Vadot reg = <0x5b110000 0x10000>; 75*f126890aSEmmanuel Vadot ranges; 76*f126890aSEmmanuel Vadot clocks = <&usb3_lpcg IMX_LPCG_CLK_1>, 77*f126890aSEmmanuel Vadot <&usb3_lpcg IMX_LPCG_CLK_0>, 78*f126890aSEmmanuel Vadot <&usb3_lpcg IMX_LPCG_CLK_7>, 79*f126890aSEmmanuel Vadot <&usb3_lpcg IMX_LPCG_CLK_4>, 80*f126890aSEmmanuel Vadot <&usb3_lpcg IMX_LPCG_CLK_5>; 81*f126890aSEmmanuel Vadot clock-names = "lpm", "bus", "aclk", "ipg", "core"; 82*f126890aSEmmanuel Vadot assigned-clocks = <&clk IMX_SC_R_USB_2 IMX_SC_PM_CLK_MST_BUS>; 83*f126890aSEmmanuel Vadot assigned-clock-rates = <250000000>; 84*f126890aSEmmanuel Vadot power-domains = <&pd IMX_SC_R_USB_2>; 85*f126890aSEmmanuel Vadot #address-cells = <1>; 86*f126890aSEmmanuel Vadot #size-cells = <1>; 87*f126890aSEmmanuel Vadot 88*f126890aSEmmanuel Vadot usb@5b120000 { 89*f126890aSEmmanuel Vadot compatible = "cdns,usb3"; 90*f126890aSEmmanuel Vadot reg = <0x5b120000 0x10000>, /* memory area for OTG/DRD registers */ 91*f126890aSEmmanuel Vadot <0x5b130000 0x10000>, /* memory area for HOST registers */ 92*f126890aSEmmanuel Vadot <0x5b140000 0x10000>; /* memory area for DEVICE registers */ 93*f126890aSEmmanuel Vadot reg-names = "otg", "xhci", "dev"; 94*f126890aSEmmanuel Vadot interrupt-parent = <&gic>; 95*f126890aSEmmanuel Vadot interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 96*f126890aSEmmanuel Vadot <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 97*f126890aSEmmanuel Vadot <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, 98*f126890aSEmmanuel Vadot <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>; 99*f126890aSEmmanuel Vadot interrupt-names = "host", "peripheral", "otg", "wakeup"; 100*f126890aSEmmanuel Vadot phys = <&usb3_phy>; 101*f126890aSEmmanuel Vadot phy-names = "cdns3,usb3-phy"; 102*f126890aSEmmanuel Vadot }; 103*f126890aSEmmanuel Vadot }; 104