← Documents Documentation/devicetree/bindings/spi/renesas,rspi.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

Renesas RSPI/QSPI controller

Renesas RSPI/QSPI의 SoC compatible, interrupt·DMA·chip-select와 조건부 reset 규칙을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

renesas,rspi.yaml:1-155

Renesas RSPI/QSPI의 SoC compatible, interrupt·DMA·chip-select와 조건부 reset 규칙을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·interrupt·clock/DMA/reset 순서·수치·조건부 제약·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/spi/renesas,rspi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Renesas (Quad) Serial Peripheral Interface (RSPI/QSPI)
8
9 maintainers:
10 - Geert Uytterhoeven <geert+renesas@glider.be>
11
12 properties:
13 compatible:
14 oneOf:
15 - items:
16 - enum:
17 - renesas,rspi-sh7757 # SH7757
18 - const: renesas,rspi # Legacy SH
19
20 - items:
21 - enum:
22 - renesas,rspi-r7s72100 # RZ/A1H
23 - renesas,rspi-r7s9210 # RZ/A2
24 - renesas,r9a07g043-rspi # RZ/G2UL and RZ/Five
25 - renesas,r9a07g044-rspi # RZ/G2{L,LC}
26 - renesas,r9a07g054-rspi # RZ/V2L
27 - const: renesas,rspi-rz
28
29 - items:
30 - enum:
31 - renesas,qspi-r8a7742 # RZ/G1H
32 - renesas,qspi-r8a7743 # RZ/G1M
33 - renesas,qspi-r8a7744 # RZ/G1N
34 - renesas,qspi-r8a7745 # RZ/G1E
35 - renesas,qspi-r8a77470 # RZ/G1C
36 - renesas,qspi-r8a7790 # R-Car H2
37 - renesas,qspi-r8a7791 # R-Car M2-W
38 - renesas,qspi-r8a7792 # R-Car V2H
39 - renesas,qspi-r8a7793 # R-Car M2-N
40 - renesas,qspi-r8a7794 # R-Car E2
41 - const: renesas,qspi # R-Car Gen2 and RZ/G1
42
43 reg:
44 maxItems: 1
45
46 interrupts:
47 oneOf:
48 - items:
49 - description: A combined interrupt
50 - items:
51 - description: Error interrupt (SPEI)
52 - description: Receive Interrupt (SPRI)
53 - description: Transmit Interrupt (SPTI)
54
55 interrupt-names:
56 oneOf:
57 - items:
58 - const: mux
59 - items:
60 - const: error
61 - const: rx
62 - const: tx
63
64 clocks:
65 maxItems: 1
66
67 power-domains:
68 maxItems: 1
69
70 resets:
71 maxItems: 1
72
73 dmas:
74 minItems: 2
75 maxItems: 4
76 description:
77 Must contain a list of pairs of references to DMA specifiers, one for
78 transmission, and one for reception.
79
80 dma-names:
81 minItems: 2
82 maxItems: 4
83 items:
84 enum:
85 - tx
86 - rx
87
88 num-cs:
89 description: |
90 Total number of native chip selects.
91 Hardware limitations related to chip selects:
92 - When using GPIO chip selects, at least one native chip select must
93 be left unused, as it will be driven anyway.
94 minimum: 1
95 maximum: 2
96 default: 1
97
98 required:
99 - compatible
100 - reg
101 - interrupts
102 - clocks
103 - power-domains
104 - '#address-cells'
105 - '#size-cells'
106
107 allOf:
108 - $ref: spi-controller.yaml#
109 - if:
110 properties:
111 compatible:
112 contains:
113 enum:
114 - renesas,rspi-rz
115 then:
116 properties:
117 interrupts:
118 minItems: 3
119 required:
120 - interrupt-names
121
122 - if:
123 properties:
124 compatible:
125 contains:
126 enum:
127 - renesas,qspi
128 - renesas,r9a07g043-rspi
129 - renesas,r9a07g044-rspi
130 - renesas,r9a07g054-rspi
131 then:
132 required:
133 - resets
134
135 unevaluatedProperties: false
136
137 examples:
138 - |
139 #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
140 #include <dt-bindings/interrupt-controller/arm-gic.h>
141 #include <dt-bindings/power/r8a7791-sysc.h>
142
143 qspi: spi@e6b10000 {
144 compatible = "renesas,qspi-r8a7791", "renesas,qspi";
145 reg = <0xe6b10000 0x2c>;
146 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
147 clocks = <&cpg CPG_MOD 917>;
148 dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
149 dma-names = "tx", "rx", "tx", "rx";
150 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
151 resets = <&cpg 917>;
152 num-cs = <1>;
153 #address-cells = <1>;
154 #size-cells = <0>;
155 };
156

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-42

Legacy 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>;
};