요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
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. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, 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 순서·수치·조건부 제약·예제 코드를 원형대로 유지합니다.