162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/usb/renesas,usb-xhci.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Renesas USB xHCI controllers
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
1162306a36Sopenharmony_ci  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - items:
1762306a36Sopenharmony_ci          - enum:
1862306a36Sopenharmony_ci              - renesas,xhci-r8a7742 # RZ/G1H
1962306a36Sopenharmony_ci              - renesas,xhci-r8a7743 # RZ/G1M
2062306a36Sopenharmony_ci              - renesas,xhci-r8a7744 # RZ/G1N
2162306a36Sopenharmony_ci              - renesas,xhci-r8a7790 # R-Car H2
2262306a36Sopenharmony_ci              - renesas,xhci-r8a7791 # R-Car M2-W
2362306a36Sopenharmony_ci              - renesas,xhci-r8a7793 # R-Car M2-N
2462306a36Sopenharmony_ci          - const: renesas,rcar-gen2-xhci # R-Car Gen2 and RZ/G1
2562306a36Sopenharmony_ci      - items:
2662306a36Sopenharmony_ci          - enum:
2762306a36Sopenharmony_ci              - renesas,xhci-r8a774a1 # RZ/G2M
2862306a36Sopenharmony_ci              - renesas,xhci-r8a774b1 # RZ/G2N
2962306a36Sopenharmony_ci              - renesas,xhci-r8a774c0 # RZ/G2E
3062306a36Sopenharmony_ci              - renesas,xhci-r8a774e1 # RZ/G2H
3162306a36Sopenharmony_ci              - renesas,xhci-r8a7795  # R-Car H3
3262306a36Sopenharmony_ci              - renesas,xhci-r8a7796  # R-Car M3-W
3362306a36Sopenharmony_ci              - renesas,xhci-r8a77961 # R-Car M3-W+
3462306a36Sopenharmony_ci              - renesas,xhci-r8a77965 # R-Car M3-N
3562306a36Sopenharmony_ci              - renesas,xhci-r8a77990 # R-Car E3
3662306a36Sopenharmony_ci          - const: renesas,rcar-gen3-xhci # R-Car Gen3 and RZ/G2
3762306a36Sopenharmony_ci      - items:
3862306a36Sopenharmony_ci          - enum:
3962306a36Sopenharmony_ci              - renesas,r9a09g011-xhci # RZ/V2M
4062306a36Sopenharmony_ci              - renesas,r9a09g055-xhci # RZ/V2MA
4162306a36Sopenharmony_ci          - const: renesas,rzv2m-xhci  # RZ/{V2M, V2MA}
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  reg:
4462306a36Sopenharmony_ci    maxItems: 1
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  interrupts:
4762306a36Sopenharmony_ci    maxItems: 1
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  clocks:
5062306a36Sopenharmony_ci    minItems: 1
5162306a36Sopenharmony_ci    items:
5262306a36Sopenharmony_ci      - description: Main clock for host
5362306a36Sopenharmony_ci      - description: Register access clock
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  clock-names:
5662306a36Sopenharmony_ci    minItems: 1
5762306a36Sopenharmony_ci    items:
5862306a36Sopenharmony_ci      - const: axi
5962306a36Sopenharmony_ci      - const: reg
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  phys:
6262306a36Sopenharmony_ci    maxItems: 1
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  phy-names:
6562306a36Sopenharmony_ci    items:
6662306a36Sopenharmony_ci      - const: usb
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  power-domains:
6962306a36Sopenharmony_ci    maxItems: 1
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci  resets:
7262306a36Sopenharmony_ci    maxItems: 1
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cirequired:
7562306a36Sopenharmony_ci  - compatible
7662306a36Sopenharmony_ci  - reg
7762306a36Sopenharmony_ci  - interrupts
7862306a36Sopenharmony_ci  - clocks
7962306a36Sopenharmony_ci  - power-domains
8062306a36Sopenharmony_ci  - resets
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciallOf:
8362306a36Sopenharmony_ci  - $ref: usb-xhci.yaml
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci  - if:
8662306a36Sopenharmony_ci      properties:
8762306a36Sopenharmony_ci        compatible:
8862306a36Sopenharmony_ci          contains:
8962306a36Sopenharmony_ci            enum:
9062306a36Sopenharmony_ci              - renesas,rzv2m-xhci
9162306a36Sopenharmony_ci    then:
9262306a36Sopenharmony_ci      properties:
9362306a36Sopenharmony_ci        clocks:
9462306a36Sopenharmony_ci          minItems: 2
9562306a36Sopenharmony_ci        clock-names:
9662306a36Sopenharmony_ci          minItems: 2
9762306a36Sopenharmony_ci      required:
9862306a36Sopenharmony_ci        - clock-names
9962306a36Sopenharmony_ci    else:
10062306a36Sopenharmony_ci      properties:
10162306a36Sopenharmony_ci        clocks:
10262306a36Sopenharmony_ci          maxItems: 1
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciunevaluatedProperties: false
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciexamples:
10762306a36Sopenharmony_ci  - |
10862306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a7795-cpg-mssr.h>
10962306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
11062306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7795-sysc.h>
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci    xhci0: usb@ee000000 {
11362306a36Sopenharmony_ci        compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci";
11462306a36Sopenharmony_ci        reg = <0xee000000 0xc00>;
11562306a36Sopenharmony_ci        interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
11662306a36Sopenharmony_ci        clocks = <&cpg CPG_MOD 328>;
11762306a36Sopenharmony_ci        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
11862306a36Sopenharmony_ci        resets = <&cpg 328>;
11962306a36Sopenharmony_ci    };
120