요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/allwinner,sun4i-a10-musb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Allwinner A10 mUSB OTG Controller
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Maxime Ripard <mripard@kernel.org>
properties:
compatible:
oneOf:
- enum:
- allwinner,sun4i-a10-musb
- allwinner,sun6i-a31-musb
- allwinner,sun8i-a33-musb
- allwinner,sun8i-h3-musb
- allwinner,suniv-f1c100s-musb
- items:
- enum:
- allwinner,sun8i-a83t-musb
- allwinner,sun20i-d1-musb
- allwinner,sun50i-a100-musb
- allwinner,sun50i-h6-musb
- allwinner,sun55i-a523-musb
- const: allwinner,sun8i-a33-musb
- items:
- const: allwinner,sun50i-h616-musb
- const: allwinner,sun8i-h3-musb
reg:
maxItems: 1
interrupts:
maxItems: 1
interrupt-names:
const: mc
clocks:
maxItems: 1
resets:
maxItems: 1
phys:
maxItems: 1
phy-names:
const: usb
extcon:
description: Extcon specifier for the OTG PHY
dr_mode:
enum:
- host
- otg
- peripheral
allwinner,sram:
description: Phandle to the device SRAM
$ref: /schemas/types.yaml#/definitions/phandle-array
required:
- compatible
- reg
- interrupts
- interrupt-names
- clocks
- phys
- phy-names
- dr_mode
- extcon
if:
properties:
compatible:
contains:
enum:
- allwinner,sun6i-a31-musb
- allwinner,sun8i-a33-musb
- allwinner,sun8i-h3-musb
then:
required:
- resets
additionalProperties: false
examples:
- |
usb_otg: usb@1c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ahb_gates 0>;
interrupts = <38>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
dr_mode = "peripheral";
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Allwinner A10 mUSB OTG controller
1-12GPL-2.0 라이선스의 이 YAML schema는 Allwinner A10 계열 mUSB OTG controller를 정의합니다. Schema 식별자는 `allwinner,sun4i-a10-musb.yaml`이며 관리자는 Chen-Yu Tsai와 Maxime Ripard입니다.
SoC별 compatible 조합
13-33A10, A31, A33, H3, F1C100s는 각각의 compatible을 단독으로 사용합니다. A83T, D1, A100, H6, A523는 SoC별 compatible 다음에 fallback `allwinner,sun8i-a33-musb`를 둡니다. H616은 `allwinner,sun50i-h616-musb` 다음에 fallback `allwinner,sun8i-h3-musb`를 둡니다.
properties:
compatible:
oneOf:
- enum:
- allwinner,sun4i-a10-musb
- allwinner,sun6i-a31-musb
- allwinner,sun8i-a33-musb
- allwinner,sun8i-h3-musb
- allwinner,suniv-f1c100s-musb
- items:
- enum:
- allwinner,sun8i-a83t-musb
- allwinner,sun20i-d1-musb
- allwinner,sun50i-a100-musb
- allwinner,sun50i-h6-musb
- allwinner,sun55i-a523-musb
- const: allwinner,sun8i-a33-musb
- items:
- const: allwinner,sun50i-h616-musb
- const: allwinner,sun8i-h3-musb
Register, interrupt, clock, PHY와 동작 모드
34-67`reg`, `interrupts`, `clocks`, `resets`, `phys`는 각각 최대 한 항목입니다. Interrupt 이름은 `mc`, PHY 이름은 `usb`여야 합니다. `extcon`은 OTG PHY용 extcon 지정자입니다.
`dr_mode`는 `host`, `otg`, `peripheral` 중 하나입니다. `allwinner,sram`은 device SRAM을 가리키는 phandle array이며 공통 type 정의를 참조합니다.
reg:
maxItems: 1
interrupts:
maxItems: 1
interrupt-names:
const: mc
clocks:
maxItems: 1
resets:
maxItems: 1
phys:
maxItems: 1
phy-names:
const: usb
extcon:
description: Extcon specifier for the OTG PHY
dr_mode:
enum:
- host
- otg
- peripheral
allwinner,sram:
description: Phandle to the device SRAM
$ref: /schemas/types.yaml#/definitions/phandle-array
필수 속성과 reset 조건
68-93필수 속성은 `compatible`, `reg`, `interrupts`, `interrupt-names`, `clocks`, `phys`, `phy-names`, `dr_mode`, `extcon`입니다.
Compatible 목록에 A31, A33 또는 H3 MUSB가 포함되면 `resets`도 필수입니다. Schema에 정의되지 않은 추가 속성은 허용하지 않습니다.
required:
- compatible
- reg
- interrupts
- interrupt-names
- clocks
- phys
- phy-names
- dr_mode
- extcon
if:
properties:
compatible:
contains:
enum:
- allwinner,sun6i-a31-musb
- allwinner,sun8i-a33-musb
- allwinner,sun8i-h3-musb
then:
required:
- resets
additionalProperties: false
A10 peripheral mode 예제
94-108예제 `usb_otg: usb@1c13000` node는 A10 MUSB compatible과 0x400-byte register 영역, AHB gate clock, interrupt 38을 사용합니다. Interrupt 이름은 `mc`이고 PHY와 extcon은 모두 `usbphy`의 index 0을 참조합니다. PHY 이름은 `usb`, 동작 모드는 `peripheral`입니다.
examples:
- |
usb_otg: usb@1c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ahb_gates 0>;
interrupts = <38>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
dr_mode = "peripheral";
};
...
요약과 해설
allwinner,sun4i-a10-musb.yaml:1-108Allwinner A10 계열 MUSB OTG controller의 SoC별 compatible, register, interrupt, PHY, extcon, 동작 모드와 reset 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, interrupt, clock, PHY, DMA, source path와 원문 줄 좌표를 원형대로 보존합니다.