← Documents Documentation/devicetree/bindings/ufs/rockchip,rk3576-ufshc.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / UFS

Rockchip RK3576 UFS Host Controller

RK3576 UFS controller의 5개 register, 4개 clock, 5개 reset과 active-low device reset GPIO를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

rockchip,rk3576-ufshc.yaml:1-106

RK3576 UFS controller의 5개 register, 4개 clock, 5개 reset과 active-low device reset GPIO를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 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/rockchip,rk3576-ufshc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Rockchip UFS Host Controller
8
9 maintainers:
10 - Shawn Lin <shawn.lin@rock-chips.com>
11
12 allOf:
13 - $ref: ufs-common.yaml
14
15 properties:
16 compatible:
17 const: rockchip,rk3576-ufshc
18
19 reg:
20 maxItems: 5
21
22 reg-names:
23 items:
24 - const: hci
25 - const: mphy
26 - const: hci_grf
27 - const: mphy_grf
28 - const: hci_apb
29
30 clocks:
31 maxItems: 4
32
33 clock-names:
34 items:
35 - const: core
36 - const: pclk
37 - const: pclk_mphy
38 - const: ref_out
39
40 power-domains:
41 maxItems: 1
42
43 resets:
44 maxItems: 5
45
46 reset-names:
47 items:
48 - const: biu
49 - const: sys
50 - const: ufs
51 - const: grf
52 - const: mphy
53
54 reset-gpios:
55 maxItems: 1
56 description: |
57 GPIO specifiers for host to reset the whole UFS device including PHY and
58 memory. This gpio is active low and should choose the one whose high output
59 voltage is lower than 1.5V based on the UFS spec.
60
61 required:
62 - compatible
63 - reg
64 - reg-names
65 - clocks
66 - clock-names
67 - interrupts
68 - power-domains
69 - resets
70 - reset-names
71 - reset-gpios
72
73 unevaluatedProperties: false
74
75 examples:
76 - |
77 #include <dt-bindings/clock/rockchip,rk3576-cru.h>
78 #include <dt-bindings/reset/rockchip,rk3576-cru.h>
79 #include <dt-bindings/interrupt-controller/arm-gic.h>
80 #include <dt-bindings/power/rockchip,rk3576-power.h>
81 #include <dt-bindings/pinctrl/rockchip.h>
82 #include <dt-bindings/gpio/gpio.h>
83
84 soc {
85 #address-cells = <2>;
86 #size-cells = <2>;
87
88 ufshc: ufshc@2a2d0000 {
89 compatible = "rockchip,rk3576-ufshc";
90 reg = <0x0 0x2a2d0000 0x0 0x10000>,
91 <0x0 0x2b040000 0x0 0x10000>,
92 <0x0 0x2601f000 0x0 0x1000>,
93 <0x0 0x2603c000 0x0 0x1000>,
94 <0x0 0x2a2e0000 0x0 0x10000>;
95 reg-names = "hci", "mphy", "hci_grf", "mphy_grf", "hci_apb";
96 clocks = <&cru ACLK_UFS_SYS>, <&cru PCLK_USB_ROOT>, <&cru PCLK_MPHY>,
97 <&cru CLK_REF_UFS_CLKOUT>;
98 clock-names = "core", "pclk", "pclk_mphy", "ref_out";
99 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
100 power-domains = <&power RK3576_PD_USB>;
101 resets = <&cru SRST_A_UFS_BIU>, <&cru SRST_A_UFS_SYS>, <&cru SRST_A_UFS>,
102 <&cru SRST_P_UFS_GRF>, <&cru SRST_MPHY_INIT>;
103 reset-names = "biu", "sys", "ufs", "grf", "mphy";
104 reset-gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
105 };
106 };
107

3. 한국어 전문 번역

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

Rockchip RK3576 UFS host controller

1-11

GPL-2.0-only 또는 BSD-2-Clause 이중 라이선스의 이 스키마는 Rockchip UFS host controller를 정의합니다. 관리자는 Shawn Lin입니다.

5개 register·reset과 4개 clock

12-60

