요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/ingenic,spi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ingenic SoCs SPI controller
maintainers:
- Artur Rojek <contact@artur-rojek.eu>
- Paul Cercueil <paul@crapouillou.net>
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
oneOf:
- enum:
- ingenic,jz4750-spi
- ingenic,jz4775-spi
- ingenic,jz4780-spi
- ingenic,x1000-spi
- ingenic,x2000-spi
- items:
- enum:
- ingenic,jz4760-spi
- ingenic,jz4770-spi
- const: ingenic,jz4750-spi
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
dmas:
maxItems: 2
minItems: 2
dma-names:
items:
- const: rx
- const: tx
required:
- compatible
- reg
- interrupts
- clocks
- dmas
- dma-names
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/ingenic,jz4770-cgu.h>
spi@10043000 {
compatible = "ingenic,jz4770-spi", "ingenic,jz4750-spi";
reg = <0x10043000 0x1c>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <8>;
clocks = <&cgu JZ4770_CLK_SSI0>;
dmas = <&dmac1 23 0xffffffff>, <&dmac1 22 0xffffffff>;
dma-names = "rx", "tx";
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Ingenic SPI schema와 상속
1-15이 GPL-2.0-only 또는 BSD-2-Clause YAML schema는 Ingenic SoC의 SPI controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/spi/ingenic,spi.yaml#`이고 core meta-schema를 사용합니다.
Maintainer는 Artur Rojek과 Paul Cercueil이며 `/schemas/spi/spi-controller.yaml#`의 공통 SPI controller 속성을 상속합니다.
SoC compatible 조합
16-30단일 compatible로 `ingenic,jz4750-spi`, `ingenic,jz4775-spi`, `ingenic,jz4780-spi`, `ingenic,x1000-spi`, `ingenic,x2000-spi`를 사용할 수 있습니다.
JZ4760 또는 JZ4770은 두 문자열 항목을 사용합니다. 첫 항목은 각각 `ingenic,jz4760-spi` 또는 `ingenic,jz4770-spi`이고, 둘째 fallback compatible은 `ingenic,jz4750-spi`여야 합니다.
Register, interrupt, clock과 DMA
31-58`reg`, `interrupts`, `clocks`는 각각 항목 하나만 허용합니다. `dmas`는 정확히 두 항목이며 `dma-names`는 같은 순서로 receive channel `rx`와 transmit channel `tx`를 지정합니다.
필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `dmas`, `dma-names`입니다. `unevaluatedProperties: false`이므로 공통 schema를 포함해 평가되지 않은 추가 속성은 허용하지 않습니다.
JZ4770 SSI0 예제
59-75예제는 JZ4770 SSI0를 JZ4750 fallback과 함께 선언하고 register, interrupt 8, `JZ4770_CLK_SSI0` clock, RX/TX DMA channel 23과 22를 연결합니다.
#include <dt-bindings/clock/ingenic,jz4770-cgu.h>
spi@10043000 {
compatible = "ingenic,jz4770-spi", "ingenic,jz4750-spi";
reg = <0x10043000 0x1c>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&intc>;
interrupts = <8>;
clocks = <&cgu JZ4770_CLK_SSI0>;
dmas = <&dmac1 23 0xffffffff>, <&dmac1 22 0xffffffff>;
dma-names = "rx", "tx";
};
요약과 해설
ingenic,spi.yaml:1-75Ingenic SoC별 compatible 조합과 interrupt·clock·DMA resource를 설명합니다. 접을 수 있는 영어 원문 전체와 줄 좌표를 보존하고, 한국어 전문 번역에서는 compatible·property·phandle·수치·예제 코드를 원형대로 유지합니다.