| # SPDX-License-Identifier: GPL-2.0-only |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/usb/renesas,usb3-peri.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Renesas USB 3.0 Peripheral controller |
| |
| maintainers: |
| - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - renesas,r8a774a1-usb3-peri # RZ/G2M |
| - renesas,r8a774b1-usb3-peri # RZ/G2N |
| - renesas,r8a774c0-usb3-peri # RZ/G2E |
| - renesas,r8a774e1-usb3-peri # RZ/G2H |
| - renesas,r8a7795-usb3-peri # R-Car H3 |
| - renesas,r8a7796-usb3-peri # R-Car M3-W |
| - renesas,r8a77961-usb3-peri # R-Car M3-W+ |
| - renesas,r8a77965-usb3-peri # R-Car M3-N |
| - renesas,r8a77990-usb3-peri # R-Car E3 |
| - const: renesas,rcar-gen3-usb3-peri |
| |
| - items: |
| - enum: |
| - renesas,r9a09g011-usb3-peri # RZ/V2M |
| - const: renesas,rzv2m-usb3-peri |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| minItems: 1 |
| items: |
| - description: Combined interrupt for DMA, SYS and ERR |
| - description: Dual Role Device (DRD) |
| - description: Battery Charging |
| - description: Global Purpose Input |
| |
| interrupt-names: |
| minItems: 1 |
| items: |
| - const: all_p |
| - const: drd |
| - const: bc |
| - const: gpi |
| |
| clocks: |
| minItems: 1 |
| items: |
| - description: Main clock |
| - description: Register access clock |
| |
| clock-names: |
| minItems: 1 |
| items: |
| - const: aclk |
| - const: reg |
| |
| phys: |
| maxItems: 1 |
| |
| phy-names: |
| const: usb |
| |
| power-domains: |
| maxItems: 1 |
| |
| resets: |
| minItems: 1 |
| items: |
| - description: Peripheral reset |
| - description: DRD reset |
| |
| reset-names: |
| items: |
| - const: aresetn_p |
| - const: drd_reset |
| |
| usb-role-switch: |
| $ref: /schemas/types.yaml#/definitions/flag |
| description: Support role switch. |
| |
| companion: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: phandle of a companion. |
| |
| ports: |
| $ref: /schemas/graph.yaml#/properties/ports |
| description: | |
| any connector to the data bus of this controller should be modelled |
| using the OF graph bindings specified, if the "usb-role-switch" |
| property is used. |
| |
| properties: |
| port@0: |
| $ref: /schemas/graph.yaml#/properties/port |
| description: High Speed (HS) data bus. |
| |
| port@1: |
| $ref: /schemas/graph.yaml#/properties/port |
| description: Super Speed (SS) data bus. |
| |
| required: |
| - port@0 |
| - port@1 |
| |
| required: |
| - compatible |
| - interrupts |
| - clocks |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - renesas,rzv2m-usb3-peri |
| then: |
| properties: |
| clocks: |
| minItems: 2 |
| clock-names: |
| minItems: 2 |
| interrupts: |
| minItems: 4 |
| interrupt-names: |
| minItems: 4 |
| resets: |
| minItems: 2 |
| required: |
| - clock-names |
| - interrupt-names |
| - resets |
| - reset-names |
| else: |
| properties: |
| clocks: |
| maxItems: 1 |
| interrupts: |
| maxItems: 1 |
| resets: |
| maxItems: 1 |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/r8a774c0-cpg-mssr.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/power/r8a774c0-sysc.h> |
| |
| usb3_peri0: usb@ee020000 { |
| compatible = "renesas,r8a774c0-usb3-peri", "renesas,rcar-gen3-usb3-peri"; |
| reg = <0xee020000 0x400>; |
| interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&cpg CPG_MOD 328>; |
| companion = <&xhci0>; |
| usb-role-switch; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| port@0 { |
| reg = <0>; |
| usb3_hs_ep: endpoint { |
| remote-endpoint = <&hs_ep>; |
| }; |
| }; |
| port@1 { |
| reg = <1>; |
| usb3_role_switch: endpoint { |
| remote-endpoint = <&hd3ss3220_out_ep>; |
| }; |
| }; |
| }; |
| }; |