요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
2. 영어 원문 전체
번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.
원문 전체 펼치기
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/ufs/ti,j721e-ufs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI J721e UFS Host Controller Glue Driver
maintainers:
- Vignesh Raghavendra <[email protected]>
properties:
compatible:
items:
- const: ti,j721e-ufs
reg:
maxItems: 1
description: address of TI UFS glue registers
clocks:
maxItems: 1
description: phandle to the M-PHY clock
power-domains:
maxItems: 1
assigned-clocks:
maxItems: 1
assigned-clock-parents:
maxItems: 1
"#address-cells":
const: 2
"#size-cells":
const: 2
ranges: true
required:
- compatible
- reg
- clocks
- power-domains
patternProperties:
"^ufs@[0-9a-f]+$":
$ref: cdns,ufshc.yaml
description: |
Cadence UFS controller node must be the child node.
unevaluatedProperties: false
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
bus {
#address-cells = <2>;
#size-cells = <2>;
ufs-wrapper@4e80000 {
compatible = "ti,j721e-ufs";
reg = <0x0 0x4e80000 0x0 0x100>;
power-domains = <&k3_pds 277>;
clocks = <&k3_clks 277 1>;
assigned-clocks = <&k3_clks 277 1>;
assigned-clock-parents = <&k3_clks 277 4>;
ranges = <0x0 0x0 0x0 0x4e80000 0x0 0x14000>;
#address-cells = <2>;
#size-cells = <2>;
ufs@4000 {
compatible = "cdns,ufshc-m31-16nm", "jedec,ufs-2.0";
reg = <0x0 0x4000 0x0 0x10000>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
freq-table-hz = <19200000 19200000>;
power-domains = <&k3_pds 277>;
clocks = <&k3_clks 277 1>;
assigned-clocks = <&k3_clks 277 1>;
assigned-clock-parents = <&k3_clks 277 4>;
clock-names = "core_clk";
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.
TI J721E UFS glue driver
1-11GPL-2.0 라이선스의 이 스키마는 TI J721E UFS host controller glue driver를 정의합니다. 관리자는 Vignesh Raghavendra입니다.
Glue register, M-PHY clock 및 child bus
12-41`compatible`은 `ti,j721e-ufs`입니다. `reg`는 TI UFS glue register 주소 한 개이고 `clocks`는 M-PHY clock phandle 한 개입니다. `power-domains`, `assigned-clocks`, `assigned-clock-parents`도 각각 최대 한 항목입니다.
Wrapper는 `#address-cells = 2`, `#size-cells = 2`인 bus이며 `ranges`를 사용해 child Cadence controller 주소를 매핑합니다.
properties:
compatible:
items:
- const: ti,j721e-ufs
reg:
maxItems: 1
description: address of TI UFS glue registers
clocks:
maxItems: 1
description: phandle to the M-PHY clock
power-domains:
maxItems: 1
assigned-clocks:
maxItems: 1
assigned-clock-parents:
maxItems: 1
"#address-cells":
const: 2
"#size-cells":
const: 2
ranges: true
필수 속성과 Cadence child node
42-56필수 속성은 `compatible`, `reg`, `clocks`, `power-domains`입니다. 이름이 `ufs@[0-9a-f]+` pattern과 일치하는 child node는 `cdns,ufshc.yaml`을 따라야 하며 Cadence UFS controller가 반드시 child node여야 합니다. 정의되지 않은 추가 속성은 허용하지 않습니다.
required:
- compatible
- reg
- clocks
- power-domains
patternProperties:
"^ufs@[0-9a-f]+$":
$ref: cdns,ufshc.yaml
description: |
Cadence UFS controller node must be the child node.
unevaluatedProperties: false
additionalProperties: false
J721E wrapper와 Cadence child 예제
57-90예제 `ufs-wrapper@4e80000`은 `ti,j721e-ufs`, 0x100-byte glue register, power domain 277, K3 clock 277/1과 parent 277/4를 사용합니다. `ranges`는 child 주소 공간 0부터 physical 0x4e80000의 0x14000-byte 영역으로 매핑합니다.
Child `ufs@4000`은 `cdns,ufshc-m31-16nm`과 `jedec,ufs-2.0`, 0x10000-byte register 영역, level-high GIC SPI interrupt 17을 사용합니다. Core clock은 19.2 MHz로 고정되고 wrapper와 같은 power domain 및 assigned clock 설정을 사용하며 이름은 `core_clk`입니다.
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
bus {
#address-cells = <2>;
#size-cells = <2>;
ufs-wrapper@4e80000 {
compatible = "ti,j721e-ufs";
reg = <0x0 0x4e80000 0x0 0x100>;
power-domains = <&k3_pds 277>;
clocks = <&k3_clks 277 1>;
assigned-clocks = <&k3_clks 277 1>;
assigned-clock-parents = <&k3_clks 277 4>;
ranges = <0x0 0x0 0x0 0x4e80000 0x0 0x14000>;
#address-cells = <2>;
#size-cells = <2>;
ufs@4000 {
compatible = "cdns,ufshc-m31-16nm", "jedec,ufs-2.0";
reg = <0x0 0x4000 0x0 0x10000>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
freq-table-hz = <19200000 19200000>;
power-domains = <&k3_pds 277>;
clocks = <&k3_clks 277 1>;
assigned-clocks = <&k3_clks 277 1>;
assigned-clock-parents = <&k3_clks 277 4>;
clock-names = "core_clk";
};
};
};
요약과 해설
ti,j721e-ufs.yaml:1-90TI J721E UFS wrapper와 child Cadence controller의 address mapping 및 resource를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.