← Documents Documentation/devicetree/bindings/spi/spi-cadence.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

Cadence SPI controller

Cadence SPI의 SoC compatible, clock, chip-select decoder와 reset 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/spi/spi-cadence.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

spi-cadence.yaml:1-91

Cadence SPI의 SoC compatible, clock, chip-select decoder와 reset 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·symbol·source path·표·수치·조건부 제약·예제 코드를 원형대로 유지합니다.

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/spi-cadence.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Cadence SPI controller
8
9 maintainers:
10 - Michal Simek <michal.simek@amd.com>
11
12 allOf:
13 - $ref: spi-controller.yaml#
14
15 properties:
16 compatible:
17 oneOf:
18 - enum:
19 - xlnx,zynq-spi-r1p6
20 - items:
21 - enum:
22 - xlnx,zynqmp-spi-r1p6
23 - xlnx,versal-net-spi-r1p6
24 - const: cdns,spi-r1p6
25
26 reg:
27 maxItems: 1
28
29 interrupts:
30 maxItems: 1
31
32 clock-names:
33 items:
34 - const: ref_clk
35 - const: pclk
36
37 clocks:
38 maxItems: 2
39
40 num-cs:
41 description: |
42 Number of chip selects used. If a decoder is used,
43 this will be the number of chip selects after the
44 decoder.
45 $ref: /schemas/types.yaml#/definitions/uint32
46 minimum: 1
47 maximum: 4
48 default: 4
49
50 is-decoded-cs:
51 description: |
52 Flag to indicate whether decoder is used or not.
53 $ref: /schemas/types.yaml#/definitions/uint32
54 enum: [ 0, 1 ]
55 default: 0
56
57 power-domains:
58 maxItems: 1
59
60 label:
61 description: Descriptive name of the SPI controller.
62
63 resets:
64 maxItems: 1
65
66 reset-names:
67 items:
68 - const: spi
69
70 required:
71 - compatible
72 - reg
73 - interrupts
74 - clock-names
75 - clocks
76
77 unevaluatedProperties: false
78
79 examples:
80 - |
81 spi@e0007000 {
82 compatible = "xlnx,zynq-spi-r1p6";
83 clock-names = "ref_clk", "pclk";
84 clocks = <&clkc 26>, <&clkc 35>;
85 interrupt-parent = <&intc>;
86 interrupts = <0 49 4>;
87 num-cs = <4>;
88 is-decoded-cs = <0>;
89 reg = <0xe0007000 0x1000>;
90 };
91 ...
92

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Cadence SPI schema

1-14

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 Cadence SPI controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/spi-cadence.yaml#`, maintainer는 Michal Simek입니다.

공통 `spi-controller.yaml#` 속성을 상속합니다.

Zynq, ZynqMP와 Versal compatible

15-25

Zynq는 단독 `xlnx,zynq-spi-r1p6`를 사용합니다. ZynqMP와 Versal Net은 각각 `xlnx,zynqmp-spi-r1p6` 또는 `xlnx,versal-net-spi-r1p6` 뒤에 fallback `cdns,spi-r1p6`를 둡니다.

Register, interrupt와 clock

26-39

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clock-names`는 `ref_clk`, `pclk` 순서이고 `clocks`는 최대 두 항목입니다.

Chip-select decoder와 추가 자원

40-69

`num-cs`는 사용하는 chip-select 수입니다. Decoder를 사용하면 decoder 이후의 chip-select 수를 뜻하며 범위는 1~4, 기본값은 4입니다.

`is-decoded-cs`는 decoder 사용 여부를 나타내는 `uint32`이고 0 또는 1, 기본값은 0입니다. `power-domains`와 `resets`는 각각 최대 한 항목이며 `label`은 controller의 설명 이름입니다. `reset-names`의 항목은 `spi`입니다.

필수 속성과 추가 속성 제한

70-78

필수 속성은 `compatible`, `reg`, `interrupts`, `clock-names`, `clocks`입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

Zynq Cadence SPI 예제

79-91

예제의 `spi@e0007000`은 `xlnx,zynq-spi-r1p6`, `ref_clk` 26, `pclk` 35, interrupt 49, chip-select 4개를 사용하고 decoder는 사용하지 않습니다. 마지막 `...`는 YAML document 종료 표기입니다.

spi@e0007000 {
  compatible = "xlnx,zynq-spi-r1p6";
  clock-names = "ref_clk", "pclk";
  clocks = <&clkc 26>, <&clkc 35>;
  interrupt-parent = <&intc>;
  interrupts = <0 49 4>;
  num-cs = <4>;
  is-decoded-cs = <0>;
  reg = <0xe0007000 0x1000>;
};