104 lines
2.7 KiB
YAML
104 lines
2.7 KiB
YAML
|
# 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";
|
||
|
};
|
||
|
};
|