← Documents Documentation/devicetree/bindings/usb/samsung,exynos-dwc3.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Samsung Exynos USB 3.0 DWC3 Controller

Exynos·GS101 DWC3의 SoC별 clock과 regulator 조건을 설명합니다.

Source pathDocumentation/devicetree/bindings/usb/samsung,exynos-dwc3.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

samsung,exynos-dwc3.yaml:1-223

Exynos·GS101 DWC3의 SoC별 clock과 regulator 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, reset, PHY, quirk, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/samsung,exynos-dwc3.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Samsung Exynos SoC USB 3.0 DWC3 Controller
8
9 maintainers:
10 - Krzysztof Kozlowski <krzk@kernel.org>
11
12 properties:
13 compatible:
14 oneOf:
15 - enum:
16 - google,gs101-dwusb3
17 - samsung,exynos2200-dwusb3
18 - samsung,exynos5250-dwusb3
19 - samsung,exynos5433-dwusb3
20 - samsung,exynos7-dwusb3
21 - samsung,exynos7870-dwusb3
22 - samsung,exynos850-dwusb3
23 - samsung,exynosautov920-dwusb3
24 - items:
25 - const: samsung,exynos990-dwusb3
26 - const: samsung,exynos850-dwusb3
27
28 '#address-cells':
29 const: 1
30
31 clocks:
32 minItems: 1
33 maxItems: 4
34
35 clock-names:
36 minItems: 1
37 maxItems: 4
38
39 ranges: true
40
41 '#size-cells':
42 const: 1
43
44 vdd10-supply:
45 description: 1.0V power supply
46
47 vdd33-supply:
48 description: 3.0V/3.3V power supply
49
50 patternProperties:
51 "^usb@[0-9a-f]+$":
52 $ref: snps,dwc3.yaml#
53 description: Required child node
54
55 required:
56 - compatible
57 - '#address-cells'
58 - clocks
59 - clock-names
60 - ranges
61 - '#size-cells'
62 - vdd33-supply
63
64 allOf:
65 - if:
66 properties:
67 compatible:
68 contains:
69 const: google,gs101-dwusb3
70 then:
71 properties:
72 clocks:
73 minItems: 4
74 maxItems: 4
75 clock-names:
76 items:
77 - const: bus_early
78 - const: susp_clk
79 - const: link_aclk
80 - const: link_pclk
81 required:
82 - vdd10-supply
83
84 - if:
85 properties:
86 compatible:
87 contains:
88 const: samsung,exynos2200-dwusb3
89 then:
90 properties:
91 clocks:
92 maxItems: 1
93 clock-names:
94 items:
95 - const: link_aclk
96
97 - if:
98 properties:
99 compatible:
100 contains:
101 const: samsung,exynos5250-dwusb3
102 then:
103 properties:
104 clocks:
105 minItems: 1
106 maxItems: 1
107 clock-names:
108 items:
109 - const: usbdrd30
110 required:
111 - vdd10-supply
112
113 - if:
114 properties:
115 compatible:
116 contains:
117 const: samsung,exynos5433-dwusb3
118 then:
119 properties:
120 clocks:
121 minItems: 4
122 maxItems: 4
123 clock-names:
124 items:
125 - const: aclk
126 - const: susp_clk
127 - const: phyclk
128 - const: pipe_pclk
129 required:
130 - vdd10-supply
131
132 - if:
133 properties:
134 compatible:
135 contains:
136 const: samsung,exynos7-dwusb3
137 then:
138 properties:
139 clocks:
140 minItems: 3
141 maxItems: 3
142 clock-names:
143 items:
144 - const: usbdrd30
145 - const: usbdrd30_susp_clk
146 - const: usbdrd30_axius_clk
147 required:
148 - vdd10-supply
149
150 - if:
151 properties:
152 compatible:
153 contains:
154 const: samsung,exynos7870-dwusb3
155 then:
156 properties:
157 clocks:
158 minItems: 3
159 maxItems: 3
160 clock-names:
161 items:
162 - const: bus_early
163 - const: ref
164 - const: ctrl
165
166 - if:
167 properties:
168 compatible:
169 contains:
170 const: samsung,exynos850-dwusb3
171 then:
172 properties:
173 clocks:
174 minItems: 2
175 maxItems: 2
176 clock-names:
177 items:
178 - const: bus_early
179 - const: ref
180 required:
181 - vdd10-supply
182
183 - if:
184 properties:
185 compatible:
186 contains:
187 const: samsung,exynosautov920-dwusb3
188 then:
189 properties:
190 clocks:
191 minItems: 2
192 maxItems: 2
193 clock-names:
194 items:
195 - const: ref
196 - const: susp_clk
197
198 additionalProperties: false
199
200 examples:
201 - |
202 #include <dt-bindings/clock/exynos5420.h>
203 #include <dt-bindings/interrupt-controller/arm-gic.h>
204
205 usb@12000000 {
206 compatible = "samsung,exynos5250-dwusb3";
207 #address-cells = <1>;
208 #size-cells = <1>;
209 ranges = <0x0 0x12000000 0x10000>;
210 clocks = <&clock CLK_USBD300>;
211 clock-names = "usbdrd30";
212 vdd33-supply = <&ldo9_reg>;
213 vdd10-supply = <&ldo11_reg>;
214
215 usb@0 {
216 compatible = "snps,dwc3";
217 reg = <0x0 0x10000>;
218 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
219 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
220 phy-names = "usb2-phy", "usb3-phy";
221 snps,dis_u3_susphy_quirk;
222 };
223 };
224

3. 한국어 전문 번역

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

Samsung Exynos USB 3.0 DWC3

