← Documents Documentation/devicetree/bindings/usb/rockchip,dwc3.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Rockchip SuperSpeed DWC3 Controller

Rockchip DWC3의 SoC별 clock 배열과 Synopsys 공통 속성을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

rockchip,dwc3.yaml:1-181

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

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/rockchip,dwc3.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Rockchip SuperSpeed DWC3 USB SoC controller
8
9 maintainers:
10 - Heiko Stuebner <heiko@sntech.de>
11
12 description:
13 The common content of the node is defined in snps,dwc3.yaml.
14
15 Phy documentation is provided in the following places.
16
17 USB2.0 PHY
18 Documentation/devicetree/bindings/phy/rockchip,inno-usb2phy.yaml
19
20 Type-C PHY
21 Documentation/devicetree/bindings/phy/rockchip,rk3399-typec-phy.yaml
22
23 select:
24 properties:
25 compatible:
26 contains:
27 enum:
28 - rockchip,rk3328-dwc3
29 - rockchip,rk3562-dwc3
30 - rockchip,rk3568-dwc3
31 - rockchip,rk3576-dwc3
32 - rockchip,rk3588-dwc3
33 required:
34 - compatible
35
36 properties:
37 compatible:
38 items:
39 - enum:
40 - rockchip,rk3328-dwc3
41 - rockchip,rk3562-dwc3
42 - rockchip,rk3568-dwc3
43 - rockchip,rk3576-dwc3
44 - rockchip,rk3588-dwc3
45 - const: snps,dwc3
46
47 reg:
48 maxItems: 1
49
50 interrupts:
51 maxItems: 1
52
53 clocks:
54 minItems: 3
55 items:
56 - description:
57 Controller reference clock, must to be 24 MHz
58 - description:
59 Controller suspend clock, must to be 24 MHz or 32 KHz
60 - description:
61 Master/Core clock, must to be >= 62.5 MHz for SS
62 operation and >= 30MHz for HS operation
63 - description:
64 Controller grf clock OR UTMI clock
65 - description:
66 PIPE clock
67
68 clock-names:
69 minItems: 3
70 items:
71 - const: ref_clk
72 - const: suspend_clk
73 - const: bus_clk
74 - enum:
75 - grf_clk
76 - utmi
77 - pipe
78 - const: pipe
79
80 power-domains:
81 maxItems: 1
82
83 resets:
84 maxItems: 1
85
86 reset-names:
87 const: usb3-otg
88
89 unevaluatedProperties: false
90
91 required:
92 - compatible
93 - reg
94 - interrupts
95 - clocks
96 - clock-names
97
98 allOf:
99 - $ref: snps,dwc3.yaml#
100 - if:
101 properties:
102 compatible:
103 contains:
104 const: rockchip,rk3328-dwc3
105 then:
106 properties:
107 clocks:
108 minItems: 3
109 maxItems: 4
110 clock-names:
111 minItems: 3
112 items:
113 - const: ref_clk
114 - const: suspend_clk
115 - const: bus_clk
116 - const: grf_clk
117 - if:
118 properties:
119 compatible:
120 contains:
121 const: rockchip,rk3562-dwc3
122 then:
123 properties:
124 clocks:
125 minItems: 4
126 maxItems: 4
127 clock-names:
128 items:
129 - const: ref_clk
130 - const: suspend_clk
131 - const: bus_clk
132 - const: pipe
133 - if:
134 properties:
135 compatible:
136 contains:
137 enum:
138 - rockchip,rk3568-dwc3
139 - rockchip,rk3576-dwc3
140 then:
141 properties:
142 clocks:
143 maxItems: 3
144 clock-names:
145 maxItems: 3
146 - if:
147 properties:
148 compatible:
149 contains:
150 const: rockchip,rk3588-dwc3
151 then:
152 properties:
153 clock-names:
154 minItems: 3
155 items:
156 - const: ref_clk
157 - const: suspend_clk
158 - const: bus_clk
159 - const: utmi
160 - const: pipe
161
162 examples:
163 - |
164 #include <dt-bindings/clock/rk3328-cru.h>
165 #include <dt-bindings/interrupt-controller/arm-gic.h>
166
167 bus {
168 #address-cells = <2>;
169 #size-cells = <2>;
170
171 usbdrd3_0: usb@fe800000 {
172 compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
173 reg = <0x0 0xfe800000 0x0 0x100000>;
174 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
175 clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>,
176 <&cru ACLK_USB3OTG>;
177 clock-names = "ref_clk", "suspend_clk",
178 "bus_clk", "grf_clk";
179 dr_mode = "otg";
180 };
181 };
182

3. 한국어 전문 번역

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

Rockchip SuperSpeed DWC3 controller

1-22

GPL-2.0으로 배포되는 이 스키마는 Rockchip SuperSpeed DWC3 USB SoC controller를 정의하며 공통 node 내용은 `snps,dwc3.yaml`에 있습니다. USB 2.0 PHY는 `Documentation/devicetree/bindings/phy/rockchip,inno-usb2phy.yaml`, Type-C PHY는 `Documentation/devicetree/bindings/phy/rockchip,rk3399-typec-phy.yaml`을 참조합니다. 관리자는 Heiko Stuebner입니다.