공통 UFS 속성은 `ufs-common.yaml`을 참조하고 `compatible`은 `rockchip,rk3576-ufshc`입니다. `reg`는 최대 5개이며 이름은 `hci`, `mphy`, `hci_grf`, `mphy_grf`, `hci_apb` 순서입니다. Clock은 최대 4개이고 이름은 `core`, `pclk`, `pclk_mphy`, `ref_out`입니다.

`power-domains`는 최대 한 항목입니다. Reset은 최대 5개이고 이름은 `biu`, `sys`, `ufs`, `grf`, `mphy` 순서입니다. `reset-gpios`는 host가 PHY와 memory를 포함한 UFS device 전체를 reset할 때 사용합니다. 이 GPIO는 active-low이며 UFS specification에 따라 high 출력 전압이 1.5 V보다 낮은 GPIO를 선택해야 합니다.

allOf:
  - $ref: ufs-common.yaml

properties:
  compatible:
    const: rockchip,rk3576-ufshc

  reg:
    maxItems: 5

  reg-names:
    items:
      - const: hci
      - const: mphy
      - const: hci_grf
      - const: mphy_grf
      - const: hci_apb

  clocks:
    maxItems: 4

  clock-names:
    items:
      - const: core
      - const: pclk
      - const: pclk_mphy
      - const: ref_out

  power-domains:
    maxItems: 1

  resets:
    maxItems: 5

  reset-names:
    items:
      - const: biu
      - const: sys
      - const: ufs
      - const: grf
      - const: mphy

  reset-gpios:
    maxItems: 1
    description: |
      GPIO specifiers for host to reset the whole UFS device including PHY and
      memory. This gpio is active low and should choose the one whose high output
      voltage is lower than 1.5V based on the UFS spec.

필수 resource

61-74

필수 속성은 `compatible`, `reg`, `reg-names`, `clocks`, `clock-names`, `interrupts`, `power-domains`, `resets`, `reset-names`, `reset-gpios`입니다. 평가되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - interrupts
  - power-domains
  - resets
  - reset-names
  - reset-gpios

unevaluatedProperties: false

RK3576 UFS node 예제

75-106

예제 `ufshc@2a2d0000`은 `rockchip,rk3576-ufshc`와 5개 register 영역을 스키마 이름 순서로 연결합니다. Clock은 `ACLK_UFS_SYS`, `PCLK_USB_ROOT`, `PCLK_MPHY`, `CLK_REF_UFS_CLKOUT`을 각각 `core`, `pclk`, `pclk_mphy`, `ref_out`으로 지정합니다.

Level-high GIC SPI interrupt 361, `RK3576_PD_USB` power domain, BIU·SYS·UFS·GRF·MPHY용 reset 5개를 사용합니다. Device reset GPIO는 GPIO4의 `RK_PD0`이며 active-low입니다.

examples:
  - |
    #include <dt-bindings/clock/rockchip,rk3576-cru.h>
    #include <dt-bindings/reset/rockchip,rk3576-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/rockchip,rk3576-power.h>
    #include <dt-bindings/pinctrl/rockchip.h>
    #include <dt-bindings/gpio/gpio.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        ufshc: ufshc@2a2d0000 {
            compatible = "rockchip,rk3576-ufshc";
            reg = <0x0 0x2a2d0000 0x0 0x10000>,
                  <0x0 0x2b040000 0x0 0x10000>,
                  <0x0 0x2601f000 0x0 0x1000>,
                  <0x0 0x2603c000 0x0 0x1000>,
                  <0x0 0x2a2e0000 0x0 0x10000>;
            reg-names = "hci", "mphy", "hci_grf", "mphy_grf", "hci_apb";
            clocks = <&cru ACLK_UFS_SYS>, <&cru PCLK_USB_ROOT>, <&cru PCLK_MPHY>,
                     <&cru CLK_REF_UFS_CLKOUT>;
            clock-names = "core", "pclk", "pclk_mphy", "ref_out";
            interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
            power-domains = <&power RK3576_PD_USB>;
            resets = <&cru SRST_A_UFS_BIU>, <&cru SRST_A_UFS_SYS>, <&cru SRST_A_UFS>,
                     <&cru SRST_P_UFS_GRF>, <&cru SRST_MPHY_INIT>;
            reset-names = "biu", "sys", "ufs", "grf", "mphy";
            reset-gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
        };
    };