← Documents Documentation/devicetree/bindings/usb/aspeed,usb-vhub.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / USB

ASPEED USB 2.0 Virtual Hub Controller

ASPEED virtual hub의 세대별 port·endpoint 수, USB 식별자, 다국어 string descriptor와 AST2500 예제를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

aspeed,usb-vhub.yaml:1-139

ASPEED virtual hub의 세대별 port·endpoint 수, USB 식별자, 다국어 string descriptor와 AST2500 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, PHY, endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (c) 2020 Facebook Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: ASPEED USB 2.0 Virtual Hub Controller
9
10 maintainers:
11 - Benjamin Herrenschmidt <benh@kernel.crashing.org>
12
13 description: |+
14 The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub
15 register and several sets of Device and Endpoint registers to support
16 the Virtual Hub's downstream USB devices.
17
18 Supported number of devices and endpoints vary depending on hardware
19 revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
20 and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
21 devices and 21 generic endpoints.
22
23 properties:
24 compatible:
25 enum:
26 - aspeed,ast2400-usb-vhub
27 - aspeed,ast2500-usb-vhub
28 - aspeed,ast2600-usb-vhub
29
30 reg:
31 maxItems: 1
32
33 clocks:
34 maxItems: 1
35
36 interrupts:
37 maxItems: 1
38
39 aspeed,vhub-downstream-ports:
40 description: Number of downstream ports supported by the Virtual Hub
41 $ref: /schemas/types.yaml#/definitions/uint32
42 default: 5
43 minimum: 1
44 maximum: 7
45
46 aspeed,vhub-generic-endpoints:
47 description: Number of generic endpoints supported by the Virtual Hub
48 $ref: /schemas/types.yaml#/definitions/uint32
49 default: 15
50 minimum: 1
51 maximum: 21
52
53 vhub-vendor-id:
54 description: vhub Vendor ID
55 $ref: /schemas/types.yaml#/definitions/uint32
56 maximum: 65535
57
58 vhub-product-id:
59 description: vhub Product ID
60 $ref: /schemas/types.yaml#/definitions/uint32
61 maximum: 65535
62
63 vhub-device-revision:
64 description: vhub Device Revision in binary-coded decimal
65 $ref: /schemas/types.yaml#/definitions/uint32
66 maximum: 65535
67
68 vhub-strings:
69 type: object
70 additionalProperties: false
71
72 properties:
73 '#address-cells':
74 const: 1
75
76 '#size-cells':
77 const: 0
78
79 patternProperties:
80 '^string@[0-9a-f]+$':
81 type: object
82 additionalProperties: false
83 description: string descriptors of the specific language
84
85 properties:
86 reg:
87 maxItems: 1
88 description: 16-bit Language Identifier defined by USB-IF
89
90 manufacturer:
91 description: vhub manufacturer
92 $ref: /schemas/types.yaml#/definitions/string
93
94 product:
95 description: vhub product name
96 $ref: /schemas/types.yaml#/definitions/string
97
98 serial-number:
99 description: vhub device serial number
100 $ref: /schemas/types.yaml#/definitions/string
101
102 required:
103 - compatible
104 - reg
105 - clocks
106 - interrupts
107 - aspeed,vhub-downstream-ports
108 - aspeed,vhub-generic-endpoints
109
110 additionalProperties: false
111
112 examples:
113 - |
114 #include <dt-bindings/clock/aspeed-clock.h>
115 vhub: usb-vhub@1e6a0000 {
116 compatible = "aspeed,ast2500-usb-vhub";
117 reg = <0x1e6a0000 0x300>;
118 interrupts = <5>;
119 clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
120 aspeed,vhub-downstream-ports = <5>;
121 aspeed,vhub-generic-endpoints = <15>;
122 pinctrl-names = "default";
123 pinctrl-0 = <&pinctrl_usb2ad_default>;
124
125 vhub-vendor-id = <0x1d6b>;
126 vhub-product-id = <0x0107>;
127 vhub-device-revision = <0x0100>;
128 vhub-strings {
129 #address-cells = <1>;
130 #size-cells = <0>;
131
132 string@409 {
133 reg = <0x409>;
134 manufacturer = "ASPEED";
135 product = "USB Virtual Hub";
136 serial-number = "0000";
137 };
138 };
139 };
140

3. 한국어 전문 번역

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

ASPEED USB 2.0 virtual hub

1-22

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 schema는 ASPEED USB 2.0 Virtual Hub Controller를 정의합니다. Copyright는 2020 Facebook Inc.이고 관리자는 Benjamin Herrenschmidt입니다.

Controller는 USB Hub register 한 세트와 여러 Device·Endpoint register 세트를 구현해 virtual hub의 downstream USB device를 지원합니다. AST2400과 AST2500은 downstream device 5개와 generic endpoint 15개를, AST2600은 downstream device 7개와 generic endpoint 21개를 지원합니다.

