요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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,easrc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: NXP Asynchronous Sample Rate Converter (ASRC) Controller
maintainers:
- Shengjiu Wang <shengjiu.wang@nxp.com>
properties:
$nodename:
pattern: "^easrc@.*"
compatible:
oneOf:
- enum:
- fsl,imx8mn-easrc
- items:
- enum:
- fsl,imx8mp-easrc
- const: fsl,imx8mn-easrc
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
items:
- description: Peripheral clock
clock-names:
items:
- const: mem
dmas:
maxItems: 8
dma-names:
items:
- const: ctx0_rx
- const: ctx0_tx
- const: ctx1_rx
- const: ctx1_tx
- const: ctx2_rx
- const: ctx2_tx
- const: ctx3_rx
- const: ctx3_tx
firmware-name:
items:
- const: imx/easrc/easrc-imx8mn.bin
description: The coefficient table for the filters
fsl,asrc-rate:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 8000
maximum: 192000
description: Defines a mutual sample rate used by DPCM Back Ends
fsl,asrc-format:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [2, 6, 10, 32, 36]
default: 2
description:
Defines a mutual sample format used by DPCM Back Ends
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- dmas
- dma-names
- firmware-name
- fsl,asrc-rate
- fsl,asrc-format
allOf:
- $ref: dai-common.yaml#
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/imx8mn-clock.h>
easrc: easrc@300c0000 {
compatible = "fsl,imx8mn-easrc";
reg = <0x300c0000 0x10000>;
interrupts = <0x0 122 0x4>;
clocks = <&clk IMX8MN_CLK_ASRC_ROOT>;
clock-names = "mem";
dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>,
<&sdma2 18 23 0> , <&sdma2 19 23 0>,
<&sdma2 20 23 0> , <&sdma2 21 23 0>,
<&sdma2 22 23 0> , <&sdma2 23 23 0>;
dma-names = "ctx0_rx", "ctx0_tx",
"ctx1_rx", "ctx1_tx",
"ctx2_rx", "ctx2_tx",
"ctx3_rx", "ctx3_tx";
firmware-name = "imx/easrc/easrc-imx8mn.bin";
fsl,asrc-rate = <8000>;
fsl,asrc-format = <2>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
NXP enhanced ASRC schema
1-11이 YAML binding은 NXP Asynchronous Sample Rate Converter(ASRC) controller를 정의합니다. Schema ID는 `http://devicetree.org/schemas/sound/fsl,easrc.yaml#`이고 maintainer는 Shengjiu Wang입니다.
Node name, compatible과 peripheral clock
12-38Node name은 `^easrc@.*` pattern을 따라야 합니다. `compatible`은 단일 `fsl,imx8mn-easrc`이거나 `fsl,imx8mp-easrc` 뒤에 fallback `fsl,imx8mn-easrc`을 둔 두 항목입니다.
`reg`와 `interrupts`는 각각 최대 한 항목입니다. `clocks`는 peripheral clock 한 항목이고 `clock-names`는 `mem`입니다.
4 context DMA와 filter coefficient
39-57`dmas`는 최대 8개입니다. `dma-names`는 `ctx0_rx`, `ctx0_tx`, `ctx1_rx`, `ctx1_tx`, `ctx2_rx`, `ctx2_tx`, `ctx3_rx`, `ctx3_tx` 순서로 네 context의 RX/TX pair를 정의합니다.
`firmware-name`은 filter coefficient table인 `imx/easrc/easrc-imx8mn.bin`으로 고정됩니다.
DPCM backend 공통 rate와 format
58-70`fsl,asrc-rate`는 DPCM backend가 함께 사용할 sample rate를 정하는 `uint32`이며 범위는 8000~192000입니다.
`fsl,asrc-format`은 DPCM backend 공통 sample format을 정하며 2, 6, 10, 32, 36 중 하나이고 기본값은 2입니다.
필수 속성과 공통 DAI
71-87필수 속성은 `compatible`, `reg`, `interrupts`, `clocks`, `clock-names`, `dmas`, `dma-names`, `firmware-name`, `fsl,asrc-rate`, `fsl,asrc-format`입니다. `dai-common.yaml#`을 상속하며 평가되지 않은 속성은 허용하지 않습니다.
i.MX8MN EASRC 4-context 예제
88-109예제는 address `0x300c0000`의 EASRC에 interrupt 122와 ASRC root clock을 연결합니다. SDMA2 request 16~23을 네 RX/TX context에 배정하고 coefficient firmware, 8000 Hz rate와 format 2를 설정합니다.
#include <dt-bindings/clock/imx8mn-clock.h>
easrc: easrc@300c0000 {
compatible = "fsl,imx8mn-easrc";
reg = <0x300c0000 0x10000>;
interrupts = <0x0 122 0x4>;
clocks = <&clk IMX8MN_CLK_ASRC_ROOT>;
clock-names = "mem";
dmas = <&sdma2 16 23 0> , <&sdma2 17 23 0>,
<&sdma2 18 23 0> , <&sdma2 19 23 0>,
<&sdma2 20 23 0> , <&sdma2 21 23 0>,
<&sdma2 22 23 0> , <&sdma2 23 23 0>;
dma-names = "ctx0_rx", "ctx0_tx",
"ctx1_rx", "ctx1_tx",
"ctx2_rx", "ctx2_tx",
"ctx3_rx", "ctx3_tx";
firmware-name = "imx/easrc/easrc-imx8mn.bin";
fsl,asrc-rate = <8000>;
fsl,asrc-format = <2>;
};
요약과 해설
fsl,easrc.yaml:1-109NXP/Freescale audio mixer, sample-rate converter와 serial interface의 signal flow, clock, DMA와 조건부 속성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.