← Documents Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

NVIDIA Tegra114 SPI controller

Tegra114 계열 SPI의 compatible fallback, reset, DMA와 최대 속도를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

nvidia,tegra114-spi.yaml:1-100

Tegra114 계열 SPI의 compatible fallback, reset, DMA와 최대 속도를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/reset/DMA 순서·수치·예제 코드를 원형대로 유지합니다.

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/nvidia,tegra114-spi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NVIDIA Tegra114 SPI controller
8
9 maintainers:
10 - Thierry Reding <[email protected]>
11 - Jon Hunter <[email protected]>
12
13 properties:
14 compatible:
15 oneOf:
16 - const: nvidia,tegra114-spi
17 - items:
18 - enum:
19 - nvidia,tegra210-spi
20 - nvidia,tegra124-spi
21 - const: nvidia,tegra114-spi
22
23 reg:
24 maxItems: 1
25
26 interrupts:
27 maxItems: 1
28
29 clocks:
30 items:
31 - description: SPI module clock
32
33 clock-names:
34 items:
35 - const: spi
36
37 resets:
38 items:
39 - description: SPI module reset
40
41 reset-names:
42 items:
43 - const: spi
44
45 dmas:
46 items:
47 - description: DMA channel for the reception FIFO
48 - description: DMA channel for the transmission FIFO
49
50 dma-names:
51 items:
52 - const: rx
53 - const: tx
54
55 spi-max-frequency:
56 description: Maximum SPI clocking speed of the controller in Hz.
57 $ref: /schemas/types.yaml#/definitions/uint32
58
59 allOf:
60 - $ref: spi-controller.yaml
61
62 unevaluatedProperties: false
63
64 required:
65 - compatible
66 - reg
67 - interrupts
68 - clocks
69 - clock-names
70 - resets
71 - reset-names
72 - dmas
73 - dma-names
74
75 examples:
76 - |
77 spi@7000d600 {
78 compatible = "nvidia,tegra114-spi";
79 reg = <0x7000d600 0x200>;
80 interrupts = <0 82 0x04>;
81 clocks = <&tegra_car 44>;
82 clock-names = "spi";
83 resets = <&tegra_car 44>;
84 reset-names = "spi";
85 dmas = <&apbdma 16>, <&apbdma 16>;
86 dma-names = "rx", "tx";
87
88 spi-max-frequency = <25000000>;
89
90 #address-cells = <1>;
91 #size-cells = <0>;
92
93 flash@0 {
94 compatible = "jedec,spi-nor";
95 reg = <0>;
96 spi-max-frequency = <20000000>;
97 nvidia,rx-clk-tap-delay = <0>;
98 nvidia,tx-clk-tap-delay = <16>;
99 };
100 };
101

3. 한국어 전문 번역

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

Tegra114 SPI schema

1-12

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 NVIDIA Tegra114 SPI controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/nvidia,tegra114-spi.yaml#`이고 maintainer는 Thierry Reding과 Jon Hunter입니다.

Tegra SoC compatible fallback

13-22

Tegra114는 `nvidia,tegra114-spi` 단일 compatible을 사용합니다. Tegra210과 Tegra124는 각각 `nvidia,tegra210-spi` 또는 `nvidia,tegra124-spi` 다음에 fallback `nvidia,tegra114-spi`를 둡니다.

Clock, reset, DMA와 최대 속도

23-58

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`의 단일 항목은 SPI module clock이고 `clock-names`는 `spi`입니다. `resets`의 단일 항목은 SPI module reset이며 `reset-names`도 `spi`입니다.

`dmas`의 두 항목은 reception FIFO와 transmission FIFO channel이고 `dma-names`는 순서대로 `rx`, `tx`입니다. `spi-max-frequency`는 controller의 최대 SPI clock speed를 Hz 단위 `uint32`로 지정합니다.

공통 schema와 필수 속성

59-74

`spi-controller.yaml`의 공통 속성을 상속하고 `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`, `resets`, `reset-names`, `dmas`, `dma-names`입니다.

Tegra114 SPI와 NOR flash 예제

75-100

예제 controller는 최대 25MHz로 동작하고 동일 APB DMA channel 16을 RX와 TX에 연결합니다. Chip-select 0의 SPI NOR flash는 최대 20MHz이며 RX clock tap delay 0, TX clock tap delay 16을 사용합니다.

spi@7000d600 {
    compatible = "nvidia,tegra114-spi";
    reg = <0x7000d600 0x200>;
    interrupts = <0 82 0x04>;
    clocks = <&tegra_car 44>;
    clock-names = "spi";
    resets = <&tegra_car 44>;
    reset-names = "spi";
    dmas = <&apbdma 16>, <&apbdma 16>;
    dma-names = "rx", "tx";

    spi-max-frequency = <25000000>;

    #address-cells = <1>;
    #size-cells = <0>;

    flash@0 {
        compatible = "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <20000000>;
        nvidia,rx-clk-tap-delay = <0>;
        nvidia,tx-clk-tap-delay = <16>;
    };
};