← Documents Documentation/devicetree/bindings/spi/mediatek,spi-mt65xx.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SPI

MediaTek ARM SoC SPI bus controller

MediaTek SoC별 compatible fallback, clock 순서와 pad group 선택을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

mediatek,spi-mt65xx.yaml:1-121

MediaTek SoC별 compatible fallback, clock 순서와 pad group 선택을 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·clock 순서·수치·예제 코드를 원형대로 유지합니다.

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/mediatek,spi-mt65xx.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: SPI Bus controller for MediaTek ARM SoCs
8
9 maintainers:
10 - Leilk Liu <[email protected]>
11
12 allOf:
13 - $ref: /schemas/spi/spi-controller.yaml#
14
15 properties:
16 compatible:
17 oneOf:
18 - items:
19 - enum:
20 - mediatek,mt7629-spi
21 - mediatek,mt8365-spi
22 - const: mediatek,mt7622-spi
23 - items:
24 - enum:
25 - mediatek,mt8516-spi
26 - const: mediatek,mt2712-spi
27 - items:
28 - enum:
29 - mediatek,mt6779-spi
30 - mediatek,mt8186-spi
31 - mediatek,mt8192-spi
32 - mediatek,mt8195-spi
33 - const: mediatek,mt6765-spi
34 - items:
35 - enum:
36 - mediatek,mt7981-spi-ipm
37 - mediatek,mt7986-spi-ipm
38 - mediatek,mt7988-spi-quad
39 - mediatek,mt7988-spi-single
40 - mediatek,mt8188-spi-ipm
41 - const: mediatek,spi-ipm
42 - items:
43 - enum:
44 - mediatek,mt8196-spi
45 - const: mediatek,mt6991-spi
46 - items:
47 - enum:
48 - mediatek,mt2701-spi
49 - mediatek,mt2712-spi
50 - mediatek,mt6589-spi
51 - mediatek,mt6765-spi
52 - mediatek,mt6893-spi
53 - mediatek,mt6991-spi
54 - mediatek,mt7622-spi
55 - mediatek,mt8135-spi
56 - mediatek,mt8173-spi
57 - mediatek,mt8183-spi
58
59 reg:
60 maxItems: 1
61
62 interrupts:
63 maxItems: 1
64
65 clocks:
66 minItems: 3
67 items:
68 - description: clock used for the parent clock
69 - description: clock used for the muxes clock
70 - description: clock used for the clock gate
71 - description: clock used for the AHB bus, this clock is optional
72
73 clock-names:
74 minItems: 3
75 items:
76 - const: parent-clk
77 - const: sel-clk
78 - const: spi-clk
79 - const: hclk
80
81 mediatek,pad-select:
82 $ref: /schemas/types.yaml#/definitions/uint32-array
83 minItems: 1
84 maxItems: 4
85 items:
86 enum: [0, 1, 2, 3]
87 description:
88 specify which pins group(ck/mi/mo/cs) spi controller used.
89 This is an array.
90
91 required:
92 - compatible
93 - reg
94 - interrupts
95 - clocks
96 - clock-names
97 - '#address-cells'
98 - '#size-cells'
99
100 unevaluatedProperties: false
101
102 examples:
103 - |
104 #include <dt-bindings/clock/mt8173-clk.h>
105 #include <dt-bindings/gpio/gpio.h>
106 #include <dt-bindings/interrupt-controller/arm-gic.h>
107 #include <dt-bindings/interrupt-controller/irq.h>
108
109 spi@1100a000 {
110 compatible = "mediatek,mt8173-spi";
111 #address-cells = <1>;
112 #size-cells = <0>;
113 reg = <0x1100a000 0x1000>;
114 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>;
115 clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
116 <&topckgen CLK_TOP_SPI_SEL>,
117 <&pericfg CLK_PERI_SPI0>;
118 clock-names = "parent-clk", "sel-clk", "spi-clk";
119 cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>;
120 mediatek,pad-select = <1>, <0>;
121 };
122

3. 한국어 전문 번역

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

MediaTek ARM SPI bus schema

1-14

이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 MediaTek ARM SoC의 SPI bus controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/mediatek,spi-mt65xx.yaml#`, maintainer는 Leilk Liu입니다.

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

SoC별 compatible과 fallback

15-58

`mediatek,mt7629-spi`와 `mediatek,mt8365-spi`는 `mediatek,mt7622-spi`를 fallback으로 사용합니다. `mediatek,mt8516-spi`는 `mediatek,mt2712-spi`를 fallback으로 사용합니다.

`mediatek,mt6779-spi`, `mediatek,mt8186-spi`, `mediatek,mt8192-spi`, `mediatek,mt8195-spi`는 `mediatek,mt6765-spi`를 fallback으로 사용합니다. `mediatek,mt7981-spi-ipm`, `mediatek,mt7986-spi-ipm`, `mediatek,mt7988-spi-quad`, `mediatek,mt7988-spi-single`, `mediatek,mt8188-spi-ipm`은 `mediatek,spi-ipm`을 fallback으로 사용합니다. `mediatek,mt8196-spi`는 `mediatek,mt6991-spi`를 fallback으로 사용합니다.

단독 compatible로는 `mediatek,mt2701-spi`, `mediatek,mt2712-spi`, `mediatek,mt6589-spi`, `mediatek,mt6765-spi`, `mediatek,mt6893-spi`, `mediatek,mt6991-spi`, `mediatek,mt7622-spi`, `mediatek,mt8135-spi`, `mediatek,mt8173-spi`, `mediatek,mt8183-spi`를 사용할 수 있습니다.

Register, interrupt와 clock 순서

59-80

`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`는 최소 세 항목이며 parent clock, mux clock, clock gate 순서입니다. 선택적인 넷째 항목은 AHB bus clock입니다.

`clock-names`는 같은 순서로 `parent-clk`, `sel-clk`, `spi-clk`, 선택적 `hclk`를 사용합니다.

SPI pin group 선택

81-90

`mediatek,pad-select`는 controller가 사용할 CK/MI/MO/CS pin group을 지정하는 `uint32` 배열입니다. 항목은 1~4개이고 각 값은 0, 1, 2, 3 중 하나입니다.

필수 속성과 schema 제한

91-101

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

MT8173 SPI 예제

102-121

예제는 MT8173 SPI controller에 register, GIC interrupt 110, 세 clock과 이름을 연결합니다. Active-low chip-select GPIO 두 개를 지정하고 이에 대응하는 pad group으로 1과 0을 선택합니다.

#include <dt-bindings/clock/mt8173-clk.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>

spi@1100a000 {
  compatible = "mediatek,mt8173-spi";
  #address-cells = <1>;
  #size-cells = <0>;
  reg = <0x1100a000 0x1000>;
  interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>;
  clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
           <&topckgen CLK_TOP_SPI_SEL>,
           <&pericfg CLK_PERI_SPI0>;
  clock-names = "parent-clk", "sel-clk", "spi-clk";
  cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>;
  mediatek,pad-select = <1>, <0>;
};