Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
  1# SPDX-License-Identifier: GPL-2.0
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/phy/rockchip,inno-usb2phy.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Rockchip USB2.0 phy with inno IP block
  8
  9maintainers:
 10  - Heiko Stuebner <heiko@sntech.de>
 11
 12properties:
 13  compatible:
 14    enum:
 15      - rockchip,px30-usb2phy
 16      - rockchip,rk3128-usb2phy
 17      - rockchip,rk3228-usb2phy
 18      - rockchip,rk3308-usb2phy
 19      - rockchip,rk3328-usb2phy
 20      - rockchip,rk3366-usb2phy
 21      - rockchip,rk3399-usb2phy
 22      - rockchip,rk3568-usb2phy
 23      - rockchip,rk3588-usb2phy
 24      - rockchip,rv1108-usb2phy
 25
 26  reg:
 27    maxItems: 1
 28
 29  clock-output-names:
 30    description:
 31      The usb 480m output clock name.
 32
 33  "#clock-cells":
 34    const: 0
 35
 36  clocks:
 37    maxItems: 1
 38
 39  clock-names:
 40    const: phyclk
 41
 42  assigned-clocks:
 43    description:
 44      Phandle of the usb 480m clock.
 45
 46  assigned-clock-parents:
 47    description:
 48      Parent of the usb 480m clock.
 49      Select between usb-phy output 480m and xin24m.
 50      Refer to clk/clock-bindings.txt for generic clock consumer properties.
 51
 52  extcon:
 53    description:
 54      Phandle to the extcon device providing the cable state for the otg phy.
 55
 56  interrupts:
 57    description: Muxed interrupt for both ports
 58    maxItems: 1
 59
 60  resets:
 61    maxItems: 2
 62
 63  reset-names:
 64    items:
 65      - const: phy
 66      - const: apb
 67
 68  rockchip,usbgrf:
 69    $ref: /schemas/types.yaml#/definitions/phandle
 70    description:
 71      Phandle to the syscon managing the 'usb general register files'.
 72      When set the driver will request its phandle as one companion-grf
 73      for some special SoCs (e.g rv1108).
 74
 75  host-port:
 76    type: object
 77    additionalProperties: false
 78
 79    properties:
 80      "#phy-cells":
 81        const: 0
 82
 83      interrupts:
 84        description: host linestate interrupt
 85        maxItems: 1
 86
 87      interrupt-names:
 88        const: linestate
 89
 90      phy-supply:
 91        description:
 92          Phandle to a regulator that provides power to VBUS.
 93          See ./phy-bindings.txt for details.
 94
 95    required:
 96      - "#phy-cells"
 97
 98  otg-port:
 99    type: object
100    additionalProperties: false
101
102    properties:
103      "#phy-cells":
104        const: 0
105
106      interrupts:
107        minItems: 1
108        maxItems: 3
109
110      interrupt-names:
111        oneOf:
112          - const: linestate
113          - const: otg-mux
114          - items:
115              - const: otg-bvalid
116              - const: otg-id
117              - const: linestate
118
119      phy-supply:
120        description:
121          Phandle to a regulator that provides power to VBUS.
122          See ./phy-bindings.txt for details.
123
124    required:
125      - "#phy-cells"
126
127required:
128  - compatible
129  - reg
130  - clock-output-names
131  - "#clock-cells"
132
133anyOf:
134  - required:
135      - otg-port
136  - required:
137      - host-port
138
139allOf:
140  - if:
141      properties:
142        compatible:
143          contains:
144            enum:
145              - rockchip,rk3568-usb2phy
146              - rockchip,rk3588-usb2phy
147
148    then:
149      properties:
150        host-port:
151          properties:
152            interrupts: false
153
154        otg-port:
155          properties:
156            interrupts: false
157
158      required:
159        - interrupts
160
161    else:
162      properties:
163        interrupts: false
164
165        host-port:
166          required:
167            - interrupts
168            - interrupt-names
169
170        otg-port:
171          required:
172            - interrupts
173            - interrupt-names
174
175additionalProperties: false
176
177examples:
178  - |
179    #include <dt-bindings/clock/rk3399-cru.h>
180    #include <dt-bindings/interrupt-controller/arm-gic.h>
181    #include <dt-bindings/interrupt-controller/irq.h>
182    u2phy0: usb2phy@e450 {
183      compatible = "rockchip,rk3399-usb2phy";
184      reg = <0xe450 0x10>;
185      clocks = <&cru SCLK_USB2PHY0_REF>;
186      clock-names = "phyclk";
187      clock-output-names = "clk_usbphy0_480m";
188      #clock-cells = <0>;
189
190      u2phy0_host: host-port {
191        interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
192        interrupt-names = "linestate";
193        #phy-cells = <0>;
194      };
195
196      u2phy0_otg: otg-port {
197        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
198                     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
199                     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
200        interrupt-names = "otg-bvalid", "otg-id", "linestate";
201        #phy-cells = <0>;
202      };
203    };