요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/ufs/samsung,exynos-ufs.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung SoC series UFS host controller
maintainers:
- Alim Akhtar <alim.akhtar@samsung.com>
description: |
Each Samsung UFS host controller instance should have its own node.
properties:
compatible:
enum:
- google,gs101-ufs
- samsung,exynos7-ufs
- samsung,exynosautov9-ufs
- samsung,exynosautov9-ufs-vh
- tesla,fsd-ufs
reg:
items:
- description: HCI register
- description: vendor specific register
- description: unipro register
- description: UFS protector register
reg-names:
items:
- const: hci
- const: vs_hci
- const: unipro
- const: ufsp
clocks:
minItems: 2
items:
- description: ufs link core clock
- description: unipro main clock
- description: fmp clock
- description: ufs aclk clock
- description: ufs pclk clock
- description: sysreg clock
clock-names:
minItems: 2
items:
- const: core_clk
- const: sclk_unipro_main
- const: fmp
- const: aclk
- const: pclk
- const: sysreg
phys:
maxItems: 1
phy-names:
const: ufs-phy
samsung,sysreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to FSYSx sysreg node
- description: offset of the control register for UFS io coherency setting
description:
Phandle and offset to the FSYSx sysreg for UFS io coherency setting.
dma-coherent: true
required:
- compatible
- reg
- phys
- phy-names
- clocks
- clock-names
allOf:
- $ref: ufs-common.yaml
- if:
properties:
compatible:
contains:
const: google,gs101-ufs
then:
properties:
clocks:
minItems: 6
clock-names:
minItems: 6
else:
properties:
clocks:
maxItems: 2
clock-names:
maxItems: 2
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/exynos7-clk.h>
ufs: ufs@15570000 {
compatible = "samsung,exynos7-ufs";
reg = <0x15570000 0x100>,
<0x15570100 0x100>,
<0x15571000 0x200>,
<0x15572000 0x300>;
reg-names = "hci", "vs_hci", "unipro", "ufsp";
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock_fsys1 ACLK_UFS20_LINK>,
<&clock_fsys1 SCLK_UFSUNIPRO20_USER>;
clock-names = "core_clk", "sclk_unipro_main";
pinctrl-names = "default";
pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
phys = <&ufs_phy>;
phy-names = "ufs-phy";
};
...
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Samsung SoC UFS host controller
1-14GPL-2.0-only 또는 BSD-2-Clause 이중 라이선스의 이 스키마는 Samsung SoC 계열 UFS host controller를 정의합니다. 관리자는 Alim Akhtar입니다. 각 Samsung UFS host controller instance는 자체 node를 가져야 합니다.
Compatible, 4개 register 및 최대 6개 clock
15-74지원하는 `compatible`은 `google,gs101-ufs`, `samsung,exynos7-ufs`, `samsung,exynosautov9-ufs`, `samsung,exynosautov9-ufs-vh`, `tesla,fsd-ufs`입니다. Register는 HCI, vendor-specific HCI, UniPro, UFS protector 영역 4개이며 이름은 `hci`, `vs_hci`, `unipro`, `ufsp`입니다.
Clock은 최소 2개이며 UFS link core, UniPro main, FMP, UFS ACLK, UFS PCLK, SYSREG clock 순서입니다. 이름은 `core_clk`, `sclk_unipro_main`, `fmp`, `aclk`, `pclk`, `sysreg`입니다. PHY는 최대 한 개이고 이름은 `ufs-phy`입니다.
`samsung,sysreg`는 UFS I/O coherency를 설정하기 위한 FSYSx sysreg node phandle과 control-register offset의 쌍입니다. `dma-coherent`도 사용할 수 있습니다.
properties:
compatible:
enum:
- google,gs101-ufs
- samsung,exynos7-ufs
- samsung,exynosautov9-ufs
- samsung,exynosautov9-ufs-vh
- tesla,fsd-ufs
reg:
items:
- description: HCI register
- description: vendor specific register
- description: unipro register
- description: UFS protector register
reg-names:
items:
- const: hci
- const: vs_hci
- const: unipro
- const: ufsp
clocks:
minItems: 2
items:
- description: ufs link core clock
- description: unipro main clock
- description: fmp clock
- description: ufs aclk clock
- description: ufs pclk clock
- description: sysreg clock
clock-names:
minItems: 2
items:
- const: core_clk
- const: sclk_unipro_main
- const: fmp
- const: aclk
- const: pclk
- const: sysreg
phys:
maxItems: 1
phy-names:
const: ufs-phy
samsung,sysreg:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: phandle to FSYSx sysreg node
- description: offset of the control register for UFS io coherency setting
description:
Phandle and offset to the FSYSx sysreg for UFS io coherency setting.
dma-coherent: true
필수 속성과 GS101 6-clock 조건
75-108필수 속성은 `compatible`, `reg`, `phys`, `phy-names`, `clocks`, `clock-names`입니다. 공통 속성은 `ufs-common.yaml`을 참조합니다. `google,gs101-ufs`이면 clock과 clock-name을 최소 6개 제공해야 하고, 그 밖의 compatible에서는 각각 최대 2개입니다. 평가되지 않은 추가 속성은 허용하지 않습니다.
required:
- compatible
- reg
- phys
- phy-names
- clocks
- clock-names
allOf:
- $ref: ufs-common.yaml
- if:
properties:
compatible:
contains:
const: google,gs101-ufs
then:
properties:
clocks:
minItems: 6
clock-names:
minItems: 6
else:
properties:
clocks:
maxItems: 2
clock-names:
maxItems: 2
unevaluatedProperties: false
Exynos7 UFS node 예제
109-130예제 `ufs@15570000`은 `samsung,exynos7-ufs`와 HCI, vendor HCI, UniPro, protector의 4개 register 영역을 선언합니다. Level-high GIC SPI interrupt 200과 `ACLK_UFS20_LINK`, `SCLK_UFSUNIPRO20_USER` clock을 각각 `core_clk`, `sclk_unipro_main`으로 연결합니다. 기본 pinctrl에는 `ufs_rst_n`과 `ufs_refclk_out`을 사용하고 PHY는 `ufs_phy`를 `ufs-phy` 이름으로 지정합니다.
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/exynos7-clk.h>
ufs: ufs@15570000 {
compatible = "samsung,exynos7-ufs";
reg = <0x15570000 0x100>,
<0x15570100 0x100>,
<0x15571000 0x200>,
<0x15572000 0x300>;
reg-names = "hci", "vs_hci", "unipro", "ufsp";
interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clock_fsys1 ACLK_UFS20_LINK>,
<&clock_fsys1 SCLK_UFSUNIPRO20_USER>;
clock-names = "core_clk", "sclk_unipro_main";
pinctrl-names = "default";
pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
phys = <&ufs_phy>;
phy-names = "ufs-phy";
};
...
요약과 해설
samsung,exynos-ufs.yaml:1-130Samsung·Google·Tesla UFS controller의 register, clock, PHY, sysreg coherency와 GS101 조건을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.