← Documents Documentation/devicetree/bindings/usb/renesas,usbhs.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Renesas USBHS Controller

Renesas USBHS의 SoC별 compatible, clock·interrupt·DMA 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/usb/renesas,usbhs.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

renesas,usbhs.yaml:1-183

Renesas USBHS의 SoC별 compatible, clock·interrupt·DMA 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, DMA, PDO, graph endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/renesas,usbhs.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Renesas USBHS (HS-USB) controller
8
9 maintainers:
10 - Yoshihiro Shimoda <[email protected]>
11
12 properties:
13 compatible:
14 oneOf:
15 - items:
16 - const: renesas,usbhs-r7s72100 # RZ/A1
17 - const: renesas,rza1-usbhs
18
19 - items:
20 - enum:
21 - renesas,usbhs-r7s9210 # RZ/A2
22 - const: renesas,rza2-usbhs
23
24 - items:
25 - enum:
26 - renesas,usbhs-r9a07g043 # RZ/G2UL and RZ/Five
27 - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
28 - renesas,usbhs-r9a07g054 # RZ/V2L
29 - renesas,usbhs-r9a08g045 # RZ/G3S
30 - renesas,usbhs-r9a09g056 # RZ/V2N
31 - renesas,usbhs-r9a09g057 # RZ/V2H(P)
32 - const: renesas,rzg2l-usbhs
33
34 - items:
35 - enum:
36 - renesas,usbhs-r8a7742 # RZ/G1H
37 - renesas,usbhs-r8a7743 # RZ/G1M
38 - renesas,usbhs-r8a7744 # RZ/G1N
39 - renesas,usbhs-r8a7745 # RZ/G1E
40 - renesas,usbhs-r8a77470 # RZ/G1C
41 - renesas,usbhs-r8a7790 # R-Car H2
42 - renesas,usbhs-r8a7791 # R-Car M2-W
43 - renesas,usbhs-r8a7792 # R-Car V2H
44 - renesas,usbhs-r8a7793 # R-Car M2-N
45 - renesas,usbhs-r8a7794 # R-Car E2
46 - const: renesas,rcar-gen2-usbhs
47
48 - items:
49 - enum:
50 - renesas,usbhs-r8a774a1 # RZ/G2M
51 - renesas,usbhs-r8a774b1 # RZ/G2N
52 - renesas,usbhs-r8a774c0 # RZ/G2E
53 - renesas,usbhs-r8a774e1 # RZ/G2H
54 - renesas,usbhs-r8a7795 # R-Car H3
55 - renesas,usbhs-r8a7796 # R-Car M3-W
56 - renesas,usbhs-r8a77961 # R-Car M3-W+
57 - renesas,usbhs-r8a77965 # R-Car M3-N
58 - renesas,usbhs-r8a77990 # R-Car E3
59 - renesas,usbhs-r8a77995 # R-Car D3
60 - const: renesas,rcar-gen3-usbhs
61
62 - const: renesas,usbhs-r9a09g077 # RZ/T2H
63
64 - items:
65 - const: renesas,usbhs-r9a09g087 # RZ/N2H
66 - const: renesas,usbhs-r9a09g077 # RZ/T2H
67
68 reg:
69 maxItems: 1
70
71 clocks:
72 minItems: 1
73 items:
74 - description: USB 2.0 host
75 - description: USB 2.0 peripheral
76 - description: USB 2.0 clock selector
77
78 interrupts:
79 minItems: 1
80 maxItems: 4
81
82 renesas,buswait:
83 $ref: /schemas/types.yaml#/definitions/uint32
84 description: |
85 Integer to use BUSWAIT register.
86
87 renesas,enable-gpio:
88 deprecated: true
89 maxItems: 1
90
91 renesas,enable-gpios:
92 maxItems: 1
93 description: |
94 gpio specifier to check GPIO determining if USB function should be
95 enabled.
96
97 phys:
98 maxItems: 1
99
100 phy-names:
101 items:
102 - const: usb
103
104 dmas:
105 minItems: 2
106 maxItems: 4
107
108 dma-names:
109 minItems: 2
110 items:
111 - const: ch0
112 - const: ch1
113 - const: ch2
114 - const: ch3
115
116 dr_mode: true
117
118 power-domains:
119 maxItems: 1
120
121 resets:
122 minItems: 1
123 items:
124 - description: USB 2.0 host
125 - description: USB 2.0 peripheral
126
127 required:
128 - compatible
129 - reg
130 - clocks
131 - interrupts
132
133 allOf:
134 - if:
135 properties:
136 compatible:
137 contains:
138 const: renesas,rzg2l-usbhs
139 then:
140 properties:
141 interrupts:
142 items:
143 - description: U2P_IXL_INT
144 - description: U2P_INT_DMA[0]
145 - description: U2P_INT_DMA[1]
146 - description: U2P_INT_DMAERR
147 required:
148 - resets
149 else:
150 if:
151 properties:
152 compatible:
153 contains:
154 const: renesas,usbhs-r9a09g077
155 then:
156 properties:
157 resets: false
158 clocks:
159 maxItems: 1
160 interrupts:
161 items:
162 - description: USB function interrupt USB_FI
163 - description: USB function DMA0 transmit completion interrupt USB_FDMA0
164 - description: USB function DMA1 transmit completion interrupt USB_FDMA1
165 else:
166 properties:
167 interrupts:
168 maxItems: 1
169
170 additionalProperties: false
171
172 examples:
173 - |
174 #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
175 #include <dt-bindings/interrupt-controller/arm-gic.h>
176 #include <dt-bindings/power/r8a7790-sysc.h>
177
178 usbhs: usb@e6590000 {
179 compatible = "renesas,usbhs-r8a7790", "renesas,rcar-gen2-usbhs";
180 reg = <0xe6590000 0x100>;
181 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
182 clocks = <&cpg CPG_MOD 704>;
183 };
184

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Renesas USBHS controller

