Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: usb: cdns-imx8qm: add imx8qm cdns3 glue layer

NXP imx8qm integrates 1 cdns3 IP. This is glue layer device bindings.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230517152545.3404508-2-Frank.Li@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Frank Li and committed by
Greg Kroah-Hartman
8486eb80 7a053bf2

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