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