← Documents Documentation/devicetree/bindings/ufs/ti,j721e-ufs.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / UFS

TI J721E UFS Host Controller Glue Driver

TI J721E UFS wrapper와 child Cadence controller의 address mapping 및 resource를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

ti,j721e-ufs.yaml:1-90

TI J721E UFS wrapper와 child Cadence controller의 address mapping 및 resource를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/ufs/ti,j721e-ufs.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: TI J721e UFS Host Controller Glue Driver
8
9 maintainers:
10 - Vignesh Raghavendra <[email protected]>
11
12 properties:
13 compatible:
14 items:
15 - const: ti,j721e-ufs
16
17 reg:
18 maxItems: 1
19 description: address of TI UFS glue registers
20
21 clocks:
22 maxItems: 1
23 description: phandle to the M-PHY clock
24
25 power-domains:
26 maxItems: 1
27
28 assigned-clocks:
29 maxItems: 1
30
31 assigned-clock-parents:
32 maxItems: 1
33
34 "#address-cells":
35 const: 2
36
37 "#size-cells":
38 const: 2
39
40 ranges: true
41
42 required:
43 - compatible
44 - reg
45 - clocks
46 - power-domains
47
48 patternProperties:
49 "^ufs@[0-9a-f]+$":
50 $ref: cdns,ufshc.yaml
51 description: |
52 Cadence UFS controller node must be the child node.
53 unevaluatedProperties: false
54
55 additionalProperties: false
56
57 examples:
58 - |
59 #include <dt-bindings/interrupt-controller/irq.h>
60 #include <dt-bindings/interrupt-controller/arm-gic.h>
61
62 bus {
63 #address-cells = <2>;
64 #size-cells = <2>;
65
66 ufs-wrapper@4e80000 {
67 compatible = "ti,j721e-ufs";
68 reg = <0x0 0x4e80000 0x0 0x100>;
69 power-domains = <&k3_pds 277>;
70 clocks = <&k3_clks 277 1>;
71 assigned-clocks = <&k3_clks 277 1>;
72 assigned-clock-parents = <&k3_clks 277 4>;
73
74 ranges = <0x0 0x0 0x0 0x4e80000 0x0 0x14000>;
75 #address-cells = <2>;
76 #size-cells = <2>;
77
78 ufs@4000 {
79 compatible = "cdns,ufshc-m31-16nm", "jedec,ufs-2.0";
80 reg = <0x0 0x4000 0x0 0x10000>;
81 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
82 freq-table-hz = <19200000 19200000>;
83 power-domains = <&k3_pds 277>;
84 clocks = <&k3_clks 277 1>;
85 assigned-clocks = <&k3_clks 277 1>;
86 assigned-clock-parents = <&k3_clks 277 4>;
87 clock-names = "core_clk";
88 };
89 };
90 };
91

3. 한국어 전문 번역

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

TI J721E UFS glue driver

1-11

GPL-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";
            };
        };
    };