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