요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/qcom,spi-qcom-qspi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Quad Serial Peripheral Interface (QSPI)
maintainers:
- Bjorn Andersson <[email protected]>
description: The QSPI controller allows SPI protocol communication in single,
dual, or quad wire transmission modes for read/write access to slaves such
as NOR flash.
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
items:
- enum:
- qcom,sc7180-qspi
- qcom,sc7280-qspi
- qcom,sdm845-qspi
- const: qcom,qspi-v1
reg:
maxItems: 1
iommus:
maxItems: 1
interrupts:
maxItems: 1
clock-names:
items:
- const: iface
- const: core
clocks:
items:
- description: AHB clock
- description: QSPI core clock
interconnects:
minItems: 1
maxItems: 2
interconnect-names:
minItems: 1
items:
- const: qspi-config
- const: qspi-memory
operating-points-v2: true
power-domains:
maxItems: 1
required:
- compatible
- reg
- interrupts
- clock-names
- clocks
unevaluatedProperties: false
examples:
- |
#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>;
};
};
};
...
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>;
};
};
};
요약과 해설
qcom,spi-qcom-qspi.yaml:1-100Qualcomm QSPI의 wire mode, clock·interconnect와 NOR flash 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/DMA/interconnect 순서·수치·예제 코드를 원형대로 유지합니다.