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

Linux 6.18.37 · Devicetree Bindings / USB

HiSilicon Hi3798MV200 DWC3 USB Controller

Hi3798MV200 DWC3 wrapper의 일곱 clock, soft reset과 SuperSpeed host child를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

hisilicon,hi3798mv200-dwc3.yaml:1-99

Hi3798MV200 DWC3 wrapper의 일곱 clock, soft reset과 SuperSpeed host child를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, GPIO, PHY, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/hisilicon,hi3798mv200-dwc3.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: HiSilicon Hi3798MV200 DWC3 USB SoC controller
8
9 maintainers:
10 - Yang Xiwen <forbidden405@foxmail.com>
11
12 properties:
13 compatible:
14 const: hisilicon,hi3798mv200-dwc3
15
16 '#address-cells':
17 const: 1
18
19 '#size-cells':
20 const: 1
21
22 ranges: true
23
24 clocks:
25 items:
26 - description: Controller bus clock
27 - description: Controller suspend clock
28 - description: Controller reference clock
29 - description: Controller gm clock
30 - description: Controller gs clock
31 - description: Controller utmi clock
32 - description: Controller pipe clock
33
34 clock-names:
35 items:
36 - const: bus
37 - const: suspend
38 - const: ref
39 - const: gm
40 - const: gs
41 - const: utmi
42 - const: pipe
43
44 resets:
45 maxItems: 1
46
47 reset-names:
48 const: soft
49
50 patternProperties:
51 '^usb@[0-9a-f]+$':
52 $ref: snps,dwc3.yaml#
53
54 required:
55 - compatible
56 - ranges
57 - '#address-cells'
58 - '#size-cells'
59 - clocks
60 - clock-names
61 - resets
62 - reset-names
63
64 additionalProperties: false
65
66 examples:
67 - |
68 #include <dt-bindings/interrupt-controller/arm-gic.h>
69
70 usb {
71 compatible = "hisilicon,hi3798mv200-dwc3";
72 ranges;
73 #address-cells = <1>;
74 #size-cells = <1>;
75 clocks = <&clk_bus>,
76 <&clk_suspend>,
77 <&clk_ref>,
78 <&clk_gm>,
79 <&clk_gs>,
80 <&clk_utmi>,
81 <&clk_pipe>;
82 clock-names = "bus", "suspend", "ref", "gm", "gs", "utmi", "pipe";
83 resets = <&crg 0xb0 12>;
84 reset-names = "soft";
85
86 usb@98a0000 {
87 compatible = "snps,dwc3";
88 reg = <0x98a0000 0x10000>;
89 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
90 clocks = <&clk_bus>,
91 <&clk_suspend>,
92 <&clk_ref>;
93 clock-names = "bus_early", "suspend", "ref";
94 phys = <&usb2_phy1_port2>, <&combphy0 0>;
95 phy-names = "usb2-phy", "usb3-phy";
96 maximum-speed = "super-speed";
97 dr_mode = "host";
98 };
99 };
100

3. 한국어 전문 번역

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

HiSilicon Hi3798MV200 DWC3 wrapper

1-11

GPL-2.0 또는 BSD-2-Clause로 배포되는 이 schema는 HiSilicon Hi3798MV200 DWC3 USB SoC controller를 정의합니다. 관리자는 Yang Xiwen입니다.

Address cell, 일곱 clock과 reset

12-49

`compatible`은 `hisilicon,hi3798mv200-dwc3`입니다. address cell과 size cell 수는 모두 1이며 `ranges`를 사용합니다.

clock은 controller bus, suspend, reference, gm, gs, utmi, pipe 순서의 일곱 개이고 이름은 `bus`, `suspend`, `ref`, `gm`, `gs`, `utmi`, `pipe`입니다.

reset은 최대 하나이고 이름은 `soft`입니다.

properties:
  compatible:
    const: hisilicon,hi3798mv200-dwc3

  '#address-cells':
    const: 1

  '#size-cells':
    const: 1

  ranges: true

  clocks:
    items:
      - description: Controller bus clock
      - description: Controller suspend clock
      - description: Controller reference clock
      - description: Controller gm clock
      - description: Controller gs clock
      - description: Controller utmi clock
      - description: Controller pipe clock

  clock-names:
    items:
      - const: bus
      - const: suspend
      - const: ref
      - const: gm
      - const: gs
      - const: utmi
      - const: pipe

  resets:
    maxItems: 1

  reset-names:
    const: soft

DWC3 child와 필수 속성

50-65

16진 주소를 이름에 넣은 `usb@...` child node는 `snps,dwc3.yaml`을 따라야 합니다.

필수 속성은 `compatible`, `ranges`, `#address-cells`, `#size-cells`, `clocks`, `clock-names`, `resets`, `reset-names`입니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

patternProperties:
  '^usb@[0-9a-f]+$':
    $ref: snps,dwc3.yaml#

required:
  - compatible
  - ranges
  - '#address-cells'
  - '#size-cells'
  - clocks
  - clock-names
  - resets
  - reset-names

additionalProperties: false

Hi3798MV200 wrapper와 host core

66-99

예제 wrapper는 일곱 clock과 soft reset을 지정합니다. child `usb@98a0000`은 `snps,dwc3`, 0x10000-byte register 영역과 level-high GIC SPI 69를 사용합니다.

child clock 이름은 `bus_early`, `suspend`, `ref`입니다. USB2 PHY와 combo USB3 PHY를 연결하고 maximum speed를 `super-speed`, mode를 `host`로 설정합니다.

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

    usb {
        compatible = "hisilicon,hi3798mv200-dwc3";
        ranges;
        #address-cells = <1>;
        #size-cells = <1>;
        clocks = <&clk_bus>,
                 <&clk_suspend>,
                 <&clk_ref>,
                 <&clk_gm>,
                 <&clk_gs>,
                 <&clk_utmi>,
                 <&clk_pipe>;
        clock-names = "bus", "suspend", "ref", "gm", "gs", "utmi", "pipe";
        resets = <&crg 0xb0 12>;
        reset-names = "soft";

        usb@98a0000 {
            compatible = "snps,dwc3";
            reg = <0x98a0000 0x10000>;
            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&clk_bus>,
                     <&clk_suspend>,
                     <&clk_ref>;
            clock-names = "bus_early", "suspend", "ref";
            phys = <&usb2_phy1_port2>, <&combphy0 0>;
            phy-names = "usb2-phy", "usb3-phy";
            maximum-speed = "super-speed";
            dr_mode = "host";
        };
    };