요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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,audmix.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP Audio Mixer (AUDMIX).
maintainers:
- Shengjiu Wang <[email protected]>
- Frank Li <[email protected]>
description: |
The Audio Mixer is a on-chip functional module that allows mixing of two
audio streams into a single audio stream. Audio Mixer has two input serial
audio interfaces. These are driven by two Synchronous Audio interface
modules (SAI). Each input serial interface carries 8 audio channels in its
frame in TDM manner. Mixer mixes audio samples of corresponding channels
from two interfaces into a single sample. Before mixing, audio samples of
two inputs can be attenuated based on configuration. The output of the
Audio Mixer is also a serial audio interface. Like input interfaces it has
the same TDM frame format. This output is used to drive the serial DAC TDM
interface of audio codec and also sent to the external pins along with the
receive path of normal audio SAI module for readback by the CPU.
The output of Audio Mixer can be selected from any of the three streams
- serial audio input 1
- serial audio input 2
- mixed audio
Mixing operation is independent of audio sample rate but the two audio
input streams must have same audio sample rate with same number of channels
in TDM frame to be eligible for mixing.
properties:
compatible:
const: fsl,imx8qm-audmix
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: ipg
power-domains:
maxItems: 1
dais:
description: contain a list of phandles to AUDMIX connected DAIs.
$ref: /schemas/types.yaml#/definitions/phandle-array
minItems: 2
items:
- description: the AUDMIX output
maxItems: 1
- description: serial audio input 1
maxItems: 1
- description: serial audio input 2
maxItems: 1
ports:
$ref: /schemas/graph.yaml#/properties/ports
patternProperties:
'^port@[0-1]':
$ref: audio-graph-port.yaml#
unevaluatedProperties: false
description: Input port from SAI TX
properties:
port@2:
$ref: audio-graph-port.yaml#
unevaluatedProperties: false
description: Output port to SAI RX
required:
- compatible
- reg
- clocks
- clock-names
- power-domains
unevaluatedProperties: false
examples:
- |
audmix@59840000 {
compatible = "fsl,imx8qm-audmix";
reg = <0x59840000 0x10000>;
clocks = <&amix_lpcg 0>;
clock-names = "ipg";
power-domains = <&pd_audmix>;
dais = <&sai4>, <&sai5>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
playback-only;
amix_endpoint0: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
remote-endpoint = <&be00_ep>;
};
};
port@1 {
reg = <1>;
playback-only;
amix_endpoint1: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
remote-endpoint = <&be01_ep>;
};
};
port@2 {
reg = <2>;
capture-only;
amix_endpoint2: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
bitclock-master;
frame-master;
remote-endpoint = <&be02_ep>;
};
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
NXP Audio Mixer schema
1-12이 YAML binding은 NXP on-chip Audio Mixer(AUDMIX)를 정의합니다. Schema ID는 `http://devicetree.org/schemas/sound/fsl,audmix.yaml#`이고 maintainer는 Shengjiu Wang과 Frank Li입니다.
두 TDM stream의 mixing 동작
13-34AUDMIX는 두 audio stream을 하나로 섞습니다. 두 serial input은 각각 SAI가 구동하며 TDM frame마다 8 audio channel을 전달합니다. Mixer는 두 interface의 같은 channel sample을 하나로 합치고, mixing 전에 각 input을 설정에 따라 감쇠할 수 있습니다.
Output도 input과 같은 TDM frame 형식의 serial audio interface입니다. Codec의 serial DAC TDM interface를 구동하고 normal SAI receive path와 external pin으로도 보내 CPU가 readback할 수 있습니다.
Output source는 serial audio input 1, serial audio input 2, mixed audio 중 하나입니다. Mixing 자체는 sample rate와 독립적이지만 두 input stream은 같은 sample rate와 같은 TDM channel 수를 가져야 합니다.
주소, IPG clock과 power domain
35-51`compatible`은 `fsl,imx8qm-audmix`, `reg`, `clocks`, `power-domains`는 각각 최대 한 항목입니다. `clock-names`는 `ipg`입니다.
DAI phandle과 graph port
52-77`dais`는 AUDMIX에 연결된 DAI phandle 배열로 최소 두 항목입니다. 항목은 AUDMIX output, serial audio input 1, serial audio input 2 순서로 정의되며 각 항목은 phandle 하나입니다.
`ports`는 graph schema를 따릅니다. `port@0`과 `port@1`은 SAI TX에서 들어오는 input port이고 `port@2`는 SAI RX로 나가는 output port입니다. 각 port는 `audio-graph-port.yaml#`을 참조하며 정의되지 않은 속성을 허용하지 않습니다.
필수 속성과 확장 제한
78-86필수 속성은 `compatible`, `reg`, `clocks`, `clock-names`, `power-domains`입니다. `unevaluatedProperties: false`이므로 schema에서 평가하지 않은 속성은 허용하지 않습니다.
i.MX8QM 8-channel AUDMIX 예제
87-142예제는 address `0x59840000`의 AUDMIX에 IPG clock, power domain, SAI4와 SAI5를 연결합니다. 두 playback input과 한 capture output은 모두 8개 32-bit TDM slot과 `dsp_a` format을 사용하며 output endpoint가 bit/frame clock master입니다.
audmix@59840000 {
compatible = "fsl,imx8qm-audmix";
reg = <0x59840000 0x10000>;
clocks = <&amix_lpcg 0>;
clock-names = "ipg";
power-domains = <&pd_audmix>;
dais = <&sai4>, <&sai5>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
playback-only;
amix_endpoint0: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
remote-endpoint = <&be00_ep>;
};
};
port@1 {
reg = <1>;
playback-only;
amix_endpoint1: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
remote-endpoint = <&be01_ep>;
};
};
port@2 {
reg = <2>;
capture-only;
amix_endpoint2: endpoint {
dai-tdm-slot-num = <8>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-width-map = <32 8 32>;
dai-format = "dsp_a";
bitclock-master;
frame-master;
remote-endpoint = <&be02_ep>;
};
};
};
};
요약과 해설
fsl,audmix.yaml:1-142NXP/Freescale audio mixer, sample-rate converter와 serial interface의 signal flow, clock, DMA와 조건부 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.