← Documents Documentation/devicetree/bindings/usb/genesys,gl850g.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Genesys Logic USB Hub Controller

Genesys hub product별 reset·전원·peer-hub 제약과 USB2·USB3 peer 예제를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

genesys,gl850g.yaml:1-113

Genesys hub product별 reset·전원·peer-hub 제약과 USB2·USB3 peer 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, GPIO, PHY, 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/genesys,gl850g.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Genesys Logic USB hub controller
8
9 maintainers:
10 - Icenowy Zheng <[email protected]>
11
12 properties:
13 compatible:
14 enum:
15 - usb5e3,608
16 - usb5e3,610
17 - usb5e3,620
18 - usb5e3,626
19
20 reg: true
21
22 reset-gpios:
23 description: GPIO controlling the RESET# pin.
24
25 vdd-supply:
26 description:
27 The regulator that provides 3.3V or 5.0V core power to the hub.
28
29 peer-hub: true
30
31 ports:
32 $ref: /schemas/graph.yaml#/properties/ports
33
34 patternProperties:
35 '^port@':
36 $ref: /schemas/graph.yaml#/properties/port
37
38 properties:
39 reg:
40 minimum: 1
41 maximum: 4
42
43 required:
44 - compatible
45 - reg
46
47 allOf:
48 - $ref: usb-hub.yaml#
49 - if:
50 properties:
51 compatible:
52 contains:
53 enum:
54 - usb5e3,608
55 then:
56 properties:
57 peer-hub: false
58 vdd-supply: false
59
60 - if:
61 properties:
62 compatible:
63 contains:
64 enum:
65 - usb5e3,610
66 - usb5e3,620
67 then:
68 properties:
69 peer-hub: true
70 vdd-supply: true
71
72 unevaluatedProperties: false
73
74 examples:
75 - |
76 #include <dt-bindings/gpio/gpio.h>
77 usb {
78 dr_mode = "host";
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 hub: hub@1 {
83 compatible = "usb5e3,608";
84 reg = <1>;
85 reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
86 };
87 };
88
89 - |
90 #include <dt-bindings/gpio/gpio.h>
91 usb {
92 dr_mode = "host";
93 #address-cells = <1>;
94 #size-cells = <0>;
95
96 /* 2.0 hub on port 1 */
97 hub_2_0: hub@1 {
98 compatible = "usb5e3,610";
99 reg = <1>;
100 peer-hub = <&hub_3_0>;
101 reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
102 vdd-supply = <&vcc_5v>;
103 };
104
105 /* 3.1 hub on port 4 */
106 hub_3_0: hub@2 {
107 compatible = "usb5e3,620";
108 reg = <2>;
109 peer-hub = <&hub_2_0>;
110 reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
111 vdd-supply = <&vcc_5v>;
112 };
113 };
114

3. 한국어 전문 번역

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

Genesys Logic USB hub controller

1-11

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 Genesys Logic USB hub controller를 정의합니다. 관리자는 Icenowy Zheng입니다.

USB product, reset, supply와 ports

12-42

허용 USB product compatible은 `usb5e3,608`, `usb5e3,610`, `usb5e3,620`, `usb5e3,626`입니다. `reg`를 사용하고 `reset-gpios`는 RESET# pin을 제어합니다.

`vdd-supply`는 hub core에 3.3 V 또는 5.0 V를 공급하는 regulator입니다. `peer-hub`를 허용하며 `ports`는 OF graph schema를 따릅니다. 각 `port@...`의 `reg` 값은 1~4입니다.

properties:
  compatible:
    enum:
      - usb5e3,608
      - usb5e3,610
      - usb5e3,620
      - usb5e3,626

  reg: true

  reset-gpios:
    description: GPIO controlling the RESET# pin.

  vdd-supply:
    description:
      The regulator that provides 3.3V or 5.0V core power to the hub.

  peer-hub: true

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    patternProperties:
      '^port@':
        $ref: /schemas/graph.yaml#/properties/port

        properties:
          reg:
            minimum: 1
            maximum: 4

필수 속성과 product별 제약

43-73

필수 속성은 `compatible`과 `reg`이고 공통 `usb-hub.yaml`을 상속합니다.

product 608에서는 `peer-hub`와 `vdd-supply`를 허용하지 않습니다. product 610과 620에서는 두 속성을 허용합니다. 평가되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg

allOf:
  - $ref: usb-hub.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - usb5e3,608
    then:
      properties:
        peer-hub: false
        vdd-supply: false

  - if:
      properties:
        compatible:
          contains:
            enum:
              - usb5e3,610
              - usb5e3,620
    then:
      properties:
        peer-hub: true
        vdd-supply: true

unevaluatedProperties: false

단일 hub와 USB2·USB3 peer hub

74-113

첫 예제는 host controller port 1의 product 608 hub와 active-low reset GPIO를 보여 줍니다.

둘째 예제는 port 1의 product 610 USB 2.0 hub와 port 4를 나타내는 product 620 USB 3.1 hub를 서로 `peer-hub`로 연결합니다. 두 node는 같은 active-low reset GPIO와 5 V regulator를 공유합니다.

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    usb {
        dr_mode = "host";
        #address-cells = <1>;
        #size-cells = <0>;

        hub: hub@1 {
            compatible = "usb5e3,608";
            reg = <1>;
            reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    usb {
        dr_mode = "host";
        #address-cells = <1>;
        #size-cells = <0>;

        /* 2.0 hub on port 1 */
        hub_2_0: hub@1 {
            compatible = "usb5e3,610";
            reg = <1>;
            peer-hub = <&hub_3_0>;
            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
            vdd-supply = <&vcc_5v>;
        };

        /* 3.1 hub on port 4 */
        hub_3_0: hub@2 {
            compatible = "usb5e3,620";
            reg = <2>;
            peer-hub = <&hub_2_0>;
            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
            vdd-supply = <&vcc_5v>;
        };
    };