요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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-asoc-card.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Generic ASoC Sound Card with ASRC support
description:
The Freescale Generic ASoC Sound Card can be used, ideally,
for all Freescale SoCs connecting with external CODECs.
The idea of this generic sound card is a bit like ASoC Simple Card.
However, for Freescale SoCs (especially those released in recent years),
most of them have ASRC inside. And this is a specific feature that might
be painstakingly controlled and merged into the Simple Card.
So having this generic sound card allows all Freescale SoC users to
benefit from the simplification of a new card support and the capability
of the wide sample rates support through ASRC.
Note, The card is initially designed for those sound cards who use AC'97, I2S
and PCM DAI formats. However, it'll be also possible to support those non
AC'97/I2S/PCM type sound cards, such as S/PDIF audio and HDMI audio, as
long as the driver has been properly upgraded.
maintainers:
- Shengjiu Wang <shengjiu.wang@nxp.com>
properties:
compatible:
oneOf:
- items:
- enum:
- fsl,imx-sgtl5000
- fsl,imx25-pdk-sgtl5000
- fsl,imx53-cpuvo-sgtl5000
- fsl,imx51-babbage-sgtl5000
- fsl,imx53-m53evk-sgtl5000
- fsl,imx53-qsb-sgtl5000
- fsl,imx53-voipac-sgtl5000
- fsl,imx6-armadeus-sgtl5000
- fsl,imx6-rex-sgtl5000
- fsl,imx6-sabreauto-cs42888
- fsl,imx6-wandboard-sgtl5000
- fsl,imx6dl-nit6xlite-sgtl5000
- fsl,imx6q-ba16-sgtl5000
- fsl,imx6q-nitrogen6_max-sgtl5000
- fsl,imx6q-nitrogen6_som2-sgtl5000
- fsl,imx6q-nitrogen6x-sgtl5000
- fsl,imx6q-sabrelite-sgtl5000
- fsl,imx6q-sabresd-wm8962
- fsl,imx6q-udoo-ac97
- fsl,imx6q-ventana-sgtl5000
- fsl,imx6sl-evk-wm8962
- fsl,imx6sx-sdb-mqs
- fsl,imx6sx-sdb-wm8962
- fsl,imx7d-evk-wm8960
- karo,tx53-audio-sgtl5000
- tq,imx53-mba53-sgtl5000
- enum:
- fsl,imx-audio-ac97
- fsl,imx-audio-cs42888
- fsl,imx-audio-mqs
- fsl,imx-audio-sgtl5000
- fsl,imx-audio-wm8960
- fsl,imx-audio-wm8962
- items:
- enum:
- fsl,imx-sabreauto-spdif
- fsl,imx6sx-sdb-spdif
- const: fsl,imx-audio-spdif
- items:
- enum:
- fsl,imx-audio-ac97
- fsl,imx-audio-cs42888
- fsl,imx-audio-cs427x
- fsl,imx-audio-mqs
- fsl,imx-audio-nau8822
- fsl,imx-audio-sgtl5000
- fsl,imx-audio-si476x
- fsl,imx-audio-tlv320
- fsl,imx-audio-tlv320aic31xx
- fsl,imx-audio-tlv320aic32x4
- fsl,imx-audio-wm8524
- fsl,imx-audio-wm8904
- fsl,imx-audio-wm8960
- fsl,imx-audio-wm8962
- fsl,imx-audio-wm8958
- fsl,imx-audio-spdif
model:
$ref: /schemas/types.yaml#/definitions/string
description: The user-visible name of this sound complex
audio-asrc:
$ref: /schemas/types.yaml#/definitions/phandle
description:
The phandle of ASRC. It can be absent if there's no
need to add ASRC support via DPCM.
audio-codec:
$ref: /schemas/types.yaml#/definitions/phandle-array
description: |
The phandle of an audio codec.
With "fsl,imx-audio-spdif", either SPDIF audio codec spdif_transmitter,
spdif_receiver or both.
minItems: 1
maxItems: 2
items:
maxItems: 1
audio-cpu:
$ref: /schemas/types.yaml#/definitions/phandle
description: The phandle of an CPU DAI controller
audio-routing:
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
description:
A list of the connections between audio components. Each entry is a
pair of strings, the first being the connection's sink, the second
being the connection's source. There're a few pre-designed board
connectors. "AMIC" stands for Analog Microphone Jack.
"DMIC" stands for Digital Microphone Jack. The "Mic Jack" and "AMIC"
are redundant while coexisting in order to support the old bindings
of wm8962 and sgtl5000.
hp-det-gpio:
deprecated: true
maxItems: 1
description: The GPIO that detect headphones are plugged in
hp-det-gpios:
maxItems: 1
description: The GPIO that detect headphones are plugged in
mic-det-gpio:
deprecated: true
maxItems: 1
description: The GPIO that detect microphones are plugged in
mic-det-gpios:
maxItems: 1
description: The GPIO that detect microphones are plugged in
bitclock-master:
$ref: simple-card.yaml#/definitions/bitclock-master
description: Indicates dai-link bit clock master.
frame-master:
$ref: simple-card.yaml#/definitions/frame-master
description: Indicates dai-link frame master.
format:
$ref: simple-card.yaml#/definitions/format
description: audio format.
frame-inversion:
$ref: simple-card.yaml#/definitions/frame-inversion
description: dai-link uses frame clock inversion.
bitclock-inversion:
$ref: simple-card.yaml#/definitions/bitclock-inversion
description: dai-link uses bit clock inversion.
mclk-id:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: Main clock id for each codec, specific for each card configuration.
minItems: 1
maxItems: 2
mux-int-port:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 7]
description: The internal port of the i.MX audio muxer (AUDMUX)
mux-ext-port:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [3, 4, 5, 6]
description: The external port of the i.MX audio muxer
ssi-controller:
$ref: /schemas/types.yaml#/definitions/phandle
description: The phandle of an CPU DAI controller
spdif-controller:
$ref: /schemas/types.yaml#/definitions/phandle
deprecated: true
description: The phandle of an S/PDIF CPU DAI controller.
spdif-out:
type: boolean
deprecated: true
description: |
If present, the transmitting function of S/PDIF will be enabled,
indicating there's a physical S/PDIF out connector or jack on the
board or it's connecting to some other IP block, such as an HDMI
encoder or display-controller.
spdif-in:
type: boolean
deprecated: true
description: |
If present, the receiving function of S/PDIF will be enabled,
indicating there is a physical S/PDIF in connector/jack on the board.
required:
- compatible
- model
unevaluatedProperties: false
examples:
- |
sound-cs42888 {
compatible = "fsl,imx-audio-cs42888";
model = "cs42888-audio";
audio-cpu = <&esai>;
audio-asrc = <&asrc>;
audio-codec = <&cs42888>;
audio-routing =
"Line Out Jack", "AOUT1L",
"Line Out Jack", "AOUT1R",
"Line Out Jack", "AOUT2L",
"Line Out Jack", "AOUT2R",
"Line Out Jack", "AOUT3L",
"Line Out Jack", "AOUT3R",
"Line Out Jack", "AOUT4L",
"Line Out Jack", "AOUT4R",
"AIN1L", "Line In Jack",
"AIN1R", "Line In Jack",
"AIN2L", "Line In Jack",
"AIN2R", "Line In Jack";
};
- |
sound-spdif-asrc {
compatible = "fsl,imx-audio-spdif";
model = "spdif-asrc-audio";
audio-cpu = <&spdif>;
audio-asrc = <&easrc>;
audio-codec = <&spdifdit>, <&spdifdir>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Freescale generic ASoC card 개요
1-29이 YAML binding은 ASRC를 지원하는 Freescale generic ASoC sound card를 정의합니다. Freescale SoC와 external codec을 연결하는 공통 card이며 ASoC Simple Card와 비슷하지만 SoC 내부 ASRC를 자연스럽게 통합해 넓은 sample rate를 지원합니다.
초기 설계 대상은 AC'97, I2S, PCM DAI format이지만 driver가 확장되면 S/PDIF나 HDMI audio 같은 다른 형식도 지원할 수 있습니다. Maintainer는 Shengjiu Wang입니다.
Board-specific compatible과 fallback
30-67첫 compatible 형식은 board-specific 문자열 하나와 그에 맞는 generic fallback 하나의 조합입니다. 허용되는 board-specific 값은 다음과 같습니다.
- `fsl,imx-sgtl5000`
- `fsl,imx25-pdk-sgtl5000`
- `fsl,imx53-cpuvo-sgtl5000`
- `fsl,imx51-babbage-sgtl5000`
- `fsl,imx53-m53evk-sgtl5000`
- `fsl,imx53-qsb-sgtl5000`
- `fsl,imx53-voipac-sgtl5000`
- `fsl,imx6-armadeus-sgtl5000`
- `fsl,imx6-rex-sgtl5000`
- `fsl,imx6-sabreauto-cs42888`
- `fsl,imx6-wandboard-sgtl5000`
- `fsl,imx6dl-nit6xlite-sgtl5000`
- `fsl,imx6q-ba16-sgtl5000`
- `fsl,imx6q-nitrogen6_max-sgtl5000`
- `fsl,imx6q-nitrogen6_som2-sgtl5000`
- `fsl,imx6q-nitrogen6x-sgtl5000`
- `fsl,imx6q-sabrelite-sgtl5000`
- `fsl,imx6q-sabresd-wm8962`
- `fsl,imx6q-udoo-ac97`
- `fsl,imx6q-ventana-sgtl5000`
- `fsl,imx6sl-evk-wm8962`
- `fsl,imx6sx-sdb-mqs`
- `fsl,imx6sx-sdb-wm8962`
- `fsl,imx7d-evk-wm8960`
- `karo,tx53-audio-sgtl5000`
- `tq,imx53-mba53-sgtl5000`
둘째 fallback 항목은 codec/card 구성에 따라 `fsl,imx-audio-ac97`, `fsl,imx-audio-cs42888`, `fsl,imx-audio-mqs`, `fsl,imx-audio-sgtl5000`, `fsl,imx-audio-wm8960`, `fsl,imx-audio-wm8962` 중 하나입니다.
S/PDIF와 generic compatible
68-91S/PDIF board 형식은 `fsl,imx-sabreauto-spdif` 또는 `fsl,imx6sx-sdb-spdif` 뒤에 `fsl,imx-audio-spdif`를 둡니다.
단일 generic compatible로는 `fsl,imx-audio-ac97`, `fsl,imx-audio-cs42888`, `fsl,imx-audio-cs427x`, `fsl,imx-audio-mqs`, `fsl,imx-audio-nau8822`, `fsl,imx-audio-sgtl5000`, `fsl,imx-audio-si476x`, `fsl,imx-audio-tlv320`, `fsl,imx-audio-tlv320aic31xx`, `fsl,imx-audio-tlv320aic32x4`, `fsl,imx-audio-wm8524`, `fsl,imx-audio-wm8904`, `fsl,imx-audio-wm8960`, `fsl,imx-audio-wm8962`, `fsl,imx-audio-wm8958`, `fsl,imx-audio-spdif`를 허용합니다.
Model, ASRC, codec과 CPU DAI
92-116`model`은 사용자에게 보이는 sound complex 이름입니다. `audio-asrc`는 ASRC phandle이며 DPCM을 통한 ASRC 지원이 필요 없으면 생략할 수 있습니다.
`audio-codec`은 1~2개의 codec phandle 배열입니다. `fsl,imx-audio-spdif`에서는 `spdif_transmitter`, `spdif_receiver` 또는 둘 다를 지정합니다. `audio-cpu`는 CPU DAI controller phandle입니다.
Audio routing과 jack detection
117-145`audio-routing`은 audio component 연결 목록이며 각 pair의 첫 문자열이 sink, 둘째가 source입니다. `AMIC`은 analog microphone jack, `DMIC`은 digital microphone jack입니다. 기존 wm8962와 sgtl5000 binding 호환을 위해 `Mic Jack`과 `AMIC`은 함께 있을 때 의미가 중복됩니다.
Deprecated `hp-det-gpio`와 대체 속성 `hp-det-gpios`는 headphone plug detection GPIO 한 항목입니다. Deprecated `mic-det-gpio`와 대체 `mic-det-gpios`는 microphone plug detection GPIO 한 항목입니다.
DAI format, MCLK와 AUDMUX
146-180`bitclock-master`, `frame-master`, `format`, `frame-inversion`, `bitclock-inversion`은 각각 `simple-card.yaml#`의 해당 정의를 참조해 DAI link의 clock master와 format/inversion을 지정합니다.
`mclk-id`는 codec별 main clock ID 배열로 1~2개입니다. `mux-int-port`는 AUDMUX internal port로 1, 2, 7 중 하나이고 `mux-ext-port`는 external port로 3, 4, 5, 6 중 하나입니다.
SSI와 deprecated S/PDIF 속성
181-206`ssi-controller`는 CPU DAI controller phandle입니다. Deprecated `spdif-controller`는 S/PDIF CPU DAI controller phandle입니다.
Deprecated boolean `spdif-out`은 board의 physical S/PDIF output 또는 HDMI encoder/display controller 같은 IP 연결을 위해 transmit 기능을 활성화합니다. Deprecated `spdif-in`은 physical S/PDIF input connector를 위한 receive 기능을 활성화합니다.
필수 속성과 확장 제한
207-212필수 속성은 `compatible`과 `model`입니다. `unevaluatedProperties: false`이므로 schema에서 평가되지 않은 속성을 허용하지 않습니다.
CS42888와 ASRC routing 예제
213-234첫 예제는 `fsl,imx-audio-cs42888` card에 ESAI CPU DAI, ASRC와 CS42888 codec을 연결하고 네 stereo line output 및 두 stereo line input route를 정의합니다.
sound-cs42888 {
compatible = "fsl,imx-audio-cs42888";
model = "cs42888-audio";
audio-cpu = <&esai>;
audio-asrc = <&asrc>;
audio-codec = <&cs42888>;
audio-routing =
"Line Out Jack", "AOUT1L",
"Line Out Jack", "AOUT1R",
"Line Out Jack", "AOUT2L",
"Line Out Jack", "AOUT2R",
"Line Out Jack", "AOUT3L",
"Line Out Jack", "AOUT3R",
"Line Out Jack", "AOUT4L",
"Line Out Jack", "AOUT4R",
"AIN1L", "Line In Jack",
"AIN1R", "Line In Jack",
"AIN2L", "Line In Jack",
"AIN2R", "Line In Jack";
};
S/PDIF ASRC 예제
235-243둘째 예제는 `fsl,imx-audio-spdif` card에 S/PDIF CPU, EASRC, transmitter와 receiver codec을 함께 연결합니다.
sound-spdif-asrc {
compatible = "fsl,imx-audio-spdif";
model = "spdif-asrc-audio";
audio-cpu = <&spdif>;
audio-asrc = <&easrc>;
audio-codec = <&spdifdit>, <&spdifdir>;
};
요약과 해설
fsl-asoc-card.yaml:1-243FourSemi amplifier와 Freescale/NXP audio card·controller의 compatible, clock, DMA, routing과 firmware 조건을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.