← Documents Documentation/devicetree/bindings/usb/microchip,usb5744.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

Microchip USB5744 4-port Hub Controller

USB5744의 I2C·USB 표현 방식, peer hub와 USB2·USB3 병렬 구성을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

microchip,usb5744.yaml:1-110

USB5744의 I2C·USB 표현 방식, peer hub와 USB2·USB3 병렬 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, supply, 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/microchip,usb5744.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Microchip USB5744 4-port Hub Controller
8
9 description:
10 Microchip's USB5744 SmartHubTM IC is a 4 port, SuperSpeed (SS)/Hi-Speed (HS),
11 low power, low pin count configurable and fully compliant with the USB 3.1
12 Gen 1 specification. The USB5744 also supports Full Speed (FS) and Low Speed
13 (LS) USB signaling, offering complete coverage of all defined USB operating
14 speeds. The new SuperSpeed hubs operate in parallel with the USB 2.0
15 controller, so 5 Gbps SuperSpeed data transfers are not affected by slower
16 USB 2.0 traffic.
17
18 maintainers:
19 - Michal Simek <michal.simek@amd.com>
20 - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
21
22 properties:
23 compatible:
24 enum:
25 - usb424,2744
26 - usb424,5744
27 - microchip,usb5744
28
29 reg:
30 maxItems: 1
31
32 reset-gpios:
33 maxItems: 1
34 description:
35 GPIO controlling the GRST# pin.
36
37 vdd-supply:
38 description:
39 3V3 power supply to the hub
40
41 vdd2-supply:
42 description:
43 1V2 power supply to the hub
44
45 peer-hub:
46 $ref: /schemas/types.yaml#/definitions/phandle
47 description:
48 phandle to the peer hub on the controller.
49
50 i2c-bus:
51 $ref: /schemas/types.yaml#/definitions/phandle
52 description:
53 phandle of an usb hub connected via i2c bus.
54
55 required:
56 - compatible
57 - reg
58
59 allOf:
60 - if:
61 properties:
62 compatible:
63 contains:
64 const: microchip,usb5744
65 then:
66 properties:
67 reset-gpios: false
68 vdd-supply: false
69 vdd2-supply: false
70 peer-hub: false
71 i2c-bus: false
72 else:
73 $ref: /schemas/usb/usb-device.yaml
74
75 additionalProperties: false
76
77 examples:
78 - |
79 #include <dt-bindings/gpio/gpio.h>
80 i2c: i2c {
81 #address-cells = <1>;
82 #size-cells = <0>;
83 hub: usb-hub@2d {
84 compatible = "microchip,usb5744";
85 reg = <0x2d>;
86 };
87 };
88
89 usb {
90 #address-cells = <1>;
91 #size-cells = <0>;
92
93 /* 2.0 hub on port 1 */
94 hub_2_0: hub@1 {
95 compatible = "usb424,2744";
96 reg = <1>;
97 peer-hub = <&hub_3_0>;
98 i2c-bus = <&hub>;
99 reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
100 };
101
102 /* 3.0 hub on port 2 */
103 hub_3_0: hub@2 {
104 compatible = "usb424,5744";
105 reg = <2>;
106 peer-hub = <&hub_2_0>;
107 i2c-bus = <&hub>;
108 reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
109 };
110 };
111

3. 한국어 전문 번역

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

USB5744 4-port SmartHub

1-21

GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 schema는 Microchip USB5744 4-port hub controller를 정의합니다. USB5744 SmartHub는 저전력·저 pin-count USB 3.1 Gen 1 호환 hub로 SuperSpeed, High-Speed, Full-Speed, Low-Speed를 모두 지원합니다.

SuperSpeed hub가 USB 2.0 controller와 병렬로 동작하므로 5 Gbps SuperSpeed 전송은 더 느린 USB 2.0 traffic의 영향을 받지 않습니다. 관리자는 Michal Simek와 Radhey Shyam Pandey입니다.

USB·I2C compatible, 전원과 peer hub

22-54

허용 compatible은 USB device 표현용 `usb424,2744`, `usb424,5744`와 I2C 제어 표현용 `microchip,usb5744`입니다. register는 하나만 허용합니다.

`reset-gpios`는 GRST# pin을 제어합니다. `vdd-supply`와 `vdd2-supply`는 각각 3.3 V와 1.2 V 전원입니다. `peer-hub`는 controller의 짝 hub, `i2c-bus`는 I2C로 연결된 USB hub를 가리키는 phandle입니다.

properties:
  compatible:
    enum:
      - usb424,2744
      - usb424,5744
      - microchip,usb5744

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description:
      GPIO controlling the GRST# pin.

  vdd-supply:
    description:
      3V3 power supply to the hub

  vdd2-supply:
    description:
      1V2 power supply to the hub

  peer-hub:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandle to the peer hub on the controller.

  i2c-bus:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      phandle of an usb hub connected via i2c bus.

표현 방식별 속성 제약

55-76

`compatible`과 `reg`가 필수입니다. `microchip,usb5744` I2C node에서는 `reset-gpios`, 두 supply, `peer-hub`, `i2c-bus`를 허용하지 않습니다.

반대로 USB device ID로 표현한 hub는 `usb-device.yaml`을 따릅니다. 정의되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: microchip,usb5744
    then:
      properties:
        reset-gpios: false
        vdd-supply: false
        vdd2-supply: false
        peer-hub: false
        i2c-bus: false
    else:
      $ref: /schemas/usb/usb-device.yaml

additionalProperties: false

I2C 제어 node와 USB2·USB3 peer hub

77-110

예제 I2C node `usb-hub@2d`는 address 0x2d에서 `microchip,usb5744` 제어 interface를 나타냅니다.

USB controller port 1의 product 2744 USB 2.0 hub와 port 2의 product 5744 USB 3.0 hub는 서로를 `peer-hub`로 가리키고 같은 I2C node와 active-low GPIO 3 reset을 공유합니다.

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c: i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        hub: usb-hub@2d {
            compatible = "microchip,usb5744";
            reg = <0x2d>;
        };
    };

    usb {
        #address-cells = <1>;
        #size-cells = <0>;

        /* 2.0 hub on port 1 */
        hub_2_0: hub@1 {
            compatible = "usb424,2744";
            reg = <1>;
            peer-hub = <&hub_3_0>;
            i2c-bus = <&hub>;
            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
        };

        /* 3.0 hub on port 2 */
        hub_3_0: hub@2 {
            compatible = "usb424,5744";
            reg = <2>;
            peer-hub = <&hub_2_0>;
            i2c-bus = <&hub>;
            reset-gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
        };
    };