← Documents Documentation/devicetree/bindings/ufs/ufs-common.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / UFS

Common Properties for UFS Host Controllers

UFS host controller의 clock·OPP·lane·전원·gear 제한과 dependency를 설명합니다.

Source pathDocumentation/devicetree/bindings/ufs/ufs-common.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

ufs-common.yaml:1-129

UFS host controller의 clock·OPP·lane·전원·gear 제한과 dependency를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/ufs/ufs-common.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Common properties for Universal Flash Storage (UFS) Host Controllers
8
9 maintainers:
10 - Alim Akhtar <[email protected]>
11 - Avri Altman <[email protected]>
12
13 properties:
14 clocks: true
15
16 clock-names: true
17
18 freq-table-hz:
19 items:
20 items:
21 - description: Minimum frequency for given clock in Hz
22 - description: Maximum frequency for given clock in Hz
23 deprecated: true
24 description: |
25 Preferred is operating-points-v2.
26
27 Array of <min max> operating frequencies in Hz stored in the same order
28 as the clocks property. If either this property or operating-points-v2 is
29 not defined or a value in the array is "0" then it is assumed that the
30 frequency is set by the parent clock or a fixed rate clock source.
31
32 operating-points-v2:
33 description:
34 Preferred over freq-table-hz.
35 If present, each OPP must contain array of frequencies stored in the same
36 order for each clock. If clock frequency in the array is "0" then it is
37 assumed that the frequency is set by the parent clock or a fixed rate
38 clock source.
39
40 opp-table:
41 type: object
42
43 interrupts:
44 maxItems: 1
45
46 lanes-per-direction:
47 $ref: /schemas/types.yaml#/definitions/uint32
48 enum: [1, 2]
49 default: 2
50 description:
51 Number of lanes available per direction. Note that it is assume same
52 number of lanes is used both directions at once.
53
54 vdd-hba-supply:
55 description:
56 Phandle to UFS host controller supply regulator node.
57
58 vcc-supply:
59 description:
60 Phandle to VCC supply regulator node.
61
62 vccq-supply:
63 description:
64 Phandle to VCCQ supply regulator node.
65
66 vccq2-supply:
67 description:
68 Phandle to VCCQ2 supply regulator node.
69
70 vcc-supply-1p8:
71 type: boolean
72 description:
73 For embedded UFS devices, valid VCC range is 1.7-1.95V or 2.7-3.6V. This
74 boolean property when set, specifies to use low voltage range of
75 1.7-1.95V. Note for external UFS cards this property is invalid and valid
76 VCC range is always 2.7-3.6V.
77
78 vcc-max-microamp:
79 description:
80 Specifies max. load that can be drawn from VCC supply.
81
82 vccq-max-microamp:
83 description:
84 Specifies max. load that can be drawn from VCCQ supply.
85
86 vccq2-max-microamp:
87 description:
88 Specifies max. load that can be drawn from VCCQ2 supply.
89
90 msi-parent: true
91
92 limit-hs-gear:
93 $ref: /schemas/types.yaml#/definitions/uint32
94 minimum: 1
95 maximum: 6
96 default: 6
97 description:
98 Restricts the maximum HS gear used in both TX and RX directions.
99
100 limit-gear-rate:
101 $ref: /schemas/types.yaml#/definitions/string
102 enum: [rate-a, rate-b]
103 default: rate-b
104 description:
105 Restricts the UFS controller to rate-a or rate-b for both TX and
106 RX directions.
107
108 dependencies:
109 freq-table-hz: [ clocks ]
110 operating-points-v2: [ clocks, clock-names ]
111
112 required:
113 - interrupts
114
115 allOf:
116 - if:
117 required:
118 - freq-table-hz
119 then:
120 properties:
121 operating-points-v2: false
122 - if:
123 required:
124 - operating-points-v2
125 then:
126 properties:
127 freq-table-hz: false
128
129 additionalProperties: true
130

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

UFS host controller 공통 속성

1-12

GPL-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