1-11

GPL-2.0-only로 배포되는 이 스키마는 Renesas USBHS(HS-USB) controller를 정의합니다. 관리자는 Yoshihiro Shimoda입니다.

RZ·R-Car 세대별 compatible

12-67

RZ/A1과 RZ/A2는 각각 `renesas,rza1-usbhs`, `renesas,rza2-usbhs` fallback을 사용합니다. RZ/G2UL·G2L·G2LC·RZ/Five·RZ/V2L·RZ/G3S·RZ/V2N·RZ/V2H(P)는 `renesas,rzg2l-usbhs`로 묶입니다.

RZ/G1과 R-Car Gen2 계열은 `renesas,rcar-gen2-usbhs`, RZ/G2와 R-Car Gen3 계열은 `renesas,rcar-gen3-usbhs`로 fallback합니다. RZ/T2H는 `renesas,usbhs-r9a09g077` 단독 compatible을 허용하고, RZ/N2H는 SoC별 `renesas,usbhs-r9a09g087` 뒤에 RZ/T2H compatible을 fallback으로 둡니다.

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
              - renesas,usbhs-r9a08g045 # RZ/G3S
              - renesas,usbhs-r9a09g056 # RZ/V2N
              - renesas,usbhs-r9a09g057 # RZ/V2H(P)
          - 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

      - const: renesas,usbhs-r9a09g077 # RZ/T2H

      - items:
          - const: renesas,usbhs-r9a09g087 # RZ/N2H
          - const: renesas,usbhs-r9a09g077 # RZ/T2H

clock, interrupt, DMA와 reset

68-126

register 영역은 하나입니다. clock은 USB 2.0 host, peripheral, clock selector 순서로 최대 세 개이며 최소 하나가 필요합니다. interrupt는 1~4개입니다. `renesas,buswait`는 BUSWAIT register에 쓸 정수입니다.

deprecated `renesas,enable-gpio` 대신 `renesas,enable-gpios`를 사용하며, 이 GPIO는 USB function 활성화 여부를 확인합니다. PHY는 하나이고 이름은 `usb`입니다. DMA는 2~4개이며 이름은 `ch0`부터 `ch3` 순서입니다. `dr_mode`, power domain 하나, host와 peripheral 순서의 reset 1~2개를 지원합니다.

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:
  deprecated: true
  maxItems: 1

renesas,enable-gpios:
  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

필수 속성과 SoC별 interrupt 조건

127-171

공통 필수 속성은 `compatible`, `reg`, `clocks`, `interrupts`입니다. `renesas,rzg2l-usbhs` 계열은 `U2P_IXL_INT`, DMA0, DMA1, DMAERR interrupt 네 개를 순서대로 사용하고 `resets`가 필수입니다.

`renesas,usbhs-r9a09g077` 계열은 reset을 허용하지 않고 clock은 하나만 사용합니다. interrupt는 USB_FI, USB_FDMA0, USB_FDMA1 순서로 세 개입니다. 나머지 계열은 interrupt를 최대 하나만 사용하며, 정의되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - clocks
  - interrupts

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: renesas,rzg2l-usbhs
    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:
      if:
        properties:
          compatible:
            contains:
              const: renesas,usbhs-r9a09g077
      then:
        properties:
          resets: false
          clocks:
            maxItems: 1
          interrupts:
            items:
              - description: USB function interrupt USB_FI
              - description: USB function DMA0 transmit completion interrupt USB_FDMA0
              - description: USB function DMA1 transmit completion interrupt USB_FDMA1
      else:
        properties:
          interrupts:
            maxItems: 1

additionalProperties: false

R-Car H2 USBHS 예제

172-183

예제 `usbhs: usb@e6590000`은 R-Car H2 compatible과 Gen2 fallback, 0x100-byte register 영역, level-high GIC SPI 107, CPG module clock 704를 사용합니다.

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>;
    };