요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/genesys,gl850g.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Genesys Logic USB hub controller
maintainers:
- Icenowy Zheng <uwu@icenowy.me>
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
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
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>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Genesys Logic USB hub controller
1-11GPL-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>;
};
};
요약과 해설
genesys,gl850g.yaml:1-113Genesys hub product별 reset·전원·peer-hub 제약과 USB2·USB3 peer 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, GPIO, PHY, source path와 원문 줄 좌표를 원형대로 보존합니다.