요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2020 Facebook Inc.
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ASPEED USB 2.0 Virtual Hub Controller
maintainers:
- Benjamin Herrenschmidt <[email protected]>
description: |+
The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub
register and several sets of Device and Endpoint registers to support
the Virtual Hub's downstream USB devices.
Supported number of devices and endpoints vary depending on hardware
revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
devices and 21 generic endpoints.
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
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
required:
- compatible
- reg
- clocks
- interrupts
- aspeed,vhub-downstream-ports
- aspeed,vhub-generic-endpoints
additionalProperties: false
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";
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
ASPEED USB 2.0 virtual hub
1-22GPL-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";
};
};
};
요약과 해설
aspeed,usb-vhub.yaml:1-139ASPEED virtual hub의 세대별 port·endpoint 수, USB 식별자, 다국어 string descriptor와 AST2500 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, PHY, endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.