요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/starfive,jh7110-usb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: StarFive JH7110 wrapper module for the Cadence USBSS-DRD controller
maintainers:
- Minda Chen <minda.chen@starfivetech.com>
properties:
compatible:
const: starfive,jh7110-usb
ranges: true
starfive,stg-syscon:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to System Register Controller stg_syscon node.
- description: dr mode register offset of STG_SYSCONSAIF__SYSCFG register for USB.
description:
The phandle to System Register Controller syscon node and the offset
of STG_SYSCONSAIF__SYSCFG register for USB.
dr_mode:
enum: [host, otg, peripheral]
"#address-cells":
enum: [1, 2]
"#size-cells":
enum: [1, 2]
clocks:
items:
- description: link power management clock
- description: standby clock
- description: APB clock
- description: AXI clock
- description: UTMI APB clock
clock-names:
items:
- const: lpm
- const: stb
- const: apb
- const: axi
- const: utmi_apb
resets:
items:
- description: Power up reset
- description: APB clock reset
- description: AXI clock reset
- description: UTMI APB clock reset
reset-names:
items:
- const: pwrup
- const: apb
- const: axi
- const: utmi_apb
patternProperties:
"^usb@[0-9a-f]+$":
$ref: cdns,usb3.yaml#
description: Required child node
required:
- compatible
- ranges
- starfive,stg-syscon
- '#address-cells'
- '#size-cells'
- dr_mode
- clocks
- resets
additionalProperties: false
examples:
- |
usb@10100000 {
compatible = "starfive,jh7110-usb";
ranges = <0x0 0x10100000 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
starfive,stg-syscon = <&stg_syscon 0x4>;
clocks = <&syscrg 4>,
<&stgcrg 5>,
<&stgcrg 1>,
<&stgcrg 3>,
<&stgcrg 2>;
clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
resets = <&stgcrg 10>,
<&stgcrg 8>,
<&stgcrg 7>,
<&stgcrg 9>;
reset-names = "pwrup", "apb", "axi", "utmi_apb";
dr_mode = "host";
usb@0 {
compatible = "cdns,usb3";
reg = <0x0 0x10000>,
<0x10000 0x10000>,
<0x20000 0x10000>;
reg-names = "otg", "xhci", "dev";
interrupts = <100>, <108>, <110>;
interrupt-names = "host", "peripheral", "otg";
maximum-speed = "super-speed";
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
StarFive JH7110 Cadence USBSS-DRD wrapper
1-11GPL-2.0-only 또는 BSD-2-Clause로 배포되는 이 스키마는 Cadence USBSS-DRD controller를 감싸는 StarFive JH7110 wrapper module을 정의합니다. 관리자는 Minda Chen입니다.
compatible, syscon과 DR mode
12-35compatible은 `starfive,jh7110-usb`입니다. `ranges`로 child address space를 변환하며, `starfive,stg-syscon`은 System Register Controller의 `stg_syscon` node phandle과 USB용 `STG_SYSCONSAIF__SYSCFG` DR mode register offset을 한 묶음으로 전달합니다.
`dr_mode`는 host·OTG·peripheral 가운데 하나입니다. `#address-cells`와 `#size-cells`는 각각 1 또는 2를 허용합니다.
properties:
compatible:
const: starfive,jh7110-usb
ranges: true
starfive,stg-syscon:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to System Register Controller stg_syscon node.
- description: dr mode register offset of STG_SYSCONSAIF__SYSCFG register for USB.
description:
The phandle to System Register Controller syscon node and the offset
of STG_SYSCONSAIF__SYSCFG register for USB.
dr_mode:
enum: [host, otg, peripheral]
"#address-cells":
enum: [1, 2]
"#size-cells":
enum: [1, 2]
다섯 clock과 네 reset
36-66clock은 link power management, standby, APB, AXI, UTMI APB 순서로 다섯 개이며 이름은 각각 `lpm`, `stb`, `apb`, `axi`, `utmi_apb`입니다.
reset은 power-up, APB clock, AXI clock, UTMI APB clock 순서로 네 개이며 이름은 `pwrup`, `apb`, `axi`, `utmi_apb`입니다.
clocks:
items:
- description: link power management clock
- description: standby clock
- description: APB clock
- description: AXI clock
- description: UTMI APB clock
clock-names:
items:
- const: lpm
- const: stb
- const: apb
- const: axi
- const: utmi_apb
resets:
items:
- description: Power up reset
- description: APB clock reset
- description: AXI clock reset
- description: UTMI APB clock reset
reset-names:
items:
- const: pwrup
- const: apb
- const: axi
- const: utmi_apb
Cadence child와 필수 속성
67-83`usb@<hex-address>` 형식의 필수 child node는 `cdns,usb3.yaml`을 따릅니다. wrapper에는 compatible, ranges, syscon 지정자, address·size cell 수, DR mode, clocks와 resets가 모두 필요하며 추가 속성은 허용하지 않습니다.
patternProperties:
"^usb@[0-9a-f]+$":
$ref: cdns,usb3.yaml#
description: Required child node
required:
- compatible
- ranges
- starfive,stg-syscon
- '#address-cells'
- '#size-cells'
- dr_mode
- clocks
- resets
additionalProperties: false
JH7110 host mode 구성 예제
84-115예제 wrapper `usb@10100000`은 0x10100000에서 시작하는 0x100000-byte child range, STG syscon offset 0x4, 다섯 clock과 네 reset을 지정하고 host mode로 동작합니다.
내부 `usb@0` Cadence controller는 OTG·xHCI·device register 영역 세 개와 host·peripheral·OTG interrupt를 갖고 `maximum-speed`를 `super-speed`로 제한합니다.
examples:
- |
usb@10100000 {
compatible = "starfive,jh7110-usb";
ranges = <0x0 0x10100000 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
starfive,stg-syscon = <&stg_syscon 0x4>;
clocks = <&syscrg 4>,
<&stgcrg 5>,
<&stgcrg 1>,
<&stgcrg 3>,
<&stgcrg 2>;
clock-names = "lpm", "stb", "apb", "axi", "utmi_apb";
resets = <&stgcrg 10>,
<&stgcrg 8>,
<&stgcrg 7>,
<&stgcrg 9>;
reset-names = "pwrup", "apb", "axi", "utmi_apb";
dr_mode = "host";
usb@0 {
compatible = "cdns,usb3";
reg = <0x0 0x10000>,
<0x10000 0x10000>,
<0x20000 0x10000>;
reg-names = "otg", "xhci", "dev";
interrupts = <100>, <108>, <110>;
interrupt-names = "host", "peripheral", "otg";
maximum-speed = "super-speed";
};
};
요약과 해설
starfive,jh7110-usb.yaml:1-115JH7110 USB wrapper의 syscon, clock, reset과 Cadence child 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며, compatible, register, clock, reset, power domain, graph endpoint, source path와 원문 줄 좌표를 원형대로 보존합니다.