요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/usb251xb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip USB 2.0 Hi-Speed Hub Controller
maintainers:
- Richard Leitner <[email protected]>
properties:
compatible:
enum:
- microchip,usb2422
- microchip,usb2512b
- microchip,usb2512bi
- microchip,usb2513b
- microchip,usb2513bi
- microchip,usb2514b
- microchip,usb2514bi
- microchip,usb2517
- microchip,usb2517i
- microchip,usb251xb
reg:
maxItems: 1
reset-gpios:
description: |
Should specify the gpio for hub reset
vdd-supply:
description: |
Should specify the phandle to the regulator supplying vdd
skip-config:
$ref: /schemas/types.yaml#/definitions/flag
description: |
Skip Hub configuration, but only send the USB-Attach command
vendor-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0424
description: |
Set USB Vendor ID of the hub
product-id:
$ref: /schemas/types.yaml#/definitions/uint16
description: |
Set USB Product ID of the hub
device-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0bb3
description: |
Set USB Device ID of the hub
language-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0000
description: |
Set USB Language ID
manufacturer:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Manufacturer string (max 31 characters long)
product:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Product string (max 31 characters long)
serial:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Serial string (max 31 characters long)
bus-powered:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between self- and bus-powered operation
(boolean, default is self-powered)
self-powered:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between self- and bus-powered operation
(boolean, default is self-powered)
disable-hi-speed:
$ref: /schemas/types.yaml#/definitions/flag
description: |
disable USB Hi-Speed support (boolean)
multi-tt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between multi- and single-transaction-translator
(boolean, default is multi-tt)
single-tt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between multi- and single-transaction-translator
(boolean, default is multi-tt)
disable-eop:
$ref: /schemas/types.yaml#/definitions/flag
description: |
disable End of Packet generation in full-speed mode (boolean)
ganged-sensing:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select over-current sense type in self-powered mode
(boolean, default is individual)
individual-sensing:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select over-current sense type in self-powered mode
(boolean, default is individual)
ganged-port-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select port power switching mode (boolean, default is individual)
individual-port-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select port power switching mode (boolean, default is individual)
dynamic-power-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable auto-switching from self- to bus-powered operation if the
local power source is removed or unavailable (boolean)
oc-delay-us:
enum: [100, 4000, 8000, 16000]
default: 8000
description: |
Delay time (in microseconds) for filtering the over-current sense
inputs. If an invalid value is given, the default is used instead.
compound-device:
$ref: /schemas/types.yaml#/definitions/flag
description: |
indicate the hub is part of a compound device (boolean)
port-mapping-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable port mapping mode (boolean)
led-usb-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
led usb/speed indication mode selection (boolean, default is speed mode)
led-speed-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
led usb/speed indication mode selection (boolean, default is speed mode)
string-support:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable string descriptor support (required for manufacturer, product
and serial string configuration)
non-removable-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Should specify the ports which have a non-removable device connected.
sp-disabled-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Specifies the ports which will be self-power disabled
bp-disabled-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Specifies the ports which will be bus-power disabled
sp-max-total-current-microamp:
maximum: 100000
default: 1000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry including a permanently
attached peripheral.
bp-max-total-current-microamp:
maximum: 510000
default: 100000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry including a permanently
attached peripheral.
sp-max-removable-current-microamp:
maximum: 100000
default: 1000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry excluding a permanently
attached peripheral.
bp-max-removable-current-microamp:
maximum: 510000
default: 100000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry excluding a permanently
attached peripheral.
power-on-time-ms:
maximum: 510
default: 100
description: |
Specifies the time it takes from the time the host initiates the
power-on sequence to a port until the port has adequate power.
swap-dx-lanes:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
Specifies the ports which will swap the differential-pair (D+/D-),
default is not-swapped.
additionalProperties: false
required:
- compatible
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
usb-hub@2c {
compatible = "microchip,usb2512b";
reg = <0x2c>;
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
};
usb-hub@2d {
compatible = "microchip,usb2514b";
reg = <0x2d>;
vendor-id = /bits/ 16 <0x0000>;
product-id = /bits/ 16 <0x0000>;
string-support;
manufacturer = "Foo";
product = "Foo-Bar";
serial = "1234567890A";
/* correct misplaced usb connectors on port 1,2 */
swap-dx-lanes = <1 2>;
};
};
- |
#include <dt-bindings/gpio/gpio.h>
usb-hub {
/* I2C is not connected */
compatible = "microchip,usb2512b";
reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Microchip USB 2.0 Hi-Speed hub controller
1-11GPL-2.0으로 배포되는 이 스키마는 Microchip USB 2.0 Hi-Speed hub controller 계열을 정의합니다. 관리자는 Richard Leitner입니다.
지원 제품과 기본 자원
12-35`compatible`은 USB2422, USB2512B·2512BI, USB2513B·2513BI, USB2514B·2514BI, USB2517·2517I와 일반 `microchip,usb251xb`를 지원합니다.
`reg`는 최대 한 항목입니다. `reset-gpios`는 hub reset GPIO를, `vdd-supply`는 VDD를 공급하는 regulator phandle을 지정합니다.
properties:
compatible:
enum:
- microchip,usb2422
- microchip,usb2512b
- microchip,usb2512bi
- microchip,usb2513b
- microchip,usb2513bi
- microchip,usb2514b
- microchip,usb2514bi
- microchip,usb2517
- microchip,usb2517i
- microchip,usb251xb
reg:
maxItems: 1
reset-gpios:
description: |
Should specify the gpio for hub reset
vdd-supply:
description: |
Should specify the phandle to the regulator supplying vdd
configuration 생략과 descriptor ID
36-64`skip-config`는 hub configuration을 건너뛰고 USB-Attach command만 전송합니다. `vendor-id`의 기본값은 0x0424, `device-id`는 0x0bb3, `language-id`는 0x0000이며 `product-id`에는 별도 기본값이 없습니다. 각 ID는 16-bit 정수입니다.
skip-config:
$ref: /schemas/types.yaml#/definitions/flag
description: |
Skip Hub configuration, but only send the USB-Attach command
vendor-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0424
description: |
Set USB Vendor ID of the hub
product-id:
$ref: /schemas/types.yaml#/definitions/uint16
description: |
Set USB Product ID of the hub
device-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0bb3
description: |
Set USB Device ID of the hub
language-id:
$ref: /schemas/types.yaml#/definitions/uint16
default: 0x0000
description: |
Set USB Language ID
문자열 descriptor와 전원 방식
65-91`manufacturer`, `product`, `serial`은 각각 최대 31자의 USB 문자열 descriptor를 설정합니다. `bus-powered`와 `self-powered` flag는 bus 전원과 자체 전원 동작 사이를 선택하며 기본값은 self-powered입니다.
manufacturer:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Manufacturer string (max 31 characters long)
product:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Product string (max 31 characters long)
serial:
$ref: /schemas/types.yaml#/definitions/string
description: |
Set USB Serial string (max 31 characters long)
bus-powered:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between self- and bus-powered operation
(boolean, default is self-powered)
self-powered:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between self- and bus-powered operation
(boolean, default is self-powered)
Hi-Speed, transaction translator와 EOP
92-113`disable-hi-speed`는 USB Hi-Speed 지원을 끕니다. `multi-tt`와 `single-tt`는 multi 또는 single transaction translator를 선택하며 기본값은 multi-TT입니다. `disable-eop`는 full-speed mode에서 End of Packet 생성을 비활성화합니다.
disable-hi-speed:
$ref: /schemas/types.yaml#/definitions/flag
description: |
disable USB Hi-Speed support (boolean)
multi-tt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between multi- and single-transaction-translator
(boolean, default is multi-tt)
single-tt:
$ref: /schemas/types.yaml#/definitions/flag
description: |
selects between multi- and single-transaction-translator
(boolean, default is multi-tt)
disable-eop:
$ref: /schemas/types.yaml#/definitions/flag
description: |
disable End of Packet generation in full-speed mode (boolean)
과전류 감지와 port power switching
114-148`ganged-sensing`과 `individual-sensing`은 self-powered mode의 over-current sense 방식을 선택하며 기본값은 individual입니다. `ganged-port-switching`과 `individual-port-switching`도 port power switching 방식을 선택하고 기본값은 individual입니다.
`dynamic-power-switching`은 local power source가 제거되거나 사용할 수 없을 때 self-powered에서 bus-powered 동작으로 자동 전환합니다. `oc-delay-us`는 과전류 감지 입력의 filtering delay로 100, 4000, 8000, 16000 microseconds 중 하나이며 기본값은 8000입니다. 잘못된 값에는 기본값을 사용합니다.
ganged-sensing:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select over-current sense type in self-powered mode
(boolean, default is individual)
individual-sensing:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select over-current sense type in self-powered mode
(boolean, default is individual)
ganged-port-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select port power switching mode (boolean, default is individual)
individual-port-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
select port power switching mode (boolean, default is individual)
dynamic-power-switching:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable auto-switching from self- to bus-powered operation if the
local power source is removed or unavailable (boolean)
oc-delay-us:
enum: [100, 4000, 8000, 16000]
default: 8000
description: |
Delay time (in microseconds) for filtering the over-current sense
inputs. If an invalid value is given, the default is used instead.
compound device, port mapping과 LED
149-174`compound-device`는 hub가 compound device의 일부임을 나타내고 `port-mapping-mode`는 port mapping mode를 활성화합니다.
`led-usb-mode`와 `led-speed-mode`는 LED의 USB 또는 speed indication mode를 선택하며 기본값은 speed mode입니다. `string-support`는 문자열 descriptor 지원을 켜며 manufacturer, product, serial 문자열을 설정하려면 필요합니다.
compound-device:
$ref: /schemas/types.yaml#/definitions/flag
description: |
indicate the hub is part of a compound device (boolean)
port-mapping-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable port mapping mode (boolean)
led-usb-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
led usb/speed indication mode selection (boolean, default is speed mode)
led-speed-mode:
$ref: /schemas/types.yaml#/definitions/flag
description: |
led usb/speed indication mode selection (boolean, default is speed mode)
string-support:
$ref: /schemas/types.yaml#/definitions/flag
description: |
enable string descriptor support (required for manufacturer, product
and serial string configuration)
고정 port와 VBUS 전류 제한
175-224`non-removable-ports`는 제거할 수 없는 device가 연결된 port 목록입니다. `sp-disabled-ports`와 `bp-disabled-ports`는 각각 self-power와 bus-power에서 비활성화할 port를 지정합니다.
`sp-max-total-current-microamp`와 `bp-max-total-current-microamp`는 hub silicon, 관련 회로와 영구 연결 peripheral을 포함한 VBUS 최대 총전류입니다. self-power 항목은 최대 100000µA·기본 1000µA, bus-power 항목은 최대 510000µA·기본 100000µA입니다.
`sp-max-removable-current-microamp`와 `bp-max-removable-current-microamp`는 영구 연결 peripheral을 제외한 최대 전류이며 같은 최대값과 기본값 쌍을 사용합니다. 원문은 네 전류 설명 모두 동작 상태를 self-powered hub로 표기하므로 그 문구를 그대로 보존합니다.
non-removable-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Should specify the ports which have a non-removable device connected.
sp-disabled-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Specifies the ports which will be self-power disabled
bp-disabled-ports:
$ref: /schemas/types.yaml#/definitions/uint8-array
description: |
Specifies the ports which will be bus-power disabled
sp-max-total-current-microamp:
maximum: 100000
default: 1000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry including a permanently
attached peripheral.
bp-max-total-current-microamp:
maximum: 510000
default: 100000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry including a permanently
attached peripheral.
sp-max-removable-current-microamp:
maximum: 100000
default: 1000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry excluding a permanently
attached peripheral.
bp-max-removable-current-microamp:
maximum: 510000
default: 100000
description: |
Specifies max current consumed by the hub from VBUS when
operating in self-powered hub. It includes the hub silicon
along with all associated circuitry excluding a permanently
attached peripheral.
power-on 시간과 D+/D- lane 교환
225-243`power-on-time-ms`는 host가 port power-on sequence를 시작한 뒤 충분한 전력이 공급될 때까지의 시간이며 최대 510ms, 기본 100ms입니다. `swap-dx-lanes`는 D+/D- differential pair를 서로 바꿀 port를 지정하며 기본값은 교환하지 않음입니다.
스키마가 정의하지 않은 추가 속성은 허용하지 않고 `compatible`은 필수입니다.
power-on-time-ms:
maximum: 510
default: 100
description: |
Specifies the time it takes from the time the host initiates the
power-on sequence to a port until the port has adequate power.
swap-dx-lanes:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
Specifies the ports which will swap the differential-pair (D+/D-),
default is not-swapped.
additionalProperties: false
required:
- compatible
I2C 연결 hub 예제
244-270첫 I2C 예제의 USB2512B hub는 address 0x2c와 active-low reset GPIO만 사용합니다. address 0x2d의 USB2514B는 vendor·product ID와 문자열 descriptor를 설정하고, 잘못 배치된 port 1·2 connector를 보정하기 위해 `swap-dx-lanes = <1 2>`를 사용합니다.
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
usb-hub@2c {
compatible = "microchip,usb2512b";
reg = <0x2c>;
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
};
usb-hub@2d {
compatible = "microchip,usb2514b";
reg = <0x2d>;
vendor-id = /bits/ 16 <0x0000>;
product-id = /bits/ 16 <0x0000>;
string-support;
manufacturer = "Foo";
product = "Foo-Bar";
serial = "1234567890A";
/* correct misplaced usb connectors on port 1,2 */
swap-dx-lanes = <1 2>;
};
};
I2C 비연결 예제
271-278두 번째 예제는 I2C가 연결되지 않은 USB2512B를 일반 `usb-hub` node로 선언하고 active-low reset GPIO만 제공합니다.
- |
#include <dt-bindings/gpio/gpio.h>
usb-hub {
/* I2C is not connected */
compatible = "microchip,usb2512b";
reset-gpios = <&porta 8 GPIO_ACTIVE_LOW>;
};
요약과 해설
usb251xb.yaml:1-278Microchip USB251xB hub의 descriptor, 전원, port와 전류 설정을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, property, enum, phandle, example, source path와 원문 줄 좌표를 원형대로 보존합니다.