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

Linux 6.18.37 · Devicetree Bindings / SPI

NXP FlexSPI controller

NXP FlexSPI의 compatible, register·memory window와 octal SPI NOR 구성을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

spi-nxp-fspi.yaml:1-97

NXP FlexSPI의 compatible, register·memory window와 octal SPI NOR 구성을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 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-nxp-fspi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NXP Flex Serial Peripheral Interface (FSPI)
8
9 maintainers:
10 - Han Xu <han.xu@nxp.com>
11 - Kuldeep Singh <singh.kuldeep87k@gmail.com>
12
13 allOf:
14 - $ref: spi-controller.yaml#
15
16 properties:
17 compatible:
18 oneOf:
19 - enum:
20 - nxp,imx8dxl-fspi
21 - nxp,imx8mm-fspi
22 - nxp,imx8mp-fspi
23 - nxp,imx8qxp-fspi
24 - nxp,imx8ulp-fspi
25 - nxp,lx2160a-fspi
26 - items:
27 - enum:
28 - nxp,imx93-fspi
29 - nxp,imx95-fspi
30 - const: nxp,imx8mm-fspi
31
32 reg:
33 items:
34 - description: registers address space
35 - description: memory mapped address space
36
37 reg-names:
38 items:
39 - const: fspi_base
40 - const: fspi_mmap
41
42 interrupts:
43 maxItems: 1
44
45 clocks:
46 items:
47 - description: SPI bus clock
48 - description: SPI serial clock
49
50 clock-names:
51 items:
52 - const: fspi_en
53 - const: fspi
54
55 power-domains:
56 maxItems: 1
57
58 required:
59 - compatible
60 - reg
61 - reg-names
62 - interrupts
63 - clocks
64 - clock-names
65
66 unevaluatedProperties: false
67
68 examples:
69 - |
70 #include <dt-bindings/interrupt-controller/arm-gic.h>
71 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
72
73 soc {
74 #address-cells = <2>;
75 #size-cells = <2>;
76
77 spi@20c0000 {
78 compatible = "nxp,lx2160a-fspi";
79 reg = <0x0 0x20c0000 0x0 0x100000>,
80 <0x0 0x20000000 0x0 0x10000000>;
81 reg-names = "fspi_base", "fspi_mmap";
82 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
83 clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>,
84 <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>;
85 clock-names = "fspi_en", "fspi";
86 #address-cells = <1>;
87 #size-cells = <0>;
88
89 flash@0 {
90 compatible = "jedec,spi-nor";
91 spi-max-frequency = <50000000>;
92 reg = <0>;
93 spi-rx-bus-width = <8>;
94 spi-tx-bus-width = <8>;
95 };
96 };
97 };
98

3. 한국어 전문 번역

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

NXP FlexSPI schema

1-15

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 NXP Flex Serial Peripheral Interface(FSPI)를 정의합니다. Maintainer는 Han Xu와 Kuldeep Singh이며 공통 `spi-controller.yaml#` 속성을 상속합니다.

i.MX와 Layerscape compatible

16-31

단일 compatible은 `nxp,imx8dxl-fspi`, `nxp,imx8mm-fspi`, `nxp,imx8mp-fspi`, `nxp,imx8qxp-fspi`, `nxp,imx8ulp-fspi`, `nxp,lx2160a-fspi` 중 하나입니다.

i.MX93과 i.MX95는 각각 `nxp,imx93-fspi` 또는 `nxp,imx95-fspi`를 첫 항목으로 두고 `nxp,imx8mm-fspi`를 fallback compatible로 함께 지정합니다.

Register 영역과 clock 이름

32-54

`reg`는 controller register 주소 공간과 memory-mapped 주소 공간 두 항목입니다. `reg-names`는 같은 순서로 `fspi_base`, `fspi_mmap`을 사용합니다. `interrupts`는 최대 한 항목입니다.

`clocks`는 SPI bus clock과 SPI serial clock 두 항목이고 `clock-names`는 각각 `fspi_en`, `fspi`입니다.

Power domain과 필수 속성

55-67

`power-domains`는 최대 한 항목입니다. 필수 속성은 `compatible`, `reg`, `reg-names`, `interrupts`, `clocks`, `clock-names`이며 `unevaluatedProperties: false`로 평가되지 않은 추가 속성을 금지합니다.

LX2160A octal SPI NOR 예제

68-97

예제의 `spi@20c0000`은 `nxp,lx2160a-fspi` controller register 영역과 0x20000000부터 시작하는 memory-mapped window를 제공합니다. GIC SPI 25와 동일한 platform PLL/4 clock 두 개를 사용합니다.

Chip select 0의 `jedec,spi-nor` flash는 최대 50 MHz이며 RX와 TX bus width를 모두 8로 지정해 octal transfer를 구성합니다.

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/fsl,qoriq-clockgen.h>

soc {
    #address-cells = <2>;
    #size-cells = <2>;

    spi@20c0000 {
        compatible = "nxp,lx2160a-fspi";
        reg = <0x0 0x20c0000 0x0 0x100000>,
              <0x0 0x20000000 0x0 0x10000000>;
        reg-names = "fspi_base", "fspi_mmap";
        interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>,
                 <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>;
        clock-names = "fspi_en", "fspi";
        #address-cells = <1>;
        #size-cells = <0>;

        flash@0 {
            compatible = "jedec,spi-nor";
            spi-max-frequency = <50000000>;
            reg = <0>;
            spi-rx-bus-width = <8>;
            spi-tx-bus-width = <8>;
        };
    };
};