요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/ufs-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Common properties for Universal Flash Storage (UFS) Host Controllers
maintainers:
- Alim Akhtar <[email protected]>
- Avri Altman <[email protected]>
properties:
clocks: true
clock-names: true
freq-table-hz:
items:
items:
- description: Minimum frequency for given clock in Hz
- description: Maximum frequency for given clock in Hz
deprecated: true
description: |
Preferred is operating-points-v2.
Array of <min max> operating frequencies in Hz stored in the same order
as the clocks property. If either this property or operating-points-v2 is
not defined or a value in the array is "0" then it is assumed that the
frequency is set by the parent clock or a fixed rate clock source.
operating-points-v2:
description:
Preferred over freq-table-hz.
If present, each OPP must contain array of frequencies stored in the same
order for each clock. If clock frequency in the array is "0" then it is
assumed that the frequency is set by the parent clock or a fixed rate
clock source.
opp-table:
type: object
interrupts:
maxItems: 1
lanes-per-direction:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2]
default: 2
description:
Number of lanes available per direction. Note that it is assume same
number of lanes is used both directions at once.
vdd-hba-supply:
description:
Phandle to UFS host controller supply regulator node.
vcc-supply:
description:
Phandle to VCC supply regulator node.
vccq-supply:
description:
Phandle to VCCQ supply regulator node.
vccq2-supply:
description:
Phandle to VCCQ2 supply regulator node.
vcc-supply-1p8:
type: boolean
description:
For embedded UFS devices, valid VCC range is 1.7-1.95V or 2.7-3.6V. This
boolean property when set, specifies to use low voltage range of
1.7-1.95V. Note for external UFS cards this property is invalid and valid
VCC range is always 2.7-3.6V.
vcc-max-microamp:
description:
Specifies max. load that can be drawn from VCC supply.
vccq-max-microamp:
description:
Specifies max. load that can be drawn from VCCQ supply.
vccq2-max-microamp:
description:
Specifies max. load that can be drawn from VCCQ2 supply.
msi-parent: true
limit-hs-gear:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 6
default: 6
description:
Restricts the maximum HS gear used in both TX and RX directions.
limit-gear-rate:
$ref: /schemas/types.yaml#/definitions/string
enum: [rate-a, rate-b]
default: rate-b
description:
Restricts the UFS controller to rate-a or rate-b for both TX and
RX directions.
dependencies:
freq-table-hz: [ clocks ]
operating-points-v2: [ clocks, clock-names ]
required:
- interrupts
allOf:
- if:
required:
- freq-table-hz
then:
properties:
operating-points-v2: false
- if:
required:
- operating-points-v2
then:
properties:
freq-table-hz: false
additionalProperties: true
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
UFS host controller 공통 속성
1-12GPL-2.0-only 또는 BSD-2-Clause 이중 라이선스의 이 스키마는 Universal Flash Storage(UFS) host controller의 공통 속성을 정의합니다. 관리자는 Alim Akhtar와 Avri Altman입니다.
Clock frequency table과 OPP
13-42`clocks`와 `clock-names`를 사용할 수 있습니다. `freq-table-hz`는 각 clock과 같은 순서로 `<minimum maximum>` Hz 쌍을 저장하지만 폐기 예정이며 `operating-points-v2` 사용이 권장됩니다. 속성이 없거나 배열 값이 0이면 parent clock 또는 fixed-rate clock source가 주파수를 설정한다고 간주합니다.
`operating-points-v2`가 있으면 각 OPP는 clock과 같은 순서의 frequency 배열을 포함해야 합니다. 배열 값 0의 의미는 동일하게 parent 또는 fixed-rate source가 결정한다는 뜻입니다. `opp-table`은 object입니다.
properties:
clocks: true
clock-names: true
freq-table-hz:
items:
items:
- description: Minimum frequency for given clock in Hz
- description: Maximum frequency for given clock in Hz
deprecated: true
description: |
Preferred is operating-points-v2.
Array of <min max> operating frequencies in Hz stored in the same order
as the clocks property. If either this property or operating-points-v2 is
not defined or a value in the array is "0" then it is assumed that the
frequency is set by the parent clock or a fixed rate clock source.
operating-points-v2:
description:
Preferred over freq-table-hz.
If present, each OPP must contain array of frequencies stored in the same
order for each clock. If clock frequency in the array is "0" then it is
assumed that the frequency is set by the parent clock or a fixed rate
clock source.
opp-table:
type: object
Interrupt와 lane 수
43-53`interrupts`는 최대 한 항목입니다. `lanes-per-direction`은 uint32 값 1 또는 2이며 기본값은 2입니다. 양방향에서 동시에 같은 수의 lane을 사용한다고 가정합니다.
interrupts:
maxItems: 1
lanes-per-direction:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2]
default: 2
description:
Number of lanes available per direction. Note that it is assume same
number of lanes is used both directions at once.
UFS 전원과 최대 부하
54-89`vdd-hba-supply`는 UFS host controller regulator, `vcc-supply`, `vccq-supply`, `vccq2-supply`는 각각 해당 전원 regulator의 phandle입니다.
Embedded UFS device의 VCC 유효 범위는 1.7~1.95 V 또는 2.7~3.6 V입니다. Boolean `vcc-supply-1p8`을 설정하면 낮은 1.7~1.95 V 범위를 사용합니다. External UFS card에서는 이 속성이 유효하지 않으며 VCC는 항상 2.7~3.6 V입니다. `vcc-max-microamp`, `vccq-max-microamp`, `vccq2-max-microamp`는 각 supply에서 끌어올 수 있는 최대 부하를 지정합니다.
vdd-hba-supply:
description:
Phandle to UFS host controller supply regulator node.
vcc-supply:
description:
Phandle to VCC supply regulator node.
vccq-supply:
description:
Phandle to VCCQ supply regulator node.
vccq2-supply:
description:
Phandle to VCCQ2 supply regulator node.
vcc-supply-1p8:
type: boolean
description:
For embedded UFS devices, valid VCC range is 1.7-1.95V or 2.7-3.6V. This
boolean property when set, specifies to use low voltage range of
1.7-1.95V. Note for external UFS cards this property is invalid and valid
VCC range is always 2.7-3.6V.
vcc-max-microamp:
description:
Specifies max. load that can be drawn from VCC supply.
vccq-max-microamp:
description:
Specifies max. load that can be drawn from VCCQ supply.
vccq2-max-microamp:
description:
Specifies max. load that can be drawn from VCCQ2 supply.
MSI parent와 link gear 제한
90-107`msi-parent`를 사용할 수 있습니다. `limit-hs-gear`는 TX와 RX 양방향에서 사용할 최대 high-speed gear를 1~6으로 제한하며 기본값은 6입니다. `limit-gear-rate`는 양방향 rate를 `rate-a` 또는 `rate-b`로 제한하며 기본값은 `rate-b`입니다.
msi-parent: true
limit-hs-gear:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 6
default: 6
description:
Restricts the maximum HS gear used in both TX and RX directions.
limit-gear-rate:
$ref: /schemas/types.yaml#/definitions/string
enum: [rate-a, rate-b]
default: rate-b
description:
Restricts the UFS controller to rate-a or rate-b for both TX and
RX directions.
Clock dependency와 주파수 방식 상호배타
108-129`freq-table-hz`를 사용하려면 `clocks`가 필요합니다. `operating-points-v2`를 사용하려면 `clocks`와 `clock-names`가 모두 필요합니다. `interrupts`는 필수입니다. `freq-table-hz`와 `operating-points-v2`는 동시에 사용할 수 없으며 한 방식을 선택하면 다른 속성은 금지됩니다. Vendor별 스키마가 공통 속성을 확장할 수 있도록 추가 속성은 허용합니다.
dependencies:
freq-table-hz: [ clocks ]
operating-points-v2: [ clocks, clock-names ]
required:
- interrupts
allOf:
- if:
required:
- freq-table-hz
then:
properties:
operating-points-v2: false
- if:
required:
- operating-points-v2
then:
properties:
freq-table-hz: false
additionalProperties: true
요약과 해설
ufs-common.yaml:1-129UFS host controller의 clock·OPP·lane·전원·gear 제한과 dependency를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.