요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/ci-hdrc-usb2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: USB2 ChipIdea USB controller
maintainers:
- Xu Yang <xu.yang_2@nxp.com>
- Peng Fan <peng.fan@nxp.com>
properties:
compatible:
oneOf:
- enum:
- chipidea,usb2
- lsi,zevio-usb
- nuvoton,npcm750-udc
- nvidia,tegra20-ehci
- nvidia,tegra20-udc
- nvidia,tegra30-ehci
- nvidia,tegra30-udc
- nvidia,tegra114-udc
- nvidia,tegra124-udc
- nxp,s32g2-usb
- qcom,ci-hdrc
- items:
- enum:
- nvidia,tegra114-ehci
- nvidia,tegra124-ehci
- nvidia,tegra210-ehci
- const: nvidia,tegra30-ehci
- items:
- const: xlnx,zynq-usb-2.20a
- const: chipidea,usb2
- items:
- enum:
- nuvoton,npcm845-udc
- const: nuvoton,npcm750-udc
- items:
- enum:
- nxp,s32g3-usb
- const: nxp,s32g2-usb
clocks:
minItems: 1
maxItems: 2
clock-names:
minItems: 1
maxItems: 2
operating-points-v2:
description: A phandle to the OPP table containing the performance states.
$ref: /schemas/types.yaml#/definitions/phandle
phy-select:
description:
Phandler of TCSR node with two argument that indicate register
offset, and phy index
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- description: phandle to TCSR node
- description: register offset
- description: phy index
nvidia,phy:
description: phandle of usb phy that connects to the port. Use "phys" instead.
$ref: /schemas/types.yaml#/definitions/phandle
deprecated: true
nvidia,needs-double-reset:
description: Indicates double reset or not.
type: boolean
deprecated: true
ulpi:
type: object
additionalProperties: false
patternProperties:
"^phy(-[0-9])?$":
description: The phy child node for Qcom chips.
type: object
$ref: /schemas/phy/qcom,usb-hs-phy.yaml
required:
- compatible
allOf:
- $ref: chipidea,usb2-common.yaml#
- $ref: usb-hcd.yaml#
- $ref: usb-drd.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/berlin2.h>
usb@f7ed0000 {
compatible = "chipidea,usb2";
reg = <0xf7ed0000 0x10000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&chip CLKID_USB0>;
phys = <&usb_phy0>;
phy-names = "usb-phy";
vbus-supply = <®_usb0_vbus>;
itc-setting = <0x4>; /* 4 micro-frames */
/* Incremental burst of unspecified length */
ahb-burst-config = <0x0>;
tx-burst-size-dword = <0x10>; /* 64 bytes */
rx-burst-size-dword = <0x10>;
extcon = <0>, <&usb_id>;
phy-clkgate-delay-us = <400>;
mux-controls = <&usb_switch>;
mux-control-names = "usb_switch";
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
USB2 ChipIdea controller
1-12GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 schema는 일반 USB2 ChipIdea controller를 정의합니다. 관리자는 Xu Yang과 Peng Fan입니다.
Platform별 compatible과 fallback
13-45단독 compatible은 `chipidea,usb2`, `lsi,zevio-usb`, `nuvoton,npcm750-udc`, Tegra20·30 EHCI/UDC, Tegra114·124 UDC, `nxp,s32g2-usb`, `qcom,ci-hdrc`입니다.
Tegra114·124·210 EHCI는 `nvidia,tegra30-ehci` fallback을 둡니다. `xlnx,zynq-usb-2.20a`는 `chipidea,usb2`를 뒤따릅니다. NPCM845 UDC는 NPCM750 UDC를, S32G3 USB는 S32G2 USB를 fallback으로 둡니다.
properties:
compatible:
oneOf:
- enum:
- chipidea,usb2
- lsi,zevio-usb
- nuvoton,npcm750-udc
- nvidia,tegra20-ehci
- nvidia,tegra20-udc
- nvidia,tegra30-ehci
- nvidia,tegra30-udc
- nvidia,tegra114-udc
- nvidia,tegra124-udc
- nxp,s32g2-usb
- qcom,ci-hdrc
- items:
- enum:
- nvidia,tegra114-ehci
- nvidia,tegra124-ehci
- nvidia,tegra210-ehci
- const: nvidia,tegra30-ehci
- items:
- const: xlnx,zynq-usb-2.20a
- const: chipidea,usb2
- items:
- enum:
- nuvoton,npcm845-udc
- const: nuvoton,npcm750-udc
- items:
- enum:
- nxp,s32g3-usb
- const: nxp,s32g2-usb
Clock, OPP와 TCSR PHY 선택
46-67`clocks`와 `clock-names`는 각각 1~2개입니다. `operating-points-v2`는 performance state를 담은 OPP table phandle입니다.
`phy-select`는 TCSR node phandle, register offset, PHY index의 세 값을 순서대로 담는 phandle array입니다.
clocks:
minItems: 1
maxItems: 2
clock-names:
minItems: 1
maxItems: 2
operating-points-v2:
description: A phandle to the OPP table containing the performance states.
$ref: /schemas/types.yaml#/definitions/phandle
phy-select:
description:
Phandler of TCSR node with two argument that indicate register
offset, and phy index
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- description: phandle to TCSR node
- description: register offset
- description: phy index
폐기된 NVIDIA 속성과 Qualcomm ULPI PHY
68-86NVIDIA port PHY phandle `nvidia,phy`는 폐기되었으므로 `phys`를 사용해야 합니다. Double reset 필요 여부를 나타내는 boolean `nvidia,needs-double-reset`도 폐기되었습니다.
선택적인 `ulpi` object는 추가 속성을 허용하지 않습니다. `phy` 또는 `phy-N` pattern의 child는 Qualcomm chip용 PHY이며 `qcom,usb-hs-phy.yaml`을 따릅니다.
nvidia,phy:
description: phandle of usb phy that connects to the port. Use "phys" instead.
$ref: /schemas/types.yaml#/definitions/phandle
deprecated: true
nvidia,needs-double-reset:
description: Indicates double reset or not.
type: boolean
deprecated: true
ulpi:
type: object
additionalProperties: false
patternProperties:
"^phy(-[0-9])?$":
description: The phy child node for Qcom chips.
type: object
$ref: /schemas/phy/qcom,usb-hs-phy.yaml
공통 ChipIdea·HCD·DRD schema
87-96필수 속성은 `compatible`입니다. 이 binding은 `chipidea,usb2-common.yaml`, `usb-hcd.yaml`, `usb-drd.yaml`을 모두 참조하며 평가되지 않은 추가 속성은 허용하지 않습니다.
required:
- compatible
allOf:
- $ref: chipidea,usb2-common.yaml#
- $ref: usb-hcd.yaml#
- $ref: usb-drd.yaml#
unevaluatedProperties: false
ChipIdea controller 예제
97-121예제 `usb@f7ed0000`은 일반 ChipIdea USB2 compatible, 0x10000-byte register 영역, level-high GIC SPI 11, USB0 clock, `usb_phy0`, VBUS regulator를 사용합니다.
ITC 값 4는 micro-frame 4개를 뜻합니다. AHB burst config는 0이고 TX·RX burst는 0x10 dword, 즉 TX 주석 기준 64 byte입니다. VBUS extcon 자리는 빈 `<0>`, ID extcon은 `usb_id`입니다. PHY clock gate 지연은 400 us이고 host/device mux 이름은 `usb_switch`입니다.
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/berlin2.h>
usb@f7ed0000 {
compatible = "chipidea,usb2";
reg = <0xf7ed0000 0x10000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&chip CLKID_USB0>;
phys = <&usb_phy0>;
phy-names = "usb-phy";
vbus-supply = <®_usb0_vbus>;
itc-setting = <0x4>; /* 4 micro-frames */
/* Incremental burst of unspecified length */
ahb-burst-config = <0x0>;
tx-burst-size-dword = <0x10>; /* 64 bytes */
rx-burst-size-dword = <0x10>;
extcon = <0>, <&usb_id>;
phy-clkgate-delay-us = <400>;
mux-controls = <&usb_switch>;
mux-control-names = "usb_switch";
};
...
요약과 해설
ci-hdrc-usb2.yaml:1-121일반 ChipIdea USB2 controller의 platform별 compatible, clock·OPP·PHY select, 폐기 속성과 tuning 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, interrupt, connector, PHY, DMA, source path와 원문 줄 좌표를 원형대로 보존합니다.