← Documents Documentation/devicetree/bindings/spi/qcom,spi-qpic-snand.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

Qualcomm QPIC SPI-NAND controller

QPIC SPI-NAND의 serial·parallel mode, DMA와 hardware ECC 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/spi/qcom,spi-qpic-snand.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

qcom,spi-qpic-snand.yaml:1-87

QPIC SPI-NAND의 serial·parallel mode, DMA와 hardware ECC 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/DMA/interconnect 순서·수치·예제 코드를 원형대로 유지합니다.

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/spi/qcom,spi-qpic-snand.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm QPIC NAND controller
8
9 maintainers:
10 - Md sadre Alam <[email protected]>
11
12 description:
13 The QCOM QPIC-SPI-NAND flash controller is an extended version of
14 the QCOM QPIC NAND flash controller. It can work both in serial
15 and parallel mode. It supports typical SPI-NAND page cache
16 operations in single, dual or quad IO mode with pipelined ECC
17 encoding/decoding using the QPIC ECC HW engine.
18
19 allOf:
20 - $ref: /schemas/spi/spi-controller.yaml#
21
22 properties:
23 compatible:
24 oneOf:
25 - items:
26 - enum:
27 - qcom,ipq5018-snand
28 - const: qcom,ipq9574-snand
29 - const: qcom,ipq9574-snand
30
31 reg:
32 maxItems: 1
33
34 clocks:
35 maxItems: 3
36
37 clock-names:
38 items:
39 - const: core
40 - const: aon
41 - const: iom
42
43 dmas:
44 items:
45 - description: tx DMA channel
46 - description: rx DMA channel
47 - description: cmd DMA channel
48
49 dma-names:
50 items:
51 - const: tx
52 - const: rx
53 - const: cmd
54
55 required:
56 - compatible
57 - reg
58 - clocks
59 - clock-names
60
61 unevaluatedProperties: false
62
63 examples:
64 - |
65 #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
66 spi@79b0000 {
67 compatible = "qcom,ipq9574-snand";
68 reg = <0x1ac00000 0x800>;
69
70 clocks = <&gcc GCC_QPIC_CLK>,
71 <&gcc GCC_QPIC_AHB_CLK>,
72 <&gcc GCC_QPIC_IO_MACRO_CLK>;
73 clock-names = "core", "aon", "iom";
74
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 flash@0 {
79 compatible = "spi-nand";
80 reg = <0>;
81 #address-cells = <1>;
82 #size-cells = <1>;
83 nand-ecc-engine = <&qpic_nand>;
84 nand-ecc-strength = <4>;
85 nand-ecc-step-size = <512>;
86 };
87 };
88

3. 한국어 전문 번역

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

QPIC SPI-NAND controller 개요

1-21

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 Qualcomm QPIC NAND controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/qcom,spi-qpic-snand.yaml#`, maintainer는 Md sadre Alam입니다.

QCOM QPIC-SPI-NAND flash controller는 QCOM QPIC NAND flash controller의 확장판이며 serial mode와 parallel mode에서 모두 동작합니다. QPIC ECC hardware engine을 이용한 `pipelined ECC` encoding/decoding과 함께 single, dual, quad I/O mode의 일반적인 SPI-NAND page-cache operation을 지원합니다.

공통 `/schemas/spi/spi-controller.yaml#` 속성을 상속합니다.

IPQ5018과 IPQ9574 compatible

22-30

`compatible`은 두 형태 중 하나입니다. IPQ5018은 첫 항목 `qcom,ipq5018-snand` 뒤에 fallback `qcom,ipq9574-snand`를 두며, IPQ9574 자체는 `qcom,ipq9574-snand` 한 항목만 사용할 수 있습니다.

Register와 세 clock

31-42

`reg`는 최대 한 항목입니다. `clocks`는 최대 세 항목이며 `clock-names`는 `core`, `aon`, `iom` 순서로 QPIC core, always-on AHB, I/O macro clock을 식별합니다.

세 DMA channel과 필수 속성

43-61

`dmas` 배열은 TX, RX, command DMA channel 세 항목을 순서대로 기술합니다. `dma-names`도 같은 순서로 `tx`, `rx`, `cmd`를 사용합니다.

필수 속성은 `compatible`, `reg`, `clocks`, `clock-names`입니다. DMA 속성은 schema에 정의되어 있지만 필수 목록에는 포함되지 않습니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

IPQ9574 SPI-NAND와 ECC 예제

62-87

예제는 `spi@79b0000` node에 `qcom,ipq9574-snand`를 지정하고 register tuple `<0x1ac00000 0x800>`을 사용합니다. 세 clock은 `GCC_QPIC_CLK`, `GCC_QPIC_AHB_CLK`, `GCC_QPIC_IO_MACRO_CLK`이며 이름은 `core`, `aon`, `iom`입니다.

`flash@0` SPI-NAND child는 `nand-ecc-engine`을 `qpic_nand`에 연결하고 ECC strength 4, step size `512` byte를 지정합니다.

#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
spi@79b0000 {
    compatible = "qcom,ipq9574-snand";
    reg = <0x1ac00000 0x800>;

    clocks = <&gcc GCC_QPIC_CLK>,
             <&gcc GCC_QPIC_AHB_CLK>,
             <&gcc GCC_QPIC_IO_MACRO_CLK>;
    clock-names = "core", "aon", "iom";

    #address-cells = <1>;
    #size-cells = <0>;

    flash@0 {
        compatible = "spi-nand";
        reg = <0>;
        #address-cells = <1>;
        #size-cells = <1>;
        nand-ecc-engine = <&qpic_nand>;
        nand-ecc-strength = <4>;
        nand-ecc-step-size = <512>;
    };
};