요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/samsung,exynos-usb2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos SoC USB 2.0 EHCI/OHCI Controller
maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
enum:
- samsung,exynos4210-ehci
- samsung,exynos4210-ohci
clocks:
maxItems: 1
clock-names:
items:
- const: usbhost
interrupts:
maxItems: 1
phys:
minItems: 1
maxItems: 3
phy-names:
items:
enum: [host, hsic0, hsic1]
minItems: 1
maxItems: 3
reg:
maxItems: 1
samsung,vbus-gpio:
description:
Only for controller in EHCI mode, if present, specifies the GPIO that
needs to be pulled up for the bus to be powered.
required:
- compatible
- clocks
- clock-names
- interrupts
- phys
- phy-names
- reg
allOf:
- $ref: usb-hcd.yaml#
- if:
properties:
compatible:
contains:
const: samsung,exynos4210-ohci
then:
properties:
samsung,vbus-gpio: false
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/exynos5420.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
usb@12110000 {
compatible = "samsung,exynos4210-ehci";
reg = <0x12110000 0x100>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_USBH20>;
clock-names = "usbhost";
phys = <&usb2_phy 0>;
phy-names = "host";
#address-cells = <1>;
#size-cells = <0>;
hub@1 {
compatible = "usb0424,9514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
usbether@1 {
compatible = "usb0424,ec00";
reg = <1>;
local-mac-address = [00 00 00 00 00 00];
};
};
};
usb@12120000 {
compatible = "samsung,exynos4210-ohci";
reg = <0x12120000 0x100>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_USBH20>;
clock-names = "usbhost";
phys = <&usb2_phy 0>;
phy-names = "host";
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Exynos USB 2.0 EHCI/OHCI
1-11GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Samsung Exynos SoC USB 2.0 EHCI/OHCI controller를 정의합니다. 관리자는 Krzysztof Kozlowski입니다.
clock, PHY와 EHCI VBUS GPIO
12-45compatible은 `samsung,exynos4210-ehci` 또는 `samsung,exynos4210-ohci`입니다. controller clock은 하나이고 이름은 `usbhost`, interrupt와 register 영역도 각각 하나입니다.
PHY는 1~3개이며 이름은 `host`, `hsic0`, `hsic1` 가운데 순서대로 지정합니다. `samsung,vbus-gpio`는 EHCI mode에서만 사용할 수 있고, bus에 전원을 공급하기 위해 pull-up해야 하는 GPIO를 나타냅니다.
properties:
compatible:
enum:
- samsung,exynos4210-ehci
- samsung,exynos4210-ohci
clocks:
maxItems: 1
clock-names:
items:
- const: usbhost
interrupts:
maxItems: 1
phys:
minItems: 1
maxItems: 3
phy-names:
items:
enum: [host, hsic0, hsic1]
minItems: 1
maxItems: 3
reg:
maxItems: 1
samsung,vbus-gpio:
description:
Only for controller in EHCI mode, if present, specifies the GPIO that
needs to be pulled up for the bus to be powered.
필수 속성과 OHCI 제한
46-67필수 속성은 `compatible`, `clocks`, `clock-names`, `interrupts`, `phys`, `phy-names`, `reg`입니다. 공통 `usb-hcd.yaml`을 상속하며 OHCI compatible에서는 `samsung,vbus-gpio`를 허용하지 않습니다. 평가되지 않은 추가 속성도 허용하지 않습니다.
required:
- compatible
- clocks
- clock-names
- interrupts
- phys
- phy-names
- reg
allOf:
- $ref: usb-hcd.yaml#
- if:
properties:
compatible:
contains:
const: samsung,exynos4210-ohci
then:
properties:
samsung,vbus-gpio: false
unevaluatedProperties: false
EHCI hub·Ethernet과 OHCI 예제
68-107EHCI 예제 `usb@12110000`은 0x100-byte 영역, level-high GIC SPI 71, `CLK_USBH20`, host PHY를 사용합니다. child `hub@1`은 USB0424:9514 hub이고 그 아래 `usbether@1`은 USB0424:EC00 Ethernet device이며 빈 local MAC address를 둡니다.
OHCI 예제 `usb@12120000`도 같은 interrupt, clock, host PHY 구성을 사용하지만 EHCI 전용 VBUS GPIO는 없습니다.
examples:
- |
#include <dt-bindings/clock/exynos5420.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
usb@12110000 {
compatible = "samsung,exynos4210-ehci";
reg = <0x12110000 0x100>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_USBH20>;
clock-names = "usbhost";
phys = <&usb2_phy 0>;
phy-names = "host";
#address-cells = <1>;
#size-cells = <0>;
hub@1 {
compatible = "usb0424,9514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
usbether@1 {
compatible = "usb0424,ec00";
reg = <1>;
local-mac-address = [00 00 00 00 00 00];
};
};
};
usb@12120000 {
compatible = "samsung,exynos4210-ohci";
reg = <0x12120000 0x100>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock CLK_USBH20>;
clock-names = "usbhost";
phys = <&usb2_phy 0>;
phy-names = "host";
};
요약과 해설
samsung,exynos-usb2.yaml:1-107Exynos EHCI/OHCI의 clock, PHY, VBUS GPIO와 USB child 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, GPIO, clock, PHY, hub mode, source path와 원문 줄 좌표를 원형대로 보존합니다.