1-11

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Samsung Exynos SoC USB 3.0 DWC3 controller를 정의합니다. 관리자는 Krzysztof Kozlowski입니다.

compatible, 전원과 DWC3 child

12-63

지원 대상은 Google GS101, Exynos 2200·5250·5433·7·7870·850·Auto V920이며 Exynos990은 Exynos850 fallback을 사용합니다. address/size cell은 각각 1이고 clock과 이름은 1~4개입니다.

`vdd10-supply`는 1.0V, `vdd33-supply`는 3.0V 또는 3.3V 전원입니다. `usb@...` 필수 child는 `snps,dwc3.yaml`을 따릅니다. 공통 필수 속성에는 `vdd33-supply`가 포함됩니다.

properties:
  compatible:
    oneOf:
      - enum:
          - google,gs101-dwusb3
          - samsung,exynos2200-dwusb3
          - samsung,exynos5250-dwusb3
          - samsung,exynos5433-dwusb3
          - samsung,exynos7-dwusb3
          - samsung,exynos7870-dwusb3
          - samsung,exynos850-dwusb3
          - samsung,exynosautov920-dwusb3
      - items:
          - const: samsung,exynos990-dwusb3
          - const: samsung,exynos850-dwusb3

  '#address-cells':
    const: 1

  clocks:
    minItems: 1
    maxItems: 4

  clock-names:
    minItems: 1
    maxItems: 4

  ranges: true

  '#size-cells':
    const: 1

  vdd10-supply:
    description: 1.0V power supply

  vdd33-supply:
    description: 3.0V/3.3V power supply

patternProperties:
  "^usb@[0-9a-f]+$":
    $ref: snps,dwc3.yaml#
    description: Required child node

required:
  - compatible
  - '#address-cells'
  - clocks
  - clock-names
  - ranges
  - '#size-cells'
  - vdd33-supply

GS101·Exynos2200·Exynos5250 조건

64-112

GS101은 `bus_early`, `susp_clk`, `link_aclk`, `link_pclk` 네 clock과 `vdd10-supply`가 필요합니다. Exynos2200은 `link_aclk` 하나만 사용합니다. Exynos5250은 `usbdrd30` 하나와 `vdd10-supply`가 필요합니다.

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: google,gs101-dwusb3
    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4
        clock-names:
          items:
            - const: bus_early
            - const: susp_clk
            - const: link_aclk
            - const: link_pclk
      required:
        - vdd10-supply

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos2200-dwusb3
    then:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          items:
            - const: link_aclk

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos5250-dwusb3
    then:
      properties:
        clocks:
          minItems: 1
          maxItems: 1
        clock-names:
          items:
            - const: usbdrd30
      required:
        - vdd10-supply

Exynos5433·Exynos7·Exynos7870 조건

113-165

Exynos5433은 `aclk`, `susp_clk`, `phyclk`, `pipe_pclk` 네 clock과 `vdd10-supply`가 필요합니다. Exynos7은 `usbdrd30`, `usbdrd30_susp_clk`, `usbdrd30_axius_clk` 세 clock과 `vdd10-supply`를 사용합니다. Exynos7870은 `bus_early`, `ref`, `ctrl` 세 clock을 사용합니다.

- if:
    properties:
      compatible:
        contains:
          const: samsung,exynos5433-dwusb3
  then:
    properties:
      clocks:
        minItems: 4
        maxItems: 4
      clock-names:
        items:
          - const: aclk
          - const: susp_clk
          - const: phyclk
          - const: pipe_pclk
    required:
      - vdd10-supply

- if:
    properties:
      compatible:
        contains:
          const: samsung,exynos7-dwusb3
  then:
    properties:
      clocks:
        minItems: 3
        maxItems: 3
      clock-names:
        items:
          - const: usbdrd30
          - const: usbdrd30_susp_clk
          - const: usbdrd30_axius_clk
    required:
      - vdd10-supply

- if:
    properties:
      compatible:
        contains:
          const: samsung,exynos7870-dwusb3
  then:
    properties:
      clocks:
        minItems: 3
        maxItems: 3
      clock-names:
        items:
          - const: bus_early
          - const: ref
          - const: ctrl

Exynos850·Auto V920 조건

166-199

Exynos850은 `bus_early`, `ref` 두 clock과 `vdd10-supply`가 필요합니다. ExynosAuto V920은 `ref`, `susp_clk` 두 clock을 사용합니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynos850-dwusb3
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          items:
            - const: bus_early
            - const: ref
      required:
        - vdd10-supply

  - if:
      properties:
        compatible:
          contains:
            const: samsung,exynosautov920-dwusb3
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          items:
            - const: ref
            - const: susp_clk

additionalProperties: false

Exynos5250 DWC3 예제

200-223

예제 `usb@12000000` wrapper는 0x10000 범위, `CLK_USBD300`, 3.3V·1.0V regulator를 사용합니다. child `usb@0`은 Synopsys DWC3, level-high GIC SPI 72, USB2·USB3 PHY를 연결하고 `snps,dis_u3_susphy_quirk`를 설정합니다.

examples:
  - |
    #include <dt-bindings/clock/exynos5420.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    usb@12000000 {
        compatible = "samsung,exynos5250-dwusb3";
        #address-cells = <1>;
        #size-cells = <1>;
        ranges = <0x0 0x12000000 0x10000>;
        clocks = <&clock CLK_USBD300>;
        clock-names = "usbdrd30";
        vdd33-supply = <&ldo9_reg>;
        vdd10-supply = <&ldo11_reg>;

        usb@0 {
            compatible = "snps,dwc3";
            reg = <0x0 0x10000>;
            interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
            phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
            phy-names = "usb2-phy", "usb3-phy";
            snps,dis_u3_susphy_quirk;
        };
    };