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              - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
23              - renesas,usbhs-r9a07g054 # RZ/V2L
24          - const: renesas,rza2-usbhs
25
26      - items:
27          - enum:
28              - renesas,usbhs-r8a7742  # RZ/G1H
29              - renesas,usbhs-r8a7743  # RZ/G1M
30              - renesas,usbhs-r8a7744  # RZ/G1N
31              - renesas,usbhs-r8a7745  # RZ/G1E
32              - renesas,usbhs-r8a77470 # RZ/G1C
33              - renesas,usbhs-r8a7790  # R-Car H2
34              - renesas,usbhs-r8a7791  # R-Car M2-W
35              - renesas,usbhs-r8a7792  # R-Car V2H
36              - renesas,usbhs-r8a7793  # R-Car M2-N
37              - renesas,usbhs-r8a7794  # R-Car E2
38          - const: renesas,rcar-gen2-usbhs
39
40      - items:
41          - enum:
42              - renesas,usbhs-r8a774a1 # RZ/G2M
43              - renesas,usbhs-r8a774b1 # RZ/G2N
44              - renesas,usbhs-r8a774c0 # RZ/G2E
45              - renesas,usbhs-r8a774e1 # RZ/G2H
46              - renesas,usbhs-r8a7795  # R-Car H3
47              - renesas,usbhs-r8a7796  # R-Car M3-W
48              - renesas,usbhs-r8a77961 # R-Car M3-W+
49              - renesas,usbhs-r8a77965 # R-Car M3-N
50              - renesas,usbhs-r8a77990 # R-Car E3
51              - renesas,usbhs-r8a77995 # R-Car D3
52          - const: renesas,rcar-gen3-usbhs
53
54  reg:
55    maxItems: 1
56
57  clocks:
58    minItems: 1
59    items:
60      - description: USB 2.0 host
61      - description: USB 2.0 peripheral
62      - description: USB 2.0 clock selector
63
64  interrupts:
65    minItems: 1
66    maxItems: 4
67
68  renesas,buswait:
69    $ref: /schemas/types.yaml#/definitions/uint32
70    description: |
71      Integer to use BUSWAIT register.
72
73  renesas,enable-gpio:
74    maxItems: 1
75    description: |
76      gpio specifier to check GPIO determining if USB function should be
77      enabled.
78
79  phys:
80    maxItems: 1
81
82  phy-names:
83    items:
84      - const: usb
85
86  dmas:
87    minItems: 2
88    maxItems: 4
89
90  dma-names:
91    minItems: 2
92    items:
93      - const: ch0
94      - const: ch1
95      - const: ch2
96      - const: ch3
97
98  dr_mode: true
99
100  power-domains:
101    maxItems: 1
102
103  resets:
104    minItems: 1
105    items:
106      - description: USB 2.0 host
107      - description: USB 2.0 peripheral
108
109required:
110  - compatible
111  - reg
112  - clocks
113  - interrupts
114
115allOf:
116  - if:
117      properties:
118        compatible:
119          contains:
120            enum:
121              - renesas,usbhs-r9a07g044
122              - renesas,usbhs-r9a07g054
123    then:
124      properties:
125        interrupts:
126          items:
127            - description: U2P_IXL_INT
128            - description: U2P_INT_DMA[0]
129            - description: U2P_INT_DMA[1]
130            - description: U2P_INT_DMAERR
131    else:
132      properties:
133        interrupts:
134          maxItems: 1
135
136additionalProperties: false
137
138examples:
139  - |
140    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
141    #include <dt-bindings/interrupt-controller/arm-gic.h>
142    #include <dt-bindings/power/r8a7790-sysc.h>
143
144    usbhs: usb@e6590000 {
145        compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
146        reg = <0xe6590000 0x100>;
147        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
148        clocks = <&cpg CPG_MOD 704>;
149    };
150