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

Linux 6.18.37 · Devicetree Bindings / SPI

Freescale i.MX Low Power SPI

i.MX LPSPI의 compatible, clock·DMA와 CS1-only board option을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

spi-fsl-lpspi.yaml:1-103

i.MX LPSPI의 compatible, clock·DMA와 CS1-only board option을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·symbol·source path·timing·수치·예제 코드를 원형대로 유지합니다.

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-fsl-lpspi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Freescale Low Power SPI (LPSPI) for i.MX
8
9 maintainers:
10 - Shawn Guo <[email protected]>
11 - Sascha Hauer <[email protected]>
12 - Fabio Estevam <[email protected]>
13
14 allOf:
15 - $ref: /schemas/spi/spi-controller.yaml#
16
17 properties:
18 compatible:
19 oneOf:
20 - enum:
21 - fsl,imx7ulp-spi
22 - fsl,imx8qxp-spi
23 - nxp,s32g2-lpspi
24 - items:
25 - enum:
26 - fsl,imx8ulp-spi
27 - fsl,imx93-spi
28 - fsl,imx94-spi
29 - fsl,imx95-spi
30 - const: fsl,imx7ulp-spi
31 - items:
32 - const: nxp,s32g3-lpspi
33 - const: nxp,s32g2-lpspi
34
35 reg:
36 maxItems: 1
37
38 interrupts:
39 maxItems: 1
40
41 clocks:
42 items:
43 - description: SoC SPI per clock
44 - description: SoC SPI ipg clock
45
46 clock-names:
47 items:
48 - const: per
49 - const: ipg
50
51 dmas:
52 items:
53 - description: TX DMA Channel
54 - description: RX DMA Channel
55
56 dma-names:
57 items:
58 - const: tx
59 - const: rx
60
61 fsl,spi-only-use-cs1-sel:
62 description:
63 spi common code does not support use of CS signals discontinuously.
64 i.MX8DXL-EVK board only uses CS1 without using CS0. Therefore, add
65 this property to re-config the chipselect value in the LPSPI driver.
66 type: boolean
67
68 num-cs:
69 description:
70 number of chip selects.
71 minimum: 1
72 maximum: 2
73 default: 1
74
75 power-domains:
76 maxItems: 1
77
78 required:
79 - compatible
80 - reg
81 - interrupts
82 - clocks
83 - clock-names
84
85 unevaluatedProperties: false
86
87 examples:
88 - |
89 #include <dt-bindings/clock/imx7ulp-clock.h>
90 #include <dt-bindings/interrupt-controller/arm-gic.h>
91
92 spi@40290000 {
93 compatible = "fsl,imx7ulp-spi";
94 reg = <0x40290000 0x10000>;
95 interrupt-parent = <&intc>;
96 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
97 clocks = <&clks IMX7ULP_CLK_LPSPI2>,
98 <&clks IMX7ULP_CLK_DUMMY>;
99 clock-names = "per", "ipg";
100 spi-slave;
101 fsl,spi-only-use-cs1-sel;
102 num-cs = <2>;
103 };
104

3. 한국어 전문 번역

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

i.MX Low Power SPI schema

1-16

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 i.MX용 Freescale Low Power SPI(LPSPI)를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/spi-fsl-lpspi.yaml#`이며 maintainer는 Shawn Guo, Sascha Hauer, Fabio Estevam입니다.

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

i.MX와 S32G compatible

17-34

단독 compatible은 `fsl,imx7ulp-spi`, `fsl,imx8qxp-spi`, `nxp,s32g2-lpspi`입니다. `fsl,imx8ulp-spi`, `fsl,imx93-spi`, `fsl,imx94-spi`, `fsl,imx95-spi`는 첫 항목에 두고 fallback `fsl,imx7ulp-spi`를 둘째 항목에 둡니다.

S32G3는 `nxp,s32g3-lpspi` 뒤에 fallback `nxp,s32g2-lpspi`를 둡니다.

Register, interrupt, clock과 DMA

35-60

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`는 SoC SPI peripheral clock과 IPG clock 두 항목이고 `clock-names`는 `per`, `ipg` 순서입니다.

`dmas`는 TX와 RX channel 두 항목이며 `dma-names`는 `tx`, `rx` 순서입니다.

CS1-only board와 chip-select 수

61-77

Boolean `fsl,spi-only-use-cs1-sel`은 common SPI code가 CS signal의 불연속 사용을 지원하지 않는 문제를 보완합니다. i.MX8DXL-EVK처럼 CS0 없이 CS1만 사용하는 board에서 LPSPI driver의 chip-select 값을 재구성합니다.

`num-cs` 범위는 1~2이고 기본값은 1입니다. `power-domains`는 최대 한 항목입니다.

필수 속성과 추가 속성 제한

78-86

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

i.MX7ULP LPSPI slave 예제

87-103

예제의 `spi@40290000`은 `fsl,imx7ulp-spi`, GIC SPI 28, `IMX7ULP_CLK_LPSPI2` peripheral clock과 dummy IPG clock을 사용합니다. `spi-slave`, CS1-only option을 활성화하고 chip-select 수는 2입니다.

#include <dt-bindings/clock/imx7ulp-clock.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>

spi@40290000 {
    compatible = "fsl,imx7ulp-spi";
    reg = <0x40290000 0x10000>;
    interrupt-parent = <&intc>;
    interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&clks IMX7ULP_CLK_LPSPI2>,
             <&clks IMX7ULP_CLK_DUMMY>;
    clock-names = "per", "ipg";
    spi-slave;
    fsl,spi-only-use-cs1-sel;
    num-cs = <2>;
};