요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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-qup.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Universal Peripheral (QUP) Serial Peripheral Interface (SPI)
maintainers:
- Andy Gross <agross@kernel.org>
- Bjorn Andersson <bjorn.andersson@linaro.org>
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
description:
The QUP core is an AHB slave that provides a common data path (an output FIFO
and an input FIFO) for serial peripheral interface (SPI) mini-core.
SPI in master mode supports up to 50MHz, up to four chip selects,
programmable data path from 4 bits to 32 bits and numerous protocol variants.
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
enum:
- qcom,spi-qup-v1.1.1 # for 8660, 8960 and 8064
- qcom,spi-qup-v2.1.1 # for 8974 and later
- qcom,spi-qup-v2.2.1 # for 8974 v2 and later
clocks:
maxItems: 2
clock-names:
items:
- const: core
- const: iface
dmas:
maxItems: 2
dma-names:
items:
- const: tx
- const: rx
interconnects:
maxItems: 1
interrupts:
maxItems: 1
operating-points-v2: true
power-domains:
maxItems: 1
reg:
maxItems: 1
required:
- compatible
- clocks
- clock-names
- interrupts
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,gcc-msm8996.h>
#include <dt-bindings/interconnect/qcom,msm8996.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/qcom-rpmpd.h>
spi@7575000 {
compatible = "qcom,spi-qup-v2.2.1";
reg = <0x07575000 0x600>;
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp1_spi1_default>;
pinctrl-1 = <&blsp1_spi1_sleep>;
dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
dma-names = "tx", "rx";
power-domains = <&rpmpd MSM8996_VDDCX>;
operating-points-v2 = <&spi_opp_table>;
interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
#address-cells = <1>;
#size-cells = <0>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Qualcomm QUP SPI 개요
1-23이 GPL-2.0 또는 BSD-2-Clause YAML schema는 Qualcomm Universal Peripheral(QUP) SPI를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/qcom,spi-qup.yaml#`이며 maintainer는 Andy Gross, Bjorn Andersson, Krzysztof Kozlowski입니다.
QUP core는 AHB slave이며 SPI mini-core를 위해 output FIFO와 input FIFO로 구성된 공통 data path를 제공합니다. Master mode는 최대 `50MHz`, 최대 네 chip select, `4 bits`부터 `32 bits`까지 프로그래밍 가능한 data path와 여러 protocol 변형을 지원합니다.
공통 `/schemas/spi/spi-controller.yaml#` 속성을 상속합니다.
QUP hardware revision
24-30허용 compatible은 8660·8960·8064용 `qcom,spi-qup-v1.1.1`, 8974 이후용 `qcom,spi-qup-v2.1.1`, 8974 v2 이후용 `qcom,spi-qup-v2.2.1`입니다.
Clock과 DMA 순서
31-46`clocks`는 최대 두 항목이고 `clock-names`는 `core`, `iface` 순서입니다. `dmas`도 최대 두 항목이며 `dma-names`는 `tx`, `rx` 순서를 사용합니다.
Interconnect, 실행 자원과 필수 속성
47-68`interconnects`, `interrupts`, `power-domains`, `reg`는 각각 최대 한 항목입니다. `operating-points-v2` 속성도 허용됩니다.
필수 속성은 `compatible`, `clocks`, `clock-names`, `interrupts`, `reg`입니다. DMA, interconnect, power domain과 OPP는 선택 사항입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.
MSM8996 QUP SPI 예제
69-94예제는 `qcom,spi-qup-v2.2.1` controller에 `GIC_SPI 95`, core·interface clock, default·sleep pinctrl과 TX/RX DMA channel 12·13을 연결합니다.
Power domain은 `MSM8996_VDDCX`, OPP table은 `spi_opp_table`이며 interconnect path는 `MASTER_BLSP_1`에서 `SLAVE_EBI_CH0`까지입니다.
#include <dt-bindings/clock/qcom,gcc-msm8996.h>
#include <dt-bindings/interconnect/qcom,msm8996.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/qcom-rpmpd.h>
spi@7575000 {
compatible = "qcom,spi-qup-v2.2.1";
reg = <0x07575000 0x600>;
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
<&gcc GCC_BLSP1_AHB_CLK>;
clock-names = "core", "iface";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp1_spi1_default>;
pinctrl-1 = <&blsp1_spi1_sleep>;
dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
dma-names = "tx", "rx";
power-domains = <&rpmpd MSM8996_VDDCX>;
operating-points-v2 = <&spi_opp_table>;
interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
#address-cells = <1>;
#size-cells = <0>;
};
요약과 해설
qcom,spi-qup.yaml:1-94QUP SPI revision, clock·DMA·interconnect와 MSM8996 예제를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/DMA/interconnect 순서·수치·예제 코드를 원형대로 유지합니다.