xref: /linux/Documentation/devicetree/bindings/phy/renesas,usb2-phy.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/phy/renesas,usb2-phy.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas R-Car generation 3 USB 2.0 PHY
8
9maintainers:
10  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
11
12properties:
13  compatible:
14    oneOf:
15      - items:
16          - enum:
17              - renesas,usb2-phy-r8a77470  # RZ/G1C
18              - renesas,usb2-phy-r9a08g045 # RZ/G3S
19              - renesas,usb2-phy-r9a08g046 # RZ/G3L
20              - renesas,usb2-phy-r9a09g057 # RZ/V2H(P)
21
22      - items:
23          - enum:
24              - renesas,usb2-phy-r7s9210  # RZ/A2
25              - renesas,usb2-phy-r8a774a1 # RZ/G2M
26              - renesas,usb2-phy-r8a774b1 # RZ/G2N
27              - renesas,usb2-phy-r8a774c0 # RZ/G2E
28              - renesas,usb2-phy-r8a774e1 # RZ/G2H
29              - renesas,usb2-phy-r8a7795  # R-Car H3
30              - renesas,usb2-phy-r8a7796  # R-Car M3-W
31              - renesas,usb2-phy-r8a77961 # R-Car M3-W+
32              - renesas,usb2-phy-r8a77965 # R-Car M3-N
33              - renesas,usb2-phy-r8a77990 # R-Car E3
34              - renesas,usb2-phy-r8a77995 # R-Car D3
35          - const: renesas,rcar-gen3-usb2-phy
36
37      - items:
38          - enum:
39              - renesas,usb2-phy-r9a07g043 # RZ/G2UL
40              - renesas,usb2-phy-r9a07g044 # RZ/G2{L,LC}
41              - renesas,usb2-phy-r9a07g054 # RZ/V2L
42          - const: renesas,rzg2l-usb2-phy
43
44      - items:
45          - enum:
46              - renesas,usb2-phy-r9a09g047 # RZ/G3E
47              - renesas,usb2-phy-r9a09g056 # RZ/V2N
48          - const: renesas,usb2-phy-r9a09g057
49
50      - const: renesas,usb2-phy-r9a09g077 # RZ/T2H
51
52      - items:
53          - const: renesas,usb2-phy-r9a09g087 # RZ/N2H
54          - const: renesas,usb2-phy-r9a09g077
55
56  reg:
57    maxItems: 1
58
59  clocks:
60    minItems: 1
61    maxItems: 2
62
63  clock-names:
64    minItems: 1
65    items:
66      - const: fck
67      - const: usb_x1
68
69  '#phy-cells':
70    enum: [0, 1]  # and 0 is deprecated.
71    description: |
72      The phandle's argument in the PHY specifier is the INT_STATUS bit of
73      controller.
74      - 1 = USBH_INTA (OHCI)
75      - 2 = USBH_INTB (EHCI)
76      - 3 = UCOM_INT (OTG and BC)
77
78  interrupts:
79    maxItems: 1
80
81  power-domains:
82    maxItems: 1
83
84  resets:
85    minItems: 1
86    items:
87      - description: reset of USB 2.0 host side
88      - description: reset of USB 2.0 peripheral side
89
90  vbus-supply:
91    description: |
92      Phandle to a regulator that provides power to the VBUS. This regulator
93      will be managed during the PHY power on/off sequence.
94
95  vbus-regulator:
96    $ref: /schemas/regulator/regulator.yaml#
97    description: USB VBUS internal regulator
98    type: object
99    unevaluatedProperties: false
100
101  renesas,no-otg-pins:
102    $ref: /schemas/types.yaml#/definitions/flag
103    description: |
104      specify when a board does not provide proper otg pins.
105
106  dr_mode: true
107
108  mux-states:
109    description:
110      phandle to a mux controller node that select the source for USB VBUS.
111    maxItems: 1
112
113if:
114  properties:
115    compatible:
116      contains:
117        const: renesas,usb2-phy-r7s9210
118then:
119  required:
120    - clock-names
121
122required:
123  - compatible
124  - reg
125  - clocks
126  - '#phy-cells'
127
128allOf:
129  - if:
130      properties:
131        compatible:
132          contains:
133            enum:
134              - renesas,usb2-phy-r9a09g057
135              - renesas,usb2-phy-r9a08g045
136              - renesas,usb2-phy-r9a08g046
137              - renesas,rzg2l-usb2-phy
138    then:
139      properties:
140        clocks:
141          minItems: 2
142      required:
143        - resets
144
145  - if:
146      properties:
147        compatible:
148          contains:
149            const: renesas,usb2-phy-r9a09g077
150    then:
151      properties:
152        clocks:
153          minItems: 2
154        resets: false
155
156additionalProperties: false
157
158examples:
159  - |
160    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
161    #include <dt-bindings/interrupt-controller/arm-gic.h>
162    #include <dt-bindings/power/r8a7795-sysc.h>
163
164    usb-phy@ee080200 {
165        compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
166        reg = <0xee080200 0x700>;
167        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
168        clocks = <&cpg CPG_MOD 703>;
169        #phy-cells = <1>;
170    };
171
172    usb-phy@ee0a0200 {
173        compatible = "renesas,usb2-phy-r8a7795", "renesas,rcar-gen3-usb2-phy";
174        reg = <0xee0a0200 0x700>;
175        clocks = <&cpg CPG_MOD 702>;
176        #phy-cells = <1>;
177    };
178