Compatible과 port·endpoint 수

23-52

지원 `compatible`은 `aspeed,ast2400-usb-vhub`, `aspeed,ast2500-usb-vhub`, `aspeed,ast2600-usb-vhub`입니다. `reg`, `clocks`, `interrupts`는 각각 최대 한 항목입니다.

`aspeed,vhub-downstream-ports`는 downstream port 수로 기본값 5, 범위 1~7입니다. `aspeed,vhub-generic-endpoints`는 generic endpoint 수로 기본값 15, 범위 1~21입니다. 두 속성은 uint32입니다.

properties:
  compatible:
    enum:
      - aspeed,ast2400-usb-vhub
      - aspeed,ast2500-usb-vhub
      - aspeed,ast2600-usb-vhub

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  interrupts:
    maxItems: 1

  aspeed,vhub-downstream-ports:
    description: Number of downstream ports supported by the Virtual Hub
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 5
    minimum: 1
    maximum: 7

  aspeed,vhub-generic-endpoints:
    description: Number of generic endpoints supported by the Virtual Hub
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 15
    minimum: 1
    maximum: 21

USB 식별자와 다국어 string descriptor

53-101

`vhub-vendor-id`, `vhub-product-id`는 각각 vendor ID와 product ID이고, `vhub-device-revision`은 binary-coded decimal 형식의 device revision입니다. 모두 uint32이며 최대값은 65535입니다.

선택적인 `vhub-strings` object는 `#address-cells = 1`, `#size-cells = 0`을 사용합니다. `string@[0-9a-f]+` child는 특정 언어의 string descriptor이며 추가 속성을 허용하지 않습니다. `reg`는 USB-IF가 정의한 16-bit Language Identifier이고, `manufacturer`, `product`, `serial-number`는 각각 문자열입니다.

vhub-vendor-id:
  description: vhub Vendor ID
  $ref: /schemas/types.yaml#/definitions/uint32
  maximum: 65535

vhub-product-id:
  description: vhub Product ID
  $ref: /schemas/types.yaml#/definitions/uint32
  maximum: 65535

vhub-device-revision:
  description: vhub Device Revision in binary-coded decimal
  $ref: /schemas/types.yaml#/definitions/uint32
  maximum: 65535

vhub-strings:
  type: object
  additionalProperties: false

  properties:
    '#address-cells':
      const: 1

    '#size-cells':
      const: 0

  patternProperties:
    '^string@[0-9a-f]+$':
      type: object
      additionalProperties: false
      description: string descriptors of the specific language

      properties:
        reg:
          maxItems: 1
          description: 16-bit Language Identifier defined by USB-IF

        manufacturer:
          description: vhub manufacturer
          $ref: /schemas/types.yaml#/definitions/string

        product:
          description: vhub product name
          $ref: /schemas/types.yaml#/definitions/string

        serial-number:
          description: vhub device serial number
          $ref: /schemas/types.yaml#/definitions/string

필수 속성

102-111

필수 속성은 `compatible`, `reg`, `clocks`, `interrupts`, `aspeed,vhub-downstream-ports`, `aspeed,vhub-generic-endpoints`입니다. Schema에 정의되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - clocks
  - interrupts
  - aspeed,vhub-downstream-ports
  - aspeed,vhub-generic-endpoints

additionalProperties: false

AST2500 virtual hub 예제

112-139

예제 `vhub: usb-vhub@1e6a0000`은 AST2500 compatible, 0x300-byte register 영역, interrupt 5, USBPORT1 gate clock을 사용합니다. Downstream port는 5개, generic endpoint는 15개이며 기본 pinctrl은 `pinctrl_usb2ad_default`입니다.

Vendor ID는 0x1d6b, product ID는 0x0107, device revision은 0x0100입니다. `string@409`의 language ID는 0x409이고 manufacturer는 `ASPEED`, product는 `USB Virtual Hub`, serial number는 `0000`입니다.

examples:
  - |
    #include <dt-bindings/clock/aspeed-clock.h>
    vhub: usb-vhub@1e6a0000 {
        compatible = "aspeed,ast2500-usb-vhub";
        reg = <0x1e6a0000 0x300>;
        interrupts = <5>;
        clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
        aspeed,vhub-downstream-ports = <5>;
        aspeed,vhub-generic-endpoints = <15>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usb2ad_default>;

        vhub-vendor-id = <0x1d6b>;
        vhub-product-id = <0x0107>;
        vhub-device-revision = <0x0100>;
        vhub-strings {
            #address-cells = <1>;
            #size-cells = <0>;

            string@409 {
                reg = <0x409>;
                manufacturer = "ASPEED";
                product = "USB Virtual Hub";
                serial-number = "0000";
            };
        };
    };