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