Documentation / devicetree / bindings / usb / renesas,usbhs.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/renesas,usbhs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas USBHS (HS-USB) controller

maintainers:
  - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>

properties:
  compatible:
    oneOf:
      - items:
          - const: renesas,usbhs-r7s72100 # RZ/A1
          - const: renesas,rza1-usbhs

      - items:
          - enum:
              - renesas,usbhs-r7s9210   # RZ/A2
          - const: renesas,rza2-usbhs

      - items:
          - enum:
              - renesas,usbhs-r9a07g043 # RZ/G2UL and RZ/Five
              - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
              - renesas,usbhs-r9a07g054 # RZ/V2L
          - const: renesas,rzg2l-usbhs

      - items:
          - enum:
              - renesas,usbhs-r8a7742  # RZ/G1H
              - renesas,usbhs-r8a7743  # RZ/G1M
              - renesas,usbhs-r8a7744  # RZ/G1N
              - renesas,usbhs-r8a7745  # RZ/G1E
              - renesas,usbhs-r8a77470 # RZ/G1C
              - renesas,usbhs-r8a7790  # R-Car H2
              - renesas,usbhs-r8a7791  # R-Car M2-W
              - renesas,usbhs-r8a7792  # R-Car V2H
              - renesas,usbhs-r8a7793  # R-Car M2-N
              - renesas,usbhs-r8a7794  # R-Car E2
          - const: renesas,rcar-gen2-usbhs

      - items:
          - enum:
              - renesas,usbhs-r8a774a1 # RZ/G2M
              - renesas,usbhs-r8a774b1 # RZ/G2N
              - renesas,usbhs-r8a774c0 # RZ/G2E
              - renesas,usbhs-r8a774e1 # RZ/G2H
              - renesas,usbhs-r8a7795  # R-Car H3
              - renesas,usbhs-r8a7796  # R-Car M3-W
              - renesas,usbhs-r8a77961 # R-Car M3-W+
              - renesas,usbhs-r8a77965 # R-Car M3-N
              - renesas,usbhs-r8a77990 # R-Car E3
              - renesas,usbhs-r8a77995 # R-Car D3
          - const: renesas,rcar-gen3-usbhs

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: USB 2.0 host
      - description: USB 2.0 peripheral
      - description: USB 2.0 clock selector

  interrupts:
    minItems: 1
    maxItems: 4

  renesas,buswait:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Integer to use BUSWAIT register.

  renesas,enable-gpio:
    maxItems: 1
    description: |
      gpio specifier to check GPIO determining if USB function should be
      enabled.

  phys:
    maxItems: 1

  phy-names:
    items:
      - const: usb

  dmas:
    minItems: 2
    maxItems: 4

  dma-names:
    minItems: 2
    items:
      - const: ch0
      - const: ch1
      - const: ch2
      - const: ch3

  dr_mode: true

  power-domains:
    maxItems: 1

  resets:
    minItems: 1
    items:
      - description: USB 2.0 host
      - description: USB 2.0 peripheral

required:
  - compatible
  - reg
  - clocks
  - interrupts

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,usbhs-r9a07g043
              - renesas,usbhs-r9a07g044
              - renesas,usbhs-r9a07g054
    then:
      properties:
        interrupts:
          items:
            - description: U2P_IXL_INT
            - description: U2P_INT_DMA[0]
            - description: U2P_INT_DMA[1]
            - description: U2P_INT_DMAERR
      required:
        - resets
    else:
      properties:
        interrupts:
          maxItems: 1

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/r8a7790-sysc.h>
 
    usbhs: usb@e6590000 {
        compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
        reg = <0xe6590000 0x100>;
        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cpg CPG_MOD 704>;
    };