요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/spi/renesas,rspi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas (Quad) Serial Peripheral Interface (RSPI/QSPI)
maintainers:
- Geert Uytterhoeven <[email protected]>
properties:
compatible:
oneOf:
- items:
- enum:
- renesas,rspi-sh7757 # SH7757
- const: renesas,rspi # Legacy SH
- items:
- enum:
- renesas,rspi-r7s72100 # RZ/A1H
- renesas,rspi-r7s9210 # RZ/A2
- renesas,r9a07g043-rspi # RZ/G2UL and RZ/Five
- renesas,r9a07g044-rspi # RZ/G2{L,LC}
- renesas,r9a07g054-rspi # RZ/V2L
- const: renesas,rspi-rz
- items:
- enum:
- renesas,qspi-r8a7742 # RZ/G1H
- renesas,qspi-r8a7743 # RZ/G1M
- renesas,qspi-r8a7744 # RZ/G1N
- renesas,qspi-r8a7745 # RZ/G1E
- renesas,qspi-r8a77470 # RZ/G1C
- renesas,qspi-r8a7790 # R-Car H2
- renesas,qspi-r8a7791 # R-Car M2-W
- renesas,qspi-r8a7792 # R-Car V2H
- renesas,qspi-r8a7793 # R-Car M2-N
- renesas,qspi-r8a7794 # R-Car E2
- const: renesas,qspi # R-Car Gen2 and RZ/G1
reg:
maxItems: 1
interrupts:
oneOf:
- items:
- description: A combined interrupt
- items:
- description: Error interrupt (SPEI)
- description: Receive Interrupt (SPRI)
- description: Transmit Interrupt (SPTI)
interrupt-names:
oneOf:
- items:
- const: mux
- items:
- const: error
- const: rx
- const: tx
clocks:
maxItems: 1
power-domains:
maxItems: 1
resets:
maxItems: 1
dmas:
minItems: 2
maxItems: 4
description:
Must contain a list of pairs of references to DMA specifiers, one for
transmission, and one for reception.
dma-names:
minItems: 2
maxItems: 4
items:
enum:
- tx
- rx
num-cs:
description: |
Total number of native chip selects.
Hardware limitations related to chip selects:
- When using GPIO chip selects, at least one native chip select must
be left unused, as it will be driven anyway.
minimum: 1
maximum: 2
default: 1
required:
- compatible
- reg
- interrupts
- clocks
- power-domains
- '#address-cells'
- '#size-cells'
allOf:
- $ref: spi-controller.yaml#
- if:
properties:
compatible:
contains:
enum:
- renesas,rspi-rz
then:
properties:
interrupts:
minItems: 3
required:
- interrupt-names
- if:
properties:
compatible:
contains:
enum:
- renesas,qspi
- renesas,r9a07g043-rspi
- renesas,r9a07g044-rspi
- renesas,r9a07g054-rspi
then:
required:
- resets
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/r8a7791-cpg-mssr.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/r8a7791-sysc.h>
qspi: spi@e6b10000 {
compatible = "renesas,qspi-r8a7791", "renesas,qspi";
reg = <0xe6b10000 0x2c>;
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cpg CPG_MOD 917>;
dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
dma-names = "tx", "rx", "tx", "rx";
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
resets = <&cpg 917>;
num-cs = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Renesas RSPI/QSPI schema
1-11이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 Renesas Serial Peripheral Interface와 Quad Serial Peripheral Interface(RSPI/QSPI)를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/renesas,rspi.yaml#`, maintainer는 Geert Uytterhoeven입니다.
Legacy SH, RZ와 R-Car compatible
12-42Legacy SH7757은 `renesas,rspi-sh7757` 뒤에 fallback `renesas,rspi`를 둡니다. RZ 계열은 `renesas,rspi-r7s72100`, `renesas,rspi-r7s9210`, `renesas,r9a07g043-rspi`, `renesas,r9a07g044-rspi`, `renesas,r9a07g054-rspi` 중 하나 뒤에 fallback `renesas,rspi-rz`를 둡니다.
R-Car Gen2와 RZ/G1 QSPI는 `renesas,qspi-r8a7742`, `renesas,qspi-r8a7743`, `renesas,qspi-r8a7744`, `renesas,qspi-r8a7745`, `renesas,qspi-r8a77470`, `renesas,qspi-r8a7790`, `renesas,qspi-r8a7791`, `renesas,qspi-r8a7792`, `renesas,qspi-r8a7793`, `renesas,qspi-r8a7794` 중 하나 뒤에 fallback `renesas,qspi`를 둡니다.
Interrupt, clock, power와 reset
43-72`reg`는 최대 한 항목입니다. `interrupts`는 하나의 combined interrupt 또는 세 개의 개별 interrupt를 사용합니다. 개별 항목의 순서는 error `SPEI`, receive `SPRI`, transmit `SPTI`입니다.
`interrupt-names`도 한 항목이면 `mux`, 세 항목이면 `error`, `rx`, `tx` 순서입니다. `clocks`, `power-domains`, `resets`는 각각 최대 한 항목입니다.
DMA pair와 native chip select
73-97`dmas`는 최소 두 항목, 최대 네 항목이며 전송용과 수신용 DMA specifier 참조를 pair로 포함해야 합니다. `dma-names`도 2~4개이며 각 이름은 `tx` 또는 `rx`입니다.
`num-cs`는 native chip select의 총수이며 범위는 1~2, 기본값은 1입니다. GPIO chip select를 사용할 때도 hardware가 native chip select 하나를 구동하므로 native chip select를 최소 하나 사용하지 않은 채 남겨야 합니다.
공통 필수 속성과 SPI 상속
98-108공통 필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `power-domains`, `#address-cells`, `#size-cells`입니다. `spi-controller.yaml#`의 공통 SPI controller 속성을 상속합니다.
RZ interrupt와 reset 조건
109-136`compatible` 배열에 `renesas,rspi-rz`가 포함되면 `interrupts`는 최소 세 항목이어야 하고 `interrupt-names`가 필수입니다. 따라서 RZ RSPI는 `error`, `rx`, `tx` 세 interrupt 이름을 함께 제공해야 합니다.
`compatible`에 `renesas,qspi`, `renesas,r9a07g043-rspi`, `renesas,r9a07g044-rspi`, `renesas,r9a07g054-rspi` 중 하나가 포함되면 `resets`가 필수입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.
R8A7791 QSPI 예제
137-155예제는 `renesas,qspi-r8a7791`과 fallback `renesas,qspi`를 사용하는 `qspi: spi@e6b10000` controller입니다. GIC SPI interrupt 184, module clock 917, 두 DMAC의 TX/RX channel 네 개, always-on power domain과 reset 917을 연결합니다.
`dma-names`는 `tx`, `rx`, `tx`, `rx`로 두 pair에 대응하고 `num-cs`는 1입니다.
#include <dt-bindings/clock/r8a7791-cpg-mssr.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/r8a7791-sysc.h>
qspi: spi@e6b10000 {
compatible = "renesas,qspi-r8a7791", "renesas,qspi";
reg = <0xe6b10000 0x2c>;
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cpg CPG_MOD 917>;
dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
dma-names = "tx", "rx", "tx", "rx";
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
resets = <&cpg 917>;
num-cs = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
요약과 해설
renesas,rspi.yaml:1-155Renesas RSPI/QSPI의 SoC compatible, interrupt·DMA·chip-select와 조건부 reset 규칙을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·interrupt·clock/DMA/reset 순서·수치·조건부 제약·예제 코드를 원형대로 유지합니다.