← Documents Documentation/devicetree/bindings/spi/st,stm32mp25-ospi.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

STM32MP25 Octal SPI

STM32MP25 OSPI의 direct-mapped memory, delay block과 access control을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

st,stm32mp25-ospi.yaml:1-106

STM32MP25 OSPI의 direct-mapped memory, delay block과 access control을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 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/st,stm32mp25-ospi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: STMicroelectronics STM32 Octal Serial Peripheral Interface (OSPI)
8
9 maintainers:
10 - Patrice Chotard <[email protected]>
11
12 allOf:
13 - $ref: spi-controller.yaml#
14
15 properties:
16 compatible:
17 const: st,stm32mp25-ospi
18
19 reg:
20 maxItems: 1
21
22 memory-region:
23 description:
24 Memory region to be used for memory-map read access.
25 In memory-mapped mode, read access are performed from the memory
26 device using the direct mapping.
27 maxItems: 1
28
29 clocks:
30 maxItems: 1
31
32 interrupts:
33 maxItems: 1
34
35 resets:
36 items:
37 - description: phandle to OSPI block reset
38 - description: phandle to delay block reset
39
40 dmas:
41 maxItems: 2
42
43 dma-names:
44 items:
45 - const: tx
46 - const: rx
47
48 st,syscfg-dlyb:
49 description: configure OCTOSPI delay block.
50 $ref: /schemas/types.yaml#/definitions/phandle-array
51 items:
52 - description: phandle to syscfg
53 - description: register offset within syscfg
54
55 access-controllers:
56 description: phandle to the rifsc device to check access right
57 and in some cases, an additional phandle to the rcc device for
58 secure clock control.
59 items:
60 - description: phandle to bus controller
61 - description: phandle to clock controller
62 minItems: 1
63
64 power-domains:
65 maxItems: 1
66
67 required:
68 - compatible
69 - reg
70 - clocks
71 - resets
72 - interrupts
73 - st,syscfg-dlyb
74
75 unevaluatedProperties: false
76
77 examples:
78 - |
79 #include <dt-bindings/clock/st,stm32mp25-rcc.h>
80 #include <dt-bindings/interrupt-controller/arm-gic.h>
81 #include <dt-bindings/reset/st,stm32mp25-rcc.h>
82
83 spi@40430000 {
84 compatible = "st,stm32mp25-ospi";
85 reg = <0x40430000 0x400>;
86 memory-region = <&mm_ospi1>;
87 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
88 dmas = <&hpdma 2 0x62 0x00003121 0x0>,
89 <&hpdma 2 0x42 0x00003112 0x0>;
90 dma-names = "tx", "rx";
91 clocks = <&scmi_clk CK_SCMI_OSPI1>;
92 resets = <&scmi_reset RST_SCMI_OSPI1>, <&scmi_reset RST_SCMI_OSPI1DLL>;
93 access-controllers = <&rifsc 74>;
94 power-domains = <&CLUSTER_PD>;
95 st,syscfg-dlyb = <&syscfg 0x1000>;
96
97 #address-cells = <1>;
98 #size-cells = <0>;
99
100 flash@0 {
101 compatible = "jedec,spi-nor";
102 reg = <0>;
103 spi-rx-bus-width = <4>;
104 spi-max-frequency = <108000000>;
105 };
106 };
107

3. 한국어 전문 번역

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

STM32MP25 Octal SPI schema

1-14

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 STMicroelectronics STM32 Octal Serial Peripheral Interface(OSPI)를 정의합니다. Maintainer는 Patrice Chotard이며 공통 `spi-controller.yaml#`을 상속합니다.

Controller register와 direct-mapped memory

15-28

`compatible`은 `st,stm32mp25-ospi`이고 `reg`는 최대 한 항목입니다. `memory-region`은 memory-map read access에 사용할 영역으로 최대 한 항목이며, memory-mapped mode에서는 direct mapping을 통해 memory device를 읽습니다.

Clock, interrupt, reset과 DMA

29-47

`clocks`와 `interrupts`는 각각 최대 한 항목입니다. `resets`는 OSPI block reset과 delay block reset 순서의 두 phandle입니다.

`dmas`는 최대 두 항목이고 `dma-names`는 TX용 `tx`, RX용 `rx` 순서입니다.

Delay block과 access controller

48-66

`st,syscfg-dlyb`는 OCTOSPI delay block을 구성하는 phandle array로, `syscfg` phandle과 그 안의 register offset을 순서대로 담습니다.

`access-controllers`는 access right를 확인할 RIFSC device phandle과, 일부 경우 secure clock control용 RCC device phandle을 담습니다. Bus controller는 필수이고 clock controller는 선택적이므로 최소 한 항목입니다. `power-domains`는 최대 한 항목입니다.

필수 속성과 추가 속성 제한

67-76

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

STM32MP25 OSPI와 quad SPI NOR 예제

77-106

예제의 `spi@40430000`은 OSPI1 memory region, GIC SPI 163, HPDMA TX·RX, SCMI clock, OSPI block·DLL reset, RIFSC 74, cluster power domain, SYSCFG offset 0x1000을 사용합니다.

Chip select 0의 `jedec,spi-nor` flash는 RX bus width 4와 최대 주파수 108000000 Hz를 지정합니다.

#include <dt-bindings/clock/st,stm32mp25-rcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/st,stm32mp25-rcc.h>

spi@40430000 {
  compatible = "st,stm32mp25-ospi";
  reg = <0x40430000 0x400>;
  memory-region = <&mm_ospi1>;
  interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
  dmas = <&hpdma 2 0x62 0x00003121 0x0>,
         <&hpdma 2 0x42 0x00003112 0x0>;
  dma-names = "tx", "rx";
  clocks = <&scmi_clk CK_SCMI_OSPI1>;
  resets = <&scmi_reset RST_SCMI_OSPI1>, <&scmi_reset RST_SCMI_OSPI1DLL>;
  access-controllers = <&rifsc 74>;
  power-domains = <&CLUSTER_PD>;
  st,syscfg-dlyb = <&syscfg 0x1000>;

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

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