0001 # SPDX-License-Identifier: GPL-2.0-only
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/usb/renesas,usbhs.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Renesas USBHS (HS-USB) controller
0008
0009 maintainers:
0010 - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
0011
0012 properties:
0013 compatible:
0014 oneOf:
0015 - items:
0016 - const: renesas,usbhs-r7s72100 # RZ/A1
0017 - const: renesas,rza1-usbhs
0018
0019 - items:
0020 - enum:
0021 - renesas,usbhs-r7s9210 # RZ/A2
0022 - renesas,usbhs-r9a07g043 # RZ/G2UL
0023 - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
0024 - renesas,usbhs-r9a07g054 # RZ/V2L
0025 - const: renesas,rza2-usbhs
0026
0027 - items:
0028 - enum:
0029 - renesas,usbhs-r8a7742 # RZ/G1H
0030 - renesas,usbhs-r8a7743 # RZ/G1M
0031 - renesas,usbhs-r8a7744 # RZ/G1N
0032 - renesas,usbhs-r8a7745 # RZ/G1E
0033 - renesas,usbhs-r8a77470 # RZ/G1C
0034 - renesas,usbhs-r8a7790 # R-Car H2
0035 - renesas,usbhs-r8a7791 # R-Car M2-W
0036 - renesas,usbhs-r8a7792 # R-Car V2H
0037 - renesas,usbhs-r8a7793 # R-Car M2-N
0038 - renesas,usbhs-r8a7794 # R-Car E2
0039 - const: renesas,rcar-gen2-usbhs
0040
0041 - items:
0042 - enum:
0043 - renesas,usbhs-r8a774a1 # RZ/G2M
0044 - renesas,usbhs-r8a774b1 # RZ/G2N
0045 - renesas,usbhs-r8a774c0 # RZ/G2E
0046 - renesas,usbhs-r8a774e1 # RZ/G2H
0047 - renesas,usbhs-r8a7795 # R-Car H3
0048 - renesas,usbhs-r8a7796 # R-Car M3-W
0049 - renesas,usbhs-r8a77961 # R-Car M3-W+
0050 - renesas,usbhs-r8a77965 # R-Car M3-N
0051 - renesas,usbhs-r8a77990 # R-Car E3
0052 - renesas,usbhs-r8a77995 # R-Car D3
0053 - const: renesas,rcar-gen3-usbhs
0054
0055 reg:
0056 maxItems: 1
0057
0058 clocks:
0059 minItems: 1
0060 items:
0061 - description: USB 2.0 host
0062 - description: USB 2.0 peripheral
0063 - description: USB 2.0 clock selector
0064
0065 interrupts:
0066 minItems: 1
0067 maxItems: 4
0068
0069 renesas,buswait:
0070 $ref: /schemas/types.yaml#/definitions/uint32
0071 description: |
0072 Integer to use BUSWAIT register.
0073
0074 renesas,enable-gpio:
0075 maxItems: 1
0076 description: |
0077 gpio specifier to check GPIO determining if USB function should be
0078 enabled.
0079
0080 phys:
0081 maxItems: 1
0082
0083 phy-names:
0084 items:
0085 - const: usb
0086
0087 dmas:
0088 minItems: 2
0089 maxItems: 4
0090
0091 dma-names:
0092 minItems: 2
0093 items:
0094 - const: ch0
0095 - const: ch1
0096 - const: ch2
0097 - const: ch3
0098
0099 dr_mode: true
0100
0101 power-domains:
0102 maxItems: 1
0103
0104 resets:
0105 minItems: 1
0106 items:
0107 - description: USB 2.0 host
0108 - description: USB 2.0 peripheral
0109
0110 required:
0111 - compatible
0112 - reg
0113 - clocks
0114 - interrupts
0115
0116 allOf:
0117 - if:
0118 properties:
0119 compatible:
0120 contains:
0121 enum:
0122 - renesas,usbhs-r9a07g043
0123 - renesas,usbhs-r9a07g044
0124 - renesas,usbhs-r9a07g054
0125 then:
0126 properties:
0127 interrupts:
0128 items:
0129 - description: U2P_IXL_INT
0130 - description: U2P_INT_DMA[0]
0131 - description: U2P_INT_DMA[1]
0132 - description: U2P_INT_DMAERR
0133 required:
0134 - resets
0135 else:
0136 properties:
0137 interrupts:
0138 maxItems: 1
0139
0140 additionalProperties: false
0141
0142 examples:
0143 - |
0144 #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
0145 #include <dt-bindings/interrupt-controller/arm-gic.h>
0146 #include <dt-bindings/power/r8a7790-sysc.h>
0147
0148 usbhs: usb@e6590000 {
0149 compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
0150 reg = <0xe6590000 0x100>;
0151 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
0152 clocks = <&cpg CPG_MOD 704>;
0153 };