blob: ff625600d9af8ce8a03969a8a0c4a0657f18af3b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/renesas,rzv2m-usb3drd.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas RZ/V2M USB 3.1 DRD controller
8
9maintainers:
10 - Biju Das <biju.das.jz@bp.renesas.com>
11
12description: |
13 The RZ/V2{M, MA} USB3.1 DRD module supports the following functions
14 * Role swapping function by the ID pin of the Micro-AB receptacle
15 * Battery Charging Specification Revision 1.2
16
17properties:
18 compatible:
19 items:
20 - enum:
21 - renesas,r9a09g011-usb3drd # RZ/V2M
22 - renesas,r9a09g055-usb3drd # RZ/V2MA
23 - const: renesas,rzv2m-usb3drd
24
25 reg:
26 maxItems: 1
27
28 interrupts:
29 items:
30 - description: Dual Role Device (DRD)
31 - description: Battery Charging
32 - description: Global Purpose Input
33
34 interrupt-names:
35 items:
36 - const: drd
37 - const: bc
38 - const: gpi
39
40 clocks:
41 items:
42 - description: Peripheral AXI clock
43 - description: APB clock
44
45 clock-names:
46 items:
47 - const: axi
48 - const: reg
49
50 power-domains:
51 maxItems: 1
52
53 resets:
54 maxItems: 1
55
56 ranges: true
57
58 '#address-cells':
59 enum: [ 1, 2 ]
60
61 '#size-cells':
62 enum: [ 1, 2 ]
63
64patternProperties:
65 "^usb3peri@[0-9a-f]+$":
66 type: object
67 $ref: /schemas/usb/renesas,usb3-peri.yaml
68
69 "^usb@[0-9a-f]+$":
70 type: object
71 $ref: renesas,usb-xhci.yaml#
72
73required:
74 - compatible
75 - reg
76 - interrupts
77 - interrupt-names
78 - clocks
79 - clock-names
80 - power-domains
81 - resets
82
83additionalProperties: false
84
85examples:
86 - |
87 #include <dt-bindings/clock/r9a09g011-cpg.h>
88 #include <dt-bindings/interrupt-controller/arm-gic.h>
89
90 usb3drd: usb@85070400 {
91 compatible = "renesas,r9a09g011-usb3drd", "renesas,rzv2m-usb3drd";
92 reg = <0x85070400 0x100>;
93 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
94 <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
95 <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
96 interrupt-names = "drd", "bc", "gpi";
97 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
98 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
99 clock-names = "axi", "reg";
100 power-domains = <&cpg>;
101 resets = <&cpg R9A09G011_USB_DRD_RESET>;
102 ranges;
103 #address-cells = <1>;
104 #size-cells = <1>;
105
106 usb3host: usb@85060000 {
107 compatible = "renesas,r9a09g011-xhci",
108 "renesas,rzv2m-xhci";
109 reg = <0x85060000 0x2000>;
110 interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
111 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_H>,
112 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
113 clock-names = "axi", "reg";
114 power-domains = <&cpg>;
115 resets = <&cpg R9A09G011_USB_ARESETN_H>;
116 };
117
118 usb3peri: usb3peri@85070000 {
119 compatible = "renesas,r9a09g011-usb3-peri",
120 "renesas,rzv2m-usb3-peri";
121 reg = <0x85070000 0x400>;
122 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
123 clocks = <&cpg CPG_MOD R9A09G011_USB_ACLK_P>,
124 <&cpg CPG_MOD R9A09G011_USB_PCLK>;
125 clock-names = "axi", "reg";
126 power-domains = <&cpg>;
127 resets = <&cpg R9A09G011_USB_ARESETN_P>;
128 };
129 };