선택 대상과 핵심 resource

23-52

이 스키마는 RK3328, RK3562, RK3568, RK3576, RK3588 DWC3 compatible에 적용됩니다. 각 SoC별 compatible 뒤에 `snps,dwc3`를 둡니다. register와 interrupt는 각각 하나입니다.

select:
  properties:
    compatible:
      contains:
        enum:
          - rockchip,rk3328-dwc3
          - rockchip,rk3562-dwc3
          - rockchip,rk3568-dwc3
          - rockchip,rk3576-dwc3
          - rockchip,rk3588-dwc3
  required:
    - compatible

properties:
  compatible:
    items:
      - enum:
          - rockchip,rk3328-dwc3
          - rockchip,rk3562-dwc3
          - rockchip,rk3568-dwc3
          - rockchip,rk3576-dwc3
          - rockchip,rk3588-dwc3
      - const: snps,dwc3

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

clock 주파수와 공통 필수 속성

53-97

clock은 최소 세 개입니다. `ref_clk`는 24 MHz, `suspend_clk`는 24 MHz 또는 32 KHz, `bus_clk`는 SuperSpeed에서 62.5 MHz 이상이고 HighSpeed에서 30 MHz 이상이어야 합니다. 추가 clock은 GRF 또는 UTMI, PIPE clock이며 이름은 SoC에 따라 `grf_clk`, `utmi`, `pipe`를 사용합니다.

power domain과 `usb3-otg` reset은 각각 하나입니다. 필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`이며 평가되지 않은 속성은 허용하지 않습니다.

  clocks:
    minItems: 3
    items:
      - description:
          Controller reference clock, must to be 24 MHz
      - description:
          Controller suspend clock, must to be 24 MHz or 32 KHz
      - description:
          Master/Core clock, must to be >= 62.5 MHz for SS
          operation and >= 30MHz for HS operation
      - description:
          Controller grf clock OR UTMI clock
      - description:
          PIPE clock

  clock-names:
    minItems: 3
    items:
      - const: ref_clk
      - const: suspend_clk
      - const: bus_clk
      - enum:
          - grf_clk
          - utmi
          - pipe
      - const: pipe

  power-domains:
    maxItems: 1

  resets:
    maxItems: 1

  reset-names:
    const: usb3-otg

unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

RK3328·RK3562 clock 조건

98-132

공통 `snps,dwc3.yaml`을 상속합니다. RK3328은 3~4개 clock을 허용하며 네 번째 이름은 `grf_clk`입니다. RK3562는 정확히 네 개를 사용하고 이름은 `ref_clk`, `suspend_clk`, `bus_clk`, `pipe` 순서입니다.

allOf:
  - $ref: snps,dwc3.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3328-dwc3
    then:
      properties:
        clocks:
          minItems: 3
          maxItems: 4
        clock-names:
          minItems: 3
          items:
            - const: ref_clk
            - const: suspend_clk
            - const: bus_clk
            - const: grf_clk
  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3562-dwc3
    then:
      properties:
        clocks:
          minItems: 4
          maxItems: 4
        clock-names:
          items:
            - const: ref_clk
            - const: suspend_clk
            - const: bus_clk
            - const: pipe

RK3568·RK3576·RK3588 clock 조건

133-161

RK3568과 RK3576은 clock과 이름을 최대 세 개만 사용합니다. RK3588은 최소 세 개이며 `ref_clk`, `suspend_clk`, `bus_clk` 뒤에 선택적으로 `utmi`, `pipe`가 이어집니다.

- if:
    properties:
      compatible:
        contains:
          enum:
            - rockchip,rk3568-dwc3
            - rockchip,rk3576-dwc3
  then:
    properties:
      clocks:
        maxItems: 3
      clock-names:
        maxItems: 3
- if:
    properties:
      compatible:
        contains:
          const: rockchip,rk3588-dwc3
  then:
    properties:
      clock-names:
        minItems: 3
        items:
          - const: ref_clk
          - const: suspend_clk
          - const: bus_clk
          - const: utmi
          - const: pipe

RK3328 OTG 예제

162-181

예제 `usbdrd3_0: usb@fe800000`은 RK3328 compatible과 Synopsys fallback, 0x100000-byte register 영역, level-high GIC SPI 105를 사용합니다. reference·suspend·bus clock을 연결하고 이름 배열에는 `grf_clk`도 두며 `dr_mode`는 `otg`입니다.

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

    bus {
      #address-cells = <2>;
      #size-cells = <2>;

      usbdrd3_0: usb@fe800000 {
        compatible = "rockchip,rk3328-dwc3", "snps,dwc3";
        reg = <0x0 0xfe800000 0x0 0x100000>;
        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&cru SCLK_USB3OTG_REF>, <&cru SCLK_USB3OTG_SUSPEND>,
                 <&cru ACLK_USB3OTG>;
        clock-names = "ref_clk", "suspend_clk",
                      "bus_clk", "grf_clk";
        dr_mode = "otg";
      };
    };