요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/rockchip,rk3576-ufshc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Rockchip UFS Host Controller
maintainers:
- Shawn Lin <[email protected]>
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.
required:
- compatible
- reg
- reg-names
- clocks
- clock-names
- interrupts
- power-domains
- resets
- reset-names
- reset-gpios
unevaluatedProperties: false
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>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Rockchip RK3576 UFS host controller
1-11GPL-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>;
};
};
요약과 해설
rockchip,rk3576-ufshc.yaml:1-106RK3576 UFS controller의 5개 register, 4개 clock, 5개 reset과 active-low device reset GPIO를 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, clock, register, phandle, voltage, interrupt, source path 및 원문 줄 좌표를 원형대로 보존합니다.