xref: /linux/Documentation/devicetree/bindings/phy/rockchip,inno-usb2phy.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1978e9c3bSJohan Jonker# SPDX-License-Identifier: GPL-2.0
2978e9c3bSJohan Jonker%YAML 1.2
3978e9c3bSJohan Jonker---
40f48b0edSJohan Jonker$id: http://devicetree.org/schemas/phy/rockchip,inno-usb2phy.yaml#
5978e9c3bSJohan Jonker$schema: http://devicetree.org/meta-schemas/core.yaml#
6978e9c3bSJohan Jonker
7978e9c3bSJohan Jonkertitle: Rockchip USB2.0 phy with inno IP block
8978e9c3bSJohan Jonker
9978e9c3bSJohan Jonkermaintainers:
10978e9c3bSJohan Jonker  - Heiko Stuebner <heiko@sntech.de>
11978e9c3bSJohan Jonker
12978e9c3bSJohan Jonkerproperties:
13978e9c3bSJohan Jonker  compatible:
14978e9c3bSJohan Jonker    enum:
15978e9c3bSJohan Jonker      - rockchip,px30-usb2phy
16d78b5653SHeiko Stuebner      - rockchip,rk3036-usb2phy
1711683cecSJohan Jonker      - rockchip,rk3128-usb2phy
18978e9c3bSJohan Jonker      - rockchip,rk3228-usb2phy
1974478ab5STobias Schramm      - rockchip,rk3308-usb2phy
20978e9c3bSJohan Jonker      - rockchip,rk3328-usb2phy
21978e9c3bSJohan Jonker      - rockchip,rk3366-usb2phy
22978e9c3bSJohan Jonker      - rockchip,rk3399-usb2phy
23*abf55cdfSKever Yang      - rockchip,rk3562-usb2phy
248eff5b99SPeter Geis      - rockchip,rk3568-usb2phy
250217f4aeSFrank Wang      - rockchip,rk3576-usb2phy
26cb240921SSebastian Reichel      - rockchip,rk3588-usb2phy
27978e9c3bSJohan Jonker      - rockchip,rv1108-usb2phy
28978e9c3bSJohan Jonker
29978e9c3bSJohan Jonker  reg:
30978e9c3bSJohan Jonker    maxItems: 1
31978e9c3bSJohan Jonker
32978e9c3bSJohan Jonker  clock-output-names:
33978e9c3bSJohan Jonker    description:
34978e9c3bSJohan Jonker      The usb 480m output clock name.
35978e9c3bSJohan Jonker
36978e9c3bSJohan Jonker  "#clock-cells":
37978e9c3bSJohan Jonker    const: 0
38978e9c3bSJohan Jonker
39978e9c3bSJohan Jonker  clocks:
400217f4aeSFrank Wang    minItems: 1
410217f4aeSFrank Wang    maxItems: 3
42978e9c3bSJohan Jonker
43978e9c3bSJohan Jonker  clock-names:
440217f4aeSFrank Wang    minItems: 1
450217f4aeSFrank Wang    items:
460217f4aeSFrank Wang      - const: phyclk
470217f4aeSFrank Wang      - const: aclk
480217f4aeSFrank Wang      - const: aclk_slv
49978e9c3bSJohan Jonker
50978e9c3bSJohan Jonker  assigned-clocks:
51978e9c3bSJohan Jonker    description:
52978e9c3bSJohan Jonker      Phandle of the usb 480m clock.
53978e9c3bSJohan Jonker
54978e9c3bSJohan Jonker  assigned-clock-parents:
55978e9c3bSJohan Jonker    description:
56978e9c3bSJohan Jonker      Parent of the usb 480m clock.
57978e9c3bSJohan Jonker      Select between usb-phy output 480m and xin24m.
58978e9c3bSJohan Jonker      Refer to clk/clock-bindings.txt for generic clock consumer properties.
59978e9c3bSJohan Jonker
60978e9c3bSJohan Jonker  extcon:
61978e9c3bSJohan Jonker    description:
62978e9c3bSJohan Jonker      Phandle to the extcon device providing the cable state for the otg phy.
63978e9c3bSJohan Jonker
648eff5b99SPeter Geis  interrupts:
658eff5b99SPeter Geis    description: Muxed interrupt for both ports
668eff5b99SPeter Geis    maxItems: 1
678eff5b99SPeter Geis
68cb240921SSebastian Reichel  resets:
69cb240921SSebastian Reichel    maxItems: 2
70cb240921SSebastian Reichel
71cb240921SSebastian Reichel  reset-names:
72cb240921SSebastian Reichel    items:
73cb240921SSebastian Reichel      - const: phy
74cb240921SSebastian Reichel      - const: apb
75cb240921SSebastian Reichel
76978e9c3bSJohan Jonker  rockchip,usbgrf:
77978e9c3bSJohan Jonker    $ref: /schemas/types.yaml#/definitions/phandle
78978e9c3bSJohan Jonker    description:
79978e9c3bSJohan Jonker      Phandle to the syscon managing the 'usb general register files'.
80978e9c3bSJohan Jonker      When set the driver will request its phandle as one companion-grf
81978e9c3bSJohan Jonker      for some special SoCs (e.g rv1108).
82978e9c3bSJohan Jonker
83978e9c3bSJohan Jonker  host-port:
84978e9c3bSJohan Jonker    type: object
85978e9c3bSJohan Jonker    additionalProperties: false
86978e9c3bSJohan Jonker
87978e9c3bSJohan Jonker    properties:
88978e9c3bSJohan Jonker      "#phy-cells":
89978e9c3bSJohan Jonker        const: 0
90978e9c3bSJohan Jonker
91978e9c3bSJohan Jonker      interrupts:
92978e9c3bSJohan Jonker        description: host linestate interrupt
938eff5b99SPeter Geis        maxItems: 1
94978e9c3bSJohan Jonker
95978e9c3bSJohan Jonker      interrupt-names:
96978e9c3bSJohan Jonker        const: linestate
97978e9c3bSJohan Jonker
98978e9c3bSJohan Jonker      phy-supply:
99978e9c3bSJohan Jonker        description:
100978e9c3bSJohan Jonker          Phandle to a regulator that provides power to VBUS.
101978e9c3bSJohan Jonker          See ./phy-bindings.txt for details.
102978e9c3bSJohan Jonker
103978e9c3bSJohan Jonker    required:
104978e9c3bSJohan Jonker      - "#phy-cells"
105978e9c3bSJohan Jonker
106978e9c3bSJohan Jonker  otg-port:
107978e9c3bSJohan Jonker    type: object
108978e9c3bSJohan Jonker    additionalProperties: false
109978e9c3bSJohan Jonker
110978e9c3bSJohan Jonker    properties:
111978e9c3bSJohan Jonker      "#phy-cells":
112978e9c3bSJohan Jonker        const: 0
113978e9c3bSJohan Jonker
114978e9c3bSJohan Jonker      interrupts:
115978e9c3bSJohan Jonker        minItems: 1
116978e9c3bSJohan Jonker        maxItems: 3
117978e9c3bSJohan Jonker
118978e9c3bSJohan Jonker      interrupt-names:
119978e9c3bSJohan Jonker        oneOf:
120978e9c3bSJohan Jonker          - const: linestate
121978e9c3bSJohan Jonker          - const: otg-mux
122978e9c3bSJohan Jonker          - items:
123978e9c3bSJohan Jonker              - const: otg-bvalid
124978e9c3bSJohan Jonker              - const: otg-id
125978e9c3bSJohan Jonker              - const: linestate
126978e9c3bSJohan Jonker
127978e9c3bSJohan Jonker      phy-supply:
128978e9c3bSJohan Jonker        description:
129978e9c3bSJohan Jonker          Phandle to a regulator that provides power to VBUS.
130978e9c3bSJohan Jonker          See ./phy-bindings.txt for details.
131978e9c3bSJohan Jonker
132978e9c3bSJohan Jonker    required:
133978e9c3bSJohan Jonker      - "#phy-cells"
134978e9c3bSJohan Jonker
135978e9c3bSJohan Jonkerrequired:
136978e9c3bSJohan Jonker  - compatible
137978e9c3bSJohan Jonker  - reg
138978e9c3bSJohan Jonker  - clock-output-names
139978e9c3bSJohan Jonker  - "#clock-cells"
140cb240921SSebastian Reichel
141cb240921SSebastian ReichelanyOf:
142cb240921SSebastian Reichel  - required:
143978e9c3bSJohan Jonker      - otg-port
144cb240921SSebastian Reichel  - required:
145cb240921SSebastian Reichel      - host-port
146978e9c3bSJohan Jonker
1478eff5b99SPeter GeisallOf:
1488eff5b99SPeter Geis  - if:
1498eff5b99SPeter Geis      properties:
1508eff5b99SPeter Geis        compatible:
1518eff5b99SPeter Geis          contains:
152cb240921SSebastian Reichel            enum:
153cb240921SSebastian Reichel              - rockchip,rk3568-usb2phy
154cb240921SSebastian Reichel              - rockchip,rk3588-usb2phy
1558eff5b99SPeter Geis
1568eff5b99SPeter Geis    then:
1578eff5b99SPeter Geis      properties:
1588eff5b99SPeter Geis        host-port:
1598eff5b99SPeter Geis          properties:
1608eff5b99SPeter Geis            interrupts: false
1618eff5b99SPeter Geis
1628eff5b99SPeter Geis        otg-port:
1638eff5b99SPeter Geis          properties:
1648eff5b99SPeter Geis            interrupts: false
1658eff5b99SPeter Geis
1668eff5b99SPeter Geis      required:
1678eff5b99SPeter Geis        - interrupts
1688eff5b99SPeter Geis
1698eff5b99SPeter Geis    else:
1708eff5b99SPeter Geis      properties:
1718eff5b99SPeter Geis        interrupts: false
1728eff5b99SPeter Geis
1738eff5b99SPeter Geis        host-port:
1748eff5b99SPeter Geis          required:
1758eff5b99SPeter Geis            - interrupts
1768eff5b99SPeter Geis            - interrupt-names
1778eff5b99SPeter Geis
1788eff5b99SPeter Geis        otg-port:
1798eff5b99SPeter Geis          required:
1808eff5b99SPeter Geis            - interrupts
1818eff5b99SPeter Geis            - interrupt-names
1828eff5b99SPeter Geis
1830217f4aeSFrank Wang  - if:
1840217f4aeSFrank Wang      properties:
1850217f4aeSFrank Wang        compatible:
1860217f4aeSFrank Wang          contains:
1870217f4aeSFrank Wang            enum:
1880217f4aeSFrank Wang              - rockchip,px30-usb2phy
189d78b5653SHeiko Stuebner              - rockchip,rk3036-usb2phy
1900217f4aeSFrank Wang              - rockchip,rk3128-usb2phy
1910217f4aeSFrank Wang              - rockchip,rk3228-usb2phy
1920217f4aeSFrank Wang              - rockchip,rk3308-usb2phy
1930217f4aeSFrank Wang              - rockchip,rk3328-usb2phy
1940217f4aeSFrank Wang              - rockchip,rk3366-usb2phy
1950217f4aeSFrank Wang              - rockchip,rk3399-usb2phy
196*abf55cdfSKever Yang              - rockchip,rk3562-usb2phy
1970217f4aeSFrank Wang              - rockchip,rk3568-usb2phy
1980217f4aeSFrank Wang              - rockchip,rk3588-usb2phy
1990217f4aeSFrank Wang              - rockchip,rv1108-usb2phy
2000217f4aeSFrank Wang    then:
2010217f4aeSFrank Wang      properties:
2020217f4aeSFrank Wang        clocks:
2030217f4aeSFrank Wang          maxItems: 1
2040217f4aeSFrank Wang        clock-names:
2050217f4aeSFrank Wang          maxItems: 1
2060217f4aeSFrank Wang
2070217f4aeSFrank Wang  - if:
2080217f4aeSFrank Wang      properties:
2090217f4aeSFrank Wang        compatible:
2100217f4aeSFrank Wang          contains:
2110217f4aeSFrank Wang            enum:
2120217f4aeSFrank Wang              - rockchip,rk3576-usb2phy
2130217f4aeSFrank Wang    then:
2140217f4aeSFrank Wang      properties:
2150217f4aeSFrank Wang        clocks:
2160217f4aeSFrank Wang          minItems: 3
2170217f4aeSFrank Wang        clock-names:
2180217f4aeSFrank Wang          minItems: 3
2190217f4aeSFrank Wang
220978e9c3bSJohan JonkeradditionalProperties: false
221978e9c3bSJohan Jonker
222978e9c3bSJohan Jonkerexamples:
223978e9c3bSJohan Jonker  - |
224978e9c3bSJohan Jonker    #include <dt-bindings/clock/rk3399-cru.h>
225978e9c3bSJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
226978e9c3bSJohan Jonker    #include <dt-bindings/interrupt-controller/irq.h>
227e71ccdffSJohan Jonker    u2phy0: usb2phy@e450 {
228978e9c3bSJohan Jonker      compatible = "rockchip,rk3399-usb2phy";
229978e9c3bSJohan Jonker      reg = <0xe450 0x10>;
230978e9c3bSJohan Jonker      clocks = <&cru SCLK_USB2PHY0_REF>;
231978e9c3bSJohan Jonker      clock-names = "phyclk";
232978e9c3bSJohan Jonker      clock-output-names = "clk_usbphy0_480m";
233978e9c3bSJohan Jonker      #clock-cells = <0>;
234978e9c3bSJohan Jonker
235978e9c3bSJohan Jonker      u2phy0_host: host-port {
236978e9c3bSJohan Jonker        interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
237978e9c3bSJohan Jonker        interrupt-names = "linestate";
238e71ccdffSJohan Jonker        #phy-cells = <0>;
239978e9c3bSJohan Jonker      };
240978e9c3bSJohan Jonker
241978e9c3bSJohan Jonker      u2phy0_otg: otg-port {
242978e9c3bSJohan Jonker        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
243978e9c3bSJohan Jonker                     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
244978e9c3bSJohan Jonker                     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
245978e9c3bSJohan Jonker        interrupt-names = "otg-bvalid", "otg-id", "linestate";
246e71ccdffSJohan Jonker        #phy-cells = <0>;
247978e9c3bSJohan Jonker      };
248978e9c3bSJohan Jonker    };
249