Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / usb / renesas,usb-xhci.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/renesas,usb-xhci.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Renesas USB xHCI controllers
8
9 maintainers:
10   - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
11   - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
12
13 properties:
14   compatible:
15     oneOf:
16       - items:
17           - enum:
18               - renesas,xhci-r8a7742 # RZ/G1H
19               - renesas,xhci-r8a7743 # RZ/G1M
20               - renesas,xhci-r8a7744 # RZ/G1N
21               - renesas,xhci-r8a7790 # R-Car H2
22               - renesas,xhci-r8a7791 # R-Car M2-W
23               - renesas,xhci-r8a7793 # R-Car M2-N
24           - const: renesas,rcar-gen2-xhci # R-Car Gen2 and RZ/G1
25       - items:
26           - enum:
27               - renesas,xhci-r8a774a1 # RZ/G2M
28               - renesas,xhci-r8a774b1 # RZ/G2N
29               - renesas,xhci-r8a774c0 # RZ/G2E
30               - renesas,xhci-r8a774e1 # RZ/G2H
31               - renesas,xhci-r8a7795  # R-Car H3
32               - renesas,xhci-r8a7796  # R-Car M3-W
33               - renesas,xhci-r8a77961 # R-Car M3-W+
34               - renesas,xhci-r8a77965 # R-Car M3-N
35               - renesas,xhci-r8a77990 # R-Car E3
36           - const: renesas,rcar-gen3-xhci # R-Car Gen3 and RZ/G2
37       - items:
38           - enum:
39               - renesas,r9a09g011-xhci # RZ/V2M
40               - renesas,r9a09g055-xhci # RZ/V2MA
41           - const: renesas,rzv2m-xhci  # RZ/{V2M, V2MA}
42
43   reg:
44     maxItems: 1
45
46   interrupts:
47     maxItems: 1
48
49   clocks:
50     minItems: 1
51     items:
52       - description: Main clock for host
53       - description: Register access clock
54
55   clock-names:
56     minItems: 1
57     items:
58       - const: axi
59       - const: reg
60
61   phys:
62     maxItems: 1
63
64   phy-names:
65     items:
66       - const: usb
67
68   power-domains:
69     maxItems: 1
70
71   resets:
72     maxItems: 1
73
74 required:
75   - compatible
76   - reg
77   - interrupts
78   - clocks
79   - power-domains
80   - resets
81
82 allOf:
83   - $ref: usb-xhci.yaml
84
85   - if:
86       properties:
87         compatible:
88           contains:
89             enum:
90               - renesas,rzv2m-xhci
91     then:
92       properties:
93         clocks:
94           minItems: 2
95         clock-names:
96           minItems: 2
97       required:
98         - clock-names
99     else:
100       properties:
101         clocks:
102           maxItems: 1
103
104 unevaluatedProperties: false
105
106 examples:
107   - |
108     #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
109     #include <dt-bindings/interrupt-controller/arm-gic.h>
110     #include <dt-bindings/power/r8a7795-sysc.h>
111
112     xhci0: usb@ee000000 {
113         compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci";
114         reg = <0xee000000 0xc00>;
115         interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
116         clocks = <&cpg CPG_MOD 328>;
117         power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
118         resets = <&cpg 328>;
119     };