xref: /linux/Documentation/devicetree/bindings/usb/renesas,usbhs.yaml (revision be1ca3ee8f97067fee87fda73ea5959d5ab75bbf)
1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/renesas,usbhs.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas USBHS (HS-USB) controller
8
9maintainers:
10  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - const: renesas,usbhs-r7s72100 # RZ/A1
17          - const: renesas,rza1-usbhs
18
19      - items:
20          - enum:
21              - renesas,usbhs-r7s9210   # RZ/A2
22          - const: renesas,rza2-usbhs
23
24      - items:
25          - enum:
26              - renesas,usbhs-r9a07g043 # RZ/G2UL and RZ/Five
27              - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
28              - renesas,usbhs-r9a07g054 # RZ/V2L
29              - renesas,usbhs-r9a08g045 # RZ/G3S
30              - renesas,usbhs-r9a09g047 # RZ/G3E
31              - renesas,usbhs-r9a09g056 # RZ/V2N
32              - renesas,usbhs-r9a09g057 # RZ/V2H(P)
33          - const: renesas,rzg2l-usbhs
34
35      - items:
36          - enum:
37              - renesas,usbhs-r8a7742  # RZ/G1H
38              - renesas,usbhs-r8a7743  # RZ/G1M
39              - renesas,usbhs-r8a7744  # RZ/G1N
40              - renesas,usbhs-r8a7745  # RZ/G1E
41              - renesas,usbhs-r8a77470 # RZ/G1C
42              - renesas,usbhs-r8a7790  # R-Car H2
43              - renesas,usbhs-r8a7791  # R-Car M2-W
44              - renesas,usbhs-r8a7792  # R-Car V2H
45              - renesas,usbhs-r8a7793  # R-Car M2-N
46              - renesas,usbhs-r8a7794  # R-Car E2
47          - const: renesas,rcar-gen2-usbhs
48
49      - items:
50          - enum:
51              - renesas,usbhs-r8a774a1 # RZ/G2M
52              - renesas,usbhs-r8a774b1 # RZ/G2N
53              - renesas,usbhs-r8a774c0 # RZ/G2E
54              - renesas,usbhs-r8a774e1 # RZ/G2H
55              - renesas,usbhs-r8a7795  # R-Car H3
56              - renesas,usbhs-r8a7796  # R-Car M3-W
57              - renesas,usbhs-r8a77961 # R-Car M3-W+
58              - renesas,usbhs-r8a77965 # R-Car M3-N
59              - renesas,usbhs-r8a77990 # R-Car E3
60              - renesas,usbhs-r8a77995 # R-Car D3
61          - const: renesas,rcar-gen3-usbhs
62
63      - const: renesas,usbhs-r9a09g077 # RZ/T2H
64
65      - items:
66          - const: renesas,usbhs-r9a09g087 # RZ/N2H
67          - const: renesas,usbhs-r9a09g077 # RZ/T2H
68
69  reg:
70    maxItems: 1
71
72  clocks:
73    minItems: 1
74    items:
75      - description: USB 2.0 host
76      - description: USB 2.0 peripheral
77      - description: USB 2.0 clock selector
78
79  interrupts:
80    minItems: 1
81    maxItems: 4
82
83  renesas,buswait:
84    $ref: /schemas/types.yaml#/definitions/uint32
85    description: |
86      Integer to use BUSWAIT register.
87
88  renesas,enable-gpio:
89    deprecated: true
90    maxItems: 1
91
92  renesas,enable-gpios:
93    maxItems: 1
94    description: |
95      gpio specifier to check GPIO determining if USB function should be
96      enabled.
97
98  phys:
99    maxItems: 1
100
101  phy-names:
102    items:
103      - const: usb
104
105  dmas:
106    minItems: 2
107    maxItems: 4
108
109  dma-names:
110    minItems: 2
111    items:
112      - const: ch0
113      - const: ch1
114      - const: ch2
115      - const: ch3
116
117  dr_mode: true
118
119  power-domains:
120    maxItems: 1
121
122  resets:
123    minItems: 1
124    items:
125      - description: USB 2.0 host
126      - description: USB 2.0 peripheral
127
128required:
129  - compatible
130  - reg
131  - clocks
132  - interrupts
133
134allOf:
135  - if:
136      properties:
137        compatible:
138          contains:
139            const: renesas,rzg2l-usbhs
140    then:
141      properties:
142        interrupts:
143          items:
144            - description: U2P_IXL_INT
145            - description: U2P_INT_DMA[0]
146            - description: U2P_INT_DMA[1]
147            - description: U2P_INT_DMAERR
148      required:
149        - resets
150    else:
151      if:
152        properties:
153          compatible:
154            contains:
155              const: renesas,usbhs-r9a09g077
156      then:
157        properties:
158          resets: false
159          clocks:
160            maxItems: 1
161          interrupts:
162            items:
163              - description: USB function interrupt USB_FI
164              - description: USB function DMA0 transmit completion interrupt USB_FDMA0
165              - description: USB function DMA1 transmit completion interrupt USB_FDMA1
166      else:
167        properties:
168          interrupts:
169            maxItems: 1
170
171additionalProperties: false
172
173examples:
174  - |
175    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
176    #include <dt-bindings/interrupt-controller/arm-gic.h>
177    #include <dt-bindings/power/r8a7790-sysc.h>
178
179    usbhs: usb@e6590000 {
180        compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
181        reg = <0xe6590000 0x100>;
182        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
183        clocks = <&cpg CPG_MOD 704>;
184    };
185