요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
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 <[email protected]>
- Paul Cercueil <[email protected]>
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. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, 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·수치·예제 코드를 원형대로 유지합니다.