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

Linux 6.18.37 · Devicetree Bindings / SPI

Qualcomm QSPI controller

Qualcomm QSPI의 wire mode, clock·interconnect와 NOR flash 예제를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

qcom,spi-qcom-qspi.yaml:1-100

Qualcomm QSPI의 wire mode, clock·interconnect와 NOR flash 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/DMA/interconnect 순서·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/spi/qcom,spi-qcom-qspi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm Quad Serial Peripheral Interface (QSPI)
8
9 maintainers:
10 - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12 description: The QSPI controller allows SPI protocol communication in single,
13 dual, or quad wire transmission modes for read/write access to slaves such
14 as NOR flash.
15
16 allOf:
17 - $ref: /schemas/spi/spi-controller.yaml#
18
19 properties:
20 compatible:
21 items:
22 - enum:
23 - qcom,sc7180-qspi
24 - qcom,sc7280-qspi
25 - qcom,sdm845-qspi
26
27 - const: qcom,qspi-v1
28
29 reg:
30 maxItems: 1
31
32 iommus:
33 maxItems: 1
34
35 interrupts:
36 maxItems: 1
37
38 clock-names:
39 items:
40 - const: iface
41 - const: core
42
43 clocks:
44 items:
45 - description: AHB clock
46 - description: QSPI core clock
47
48 interconnects:
49 minItems: 1
50 maxItems: 2
51
52 interconnect-names:
53 minItems: 1
54 items:
55 - const: qspi-config
56 - const: qspi-memory
57
58 operating-points-v2: true
59
60 power-domains:
61 maxItems: 1
62
63 required:
64 - compatible
65 - reg
66 - interrupts
67 - clock-names
68 - clocks
69
70 unevaluatedProperties: false
71
72 examples:
73 - |
74 #include <dt-bindings/clock/qcom,gcc-sdm845.h>
75 #include <dt-bindings/interrupt-controller/arm-gic.h>
76
77 soc: soc {
78 #address-cells = <2>;
79 #size-cells = <2>;
80
81 qspi: spi@88df000 {
82 compatible = "qcom,sdm845-qspi", "qcom,qspi-v1";
83 reg = <0 0x88df000 0 0x600>;
84 #address-cells = <1>;
85 #size-cells = <0>;
86 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
87 clock-names = "iface", "core";
88 clocks = <&gcc GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
89 <&gcc GCC_QSPI_CORE_CLK>;
90
91 flash@0 {
92 compatible = "jedec,spi-nor";
93 reg = <0>;
94 spi-max-frequency = <25000000>;
95 spi-tx-bus-width = <2>;
96 spi-rx-bus-width = <2>;
97 };
98 };
99 };
100 ...
101

3. 한국어 전문 번역

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

Qualcomm QSPI 개요와 공통 schema

1-18

이 GPL-2.0 또는 BSD-2-Clause YAML schema는 Qualcomm Quad Serial Peripheral Interface(QSPI)를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/qcom,spi-qcom-qspi.yaml#`, maintainer는 Bjorn Andersson입니다.

QSPI controller는 NOR flash 같은 slave를 읽고 쓰기 위해 `single, dual`, 또는 `quad` wire 전송 mode로 SPI protocol 통신을 수행합니다. 공통 `/schemas/spi/spi-controller.yaml#` 속성을 상속합니다.

SoC compatible과 v1 fallback

19-28

`compatible` 배열의 첫 항목은 `qcom,sc7180-qspi`, `qcom,sc7280-qspi`, `qcom,sdm845-qspi` 중 하나이고 둘째 항목은 공통 fallback `qcom,qspi-v1`이어야 합니다.

Register, IOMMU, interrupt와 clock

29-47

`reg`, `iommus`, `interrupts`는 각각 최대 한 항목입니다. `clock-names`는 `iface`, `core` 순서의 정확히 두 이름을 사용합니다.

`clocks`도 같은 순서로 정확히 두 항목을 받습니다. 첫 항목은 AHB clock이고 둘째 항목은 QSPI core clock입니다.

Interconnect, OPP와 필수 속성

48-70

`interconnects`는 한 항목 또는 두 항목입니다. `interconnect-names`는 최소 한 항목이며 순서대로 `qspi-config`, 선택적인 `qspi-memory`를 지정합니다. `operating-points-v2`를 사용할 수 있고 `power-domains`는 최대 한 항목입니다.

필수 속성은 `compatible`, `reg`, `interrupts`, `clock-names`, `clocks`입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

SDM845 QSPI NOR 예제

71-100

예제는 SDM845 QSPI controller에 `qcom,sdm845-qspi`와 `qcom,qspi-v1`을 함께 지정하고 `GIC_SPI 82` interrupt를 연결합니다. Clock은 `GCC_QSPI_CNOC_PERIPH_AHB_CLK`, `GCC_QSPI_CORE_CLK` 순서입니다.

Chip select 0의 JEDEC SPI NOR는 최대 주파수 `25000000`Hz와 TX/RX bus width 2를 사용합니다. 마지막 `...`는 YAML document 종료 표기입니다.

#include <dt-bindings/clock/qcom,gcc-sdm845.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

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

    qspi: spi@88df000 {
        compatible = "qcom,sdm845-qspi", "qcom,qspi-v1";
        reg = <0 0x88df000 0 0x600>;
        #address-cells = <1>;
        #size-cells = <0>;
        interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
        clock-names = "iface", "core";
        clocks = <&gcc GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
                     <&gcc GCC_QSPI_CORE_CLK>;

        flash@0 {
            compatible = "jedec,spi-nor";
            reg = <0>;
            spi-max-frequency = <25000000>;
            spi-tx-bus-width = <2>;
            spi-rx-bus-width = <2>;
        };
    };
};