요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/sound/fsl,esai.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Enhanced Serial Audio Interface (ESAI) Controller
maintainers:
- Shengjiu Wang <[email protected]>
- Frank Li <[email protected]>
description:
The Enhanced Serial Audio Interface (ESAI) provides a full-duplex serial port
for serial communication with a variety of serial devices, including industry
standard codecs, Sony/Phillips Digital Interface (S/PDIF) transceivers, and
other DSPs. It has up to six transmitters and four receivers.
properties:
compatible:
oneOf:
- enum:
- fsl,imx35-esai
- fsl,imx6ull-esai
- fsl,vf610-esai
- items:
- enum:
- fsl,imx8qm-esai
- const: fsl,imx6ull-esai
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
minItems: 3
items:
- description:
The core clock used to access registers.
- description:
The esai baud clock for esai controller used to
derive HCK, SCK and FS.
- description:
The system clock derived from ahb clock used to
derive HCK, SCK and FS.
- description:
The spba clock is required when ESAI is placed as a
bus slave of the Shared Peripheral Bus and when two
or more bus masters (CPU, DMA or DSP) try to access
it. This property is optional depending on the SoC
design.
clock-names:
minItems: 3
items:
- const: core
- const: extal
- const: fsys
- const: spba
dmas:
minItems: 2
maxItems: 2
dma-names:
items:
- const: rx
- const: tx
power-domains:
maxItems: 1
fsl,fifo-depth:
$ref: /schemas/types.yaml#/definitions/uint32
default: 64
description:
The number of elements in the transmit and receive
FIFOs. This number is the maximum allowed value for
TFCR[TFWM] or RFCR[RFWM].
fsl,esai-synchronous:
$ref: /schemas/types.yaml#/definitions/flag
description:
This is a boolean property. If present, indicating
that ESAI would work in the synchronous mode, which
means all the settings for Receiving would be
duplicated from Transmission related registers.
big-endian:
$ref: /schemas/types.yaml#/definitions/flag
description:
If this property is absent, the native endian mode
will be in use as default, or the big endian mode
will be in use for all the device registers.
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- dmas
- dma-names
unevaluatedProperties: false
allOf:
- $ref: dai-common.yaml#
- if:
properties:
compatible:
contains:
const: fsl,imx8qm-esai
then:
required:
- power-domains
else:
properties:
power-domains: false
examples:
- |
esai@2024000 {
compatible = "fsl,imx35-esai";
reg = <0x02024000 0x4000>;
interrupts = <0 51 0x04>;
clocks = <&clks 208>, <&clks 118>, <&clks 208>;
clock-names = "core", "extal", "fsys";
dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
dma-names = "rx", "tx";
fsl,fifo-depth = <128>;
fsl,esai-synchronous;
big-endian;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Freescale ESAI controller
1-18이 YAML binding은 Freescale Enhanced Serial Audio Interface(ESAI)를 정의합니다. ESAI는 표준 codec, Sony/Phillips Digital Interface(S/PDIF) transceiver와 DSP 등 여러 serial device와 통신하는 full-duplex serial port이며 transmitter 최대 6개와 receiver 최대 4개를 제공합니다.
Schema ID는 `http://devicetree.org/schemas/sound/fsl,esai.yaml#`이고 maintainer는 Shengjiu Wang과 Frank Li입니다.
SoC compatible, register와 IRQ
19-36`compatible`은 `fsl,imx35-esai`, `fsl,imx6ull-esai`, `fsl,vf610-esai` 중 하나이거나 `fsl,imx8qm-esai` 뒤에 fallback `fsl,imx6ull-esai`을 둔 두 항목입니다. `reg`와 `interrupts`는 각각 최대 한 항목입니다.
Core, baud, system과 SPBA clock
37-62`clocks`와 `clock-names`는 최소 세 항목입니다. `core`는 register access용 core clock, `extal`은 HCK/SCK/FS를 유도하는 ESAI baud clock, `fsys`는 AHB에서 유도되어 HCK/SCK/FS 생성에 쓰이는 system clock입니다.
선택적인 `spba` clock은 ESAI가 Shared Peripheral Bus slave이고 CPU, DMA, DSP 중 둘 이상의 bus master가 접근하는 SoC 설계에서 필요합니다.
RX/TX DMA와 power domain
63-74`dmas`는 정확히 두 항목이며 `dma-names`는 `rx`, `tx` 순서입니다. `power-domains`는 최대 한 항목입니다.
FIFO depth, synchronous mode와 endian
75-97`fsl,fifo-depth`는 TX/RX FIFO element 수를 정하는 `uint32`이며 기본값은 64입니다. 이 값은 `TFCR[TFWM]` 또는 `RFCR[RFWM]`에 허용되는 최대값입니다.
Flag `fsl,esai-synchronous`가 있으면 ESAI가 synchronous mode로 동작해 receive 설정을 transmission 관련 register에서 복제합니다.
Flag `big-endian`이 없으면 native endian이 기본이고, 있으면 모든 device register에 big-endian mode를 사용합니다.
필수 속성과 i.MX8QM 조건
98-122필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`, `dmas`, `dma-names`입니다. `dai-common.yaml#`을 상속하며 평가되지 않은 속성은 허용하지 않습니다.
`compatible`에 `fsl,imx8qm-esai`가 포함되면 `power-domains`가 필수입니다. 다른 compatible에서는 `power-domains`를 사용할 수 없습니다.
i.MX35 ESAI 예제
123-136예제는 address `0x02024000`의 i.MX35 ESAI에 interrupt 51, 세 필수 clock, RX/TX SDMA를 연결합니다. FIFO depth는 128이며 synchronous mode와 big-endian register access를 활성화합니다.
esai@2024000 {
compatible = "fsl,imx35-esai";
reg = <0x02024000 0x4000>;
interrupts = <0 51 0x04>;
clocks = <&clks 208>, <&clks 118>, <&clks 208>;
clock-names = "core", "extal", "fsys";
dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
dma-names = "rx", "tx";
fsl,fifo-depth = <128>;
fsl,esai-synchronous;
big-endian;
};
요약과 해설
fsl,esai.yaml:1-136NXP/Freescale audio mixer, sample-rate converter와 serial interface의 signal flow, clock, DMA와 조건부 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.