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

Linux 6.18.37 · Devicetree Bindings / SPI

Tegra Quad SPI controller

Tegra QSPI의 compatible, clock·DMA·IOMMU와 peripheral bus width를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

nvidia,tegra210-quad.yaml:1-111

Tegra QSPI의 compatible, clock·DMA·IOMMU와 peripheral bus width를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock/DMA 순서·수치·예제 코드를 원형대로 유지합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/spi/nvidia,tegra210-quad.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Tegra Quad SPI Controller
8
9 maintainers:
10 - Thierry Reding <[email protected]>
11 - Jonathan Hunter <[email protected]>
12
13 properties:
14 compatible:
15 enum:
16 - nvidia,tegra210-qspi
17 - nvidia,tegra186-qspi
18 - nvidia,tegra194-qspi
19 - nvidia,tegra234-qspi
20 - nvidia,tegra241-qspi
21
22 reg:
23 maxItems: 1
24
25 interrupts:
26 maxItems: 1
27
28 clock-names:
29 items:
30 - const: qspi
31 - const: qspi_out
32
33 clocks:
34 maxItems: 2
35
36 resets:
37 maxItems: 1
38
39 dmas:
40 maxItems: 2
41
42 dma-names:
43 items:
44 - const: rx
45 - const: tx
46
47 iommus:
48 maxItems: 1
49
50 patternProperties:
51 "@[0-9a-f]+$":
52 type: object
53 additionalProperties: true
54
55 properties:
56 spi-rx-bus-width:
57 enum: [1, 2, 4]
58
59 spi-tx-bus-width:
60 enum: [1, 2, 4]
61
62 required:
63 - compatible
64 - reg
65 - interrupts
66 - clock-names
67 - clocks
68 - resets
69
70 unevaluatedProperties: false
71
72 allOf:
73 - $ref: spi-controller.yaml#
74 - if:
75 properties:
76 compatible:
77 not:
78 contains:
79 const: nvidia,tegra234-qspi
80 then:
81 properties:
82 iommus: false
83
84 examples:
85 - |
86 #include <dt-bindings/clock/tegra210-car.h>
87 #include <dt-bindings/reset/tegra210-car.h>
88 #include <dt-bindings/interrupt-controller/arm-gic.h>
89 spi@70410000 {
90 compatible = "nvidia,tegra210-qspi";
91 reg = <0x70410000 0x1000>;
92 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
93 #address-cells = <1>;
94 #size-cells = <0>;
95 clocks = <&tegra_car TEGRA210_CLK_QSPI>,
96 <&tegra_car TEGRA210_CLK_QSPI_PM>;
97 clock-names = "qspi", "qspi_out";
98 resets = <&tegra_car 211>;
99 dmas = <&apbdma 5>, <&apbdma 5>;
100 dma-names = "rx", "tx";
101
102 flash@0 {
103 compatible = "jedec,spi-nor";
104 reg = <0>;
105 spi-max-frequency = <104000000>;
106 spi-tx-bus-width = <2>;
107 spi-rx-bus-width = <2>;
108 nvidia,tx-clk-tap-delay = <0>;
109 nvidia,rx-clk-tap-delay = <0>;
110 };
111 };
112

3. 한국어 전문 번역

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

Tegra Quad SPI schema

1-12

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

Tegra QSPI compatible

13-21

허용 compatible은 `nvidia,tegra210-qspi`, `nvidia,tegra186-qspi`, `nvidia,tegra194-qspi`, `nvidia,tegra234-qspi`, `nvidia,tegra241-qspi`입니다.

Clock, reset, DMA와 IOMMU

22-49

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

`dmas`는 최대 두 항목이고 `dma-names`는 순서대로 `rx`, `tx`입니다. `iommus`는 최대 한 항목입니다.

Peripheral bus width

50-61

주소가 붙은 child node는 object이며 추가 peripheral 속성을 허용합니다. `spi-rx-bus-width`와 `spi-tx-bus-width`는 각각 1, 2, 4 중 하나여야 합니다.

필수 속성과 Tegra234 IOMMU 조건

62-83

필수 속성은 `compatible`, `reg`, `interrupts`, `clock-names`, `clocks`, `resets`입니다. `unevaluatedProperties: false`로 평가되지 않은 추가 controller 속성을 금지하고 `spi-controller.yaml#`을 상속합니다.

Compatible 목록에 `nvidia,tegra234-qspi`가 포함되지 않으면 `iommus` 속성을 사용할 수 없습니다. 따라서 이 schema에서 IOMMU 연결은 Tegra234 controller에만 허용됩니다.

Tegra210 QSPI와 dual-I/O NOR 예제

84-111

예제는 두 QSPI clock, reset 211과 APB DMA channel 5를 연결합니다. Chip-select 0의 SPI NOR flash는 최대 104MHz, TX/RX bus width 2, TX/RX clock tap delay 0을 사용합니다.

#include <dt-bindings/clock/tegra210-car.h>
#include <dt-bindings/reset/tegra210-car.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
spi@70410000 {
    compatible = "nvidia,tegra210-qspi";
    reg = <0x70410000 0x1000>;
    interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
    #address-cells = <1>;
    #size-cells = <0>;
    clocks = <&tegra_car TEGRA210_CLK_QSPI>,
             <&tegra_car TEGRA210_CLK_QSPI_PM>;
    clock-names = "qspi", "qspi_out";
    resets = <&tegra_car 211>;
    dmas = <&apbdma 5>, <&apbdma 5>;
    dma-names = "rx", "tx";

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