요약·해설과 원문, 전문 번역을 서로 분리했습니다. 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/dialog,da7219.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Dialog Semiconductor DA7219 Audio Codec
maintainers:
- David Rau <David.Rau.opensource@dm.renesas.com>
description:
The DA7219 is an ultra low-power audio codec with
in-built advanced accessory detection (AAD) for mobile
computing and accessory applications, which supports
sample rates up to 96 kHz at 24-bit resolution.
properties:
compatible:
const: dlg,da7219
reg:
maxItems: 1
interrupts:
maxItems: 1
VDD-supply:
description:
VDD power supply for the device.
VDDMIC-supply:
description:
VDDMIC power supply for the device.
VDDIO-supply:
description:
VDDIO power supply for the device.
interrupt-names:
description:
Should be "wakeup" if interrupt is to be used to wake system,
otherwise "irq" should be used.
enum:
- wakeup
- irq
wakeup-source:
type: boolean
description:
Flag to indicate this device can wake system (suspend/resume).
"#clock-cells":
const: 1
clock-output-names:
minItems: 2
maxItems: 2
description:
Name given for DAI WCLK and BCLK outputs.
clocks:
maxItems: 1
description:
phandle and clock specifier for codec MCLK.
clock-names:
const: mclk
dlg,micbias-lvl:
enum: [1600, 1800, 2000, 2200, 2400, 2600]
description:
Voltage (mV) for Mic Bias.
$ref: /schemas/types.yaml#/definitions/uint32
dlg,mic-amp-in-sel:
enum: [diff, se_p, se_n]
description:
Mic input source type.
diff - Differential.
se_p - MIC_P.
Positive differential analog microphone input.
se_n - MIC_N.
Negative differential analog microphone input.
$ref: /schemas/types.yaml#/definitions/string
da7219_aad:
type: object
additionalProperties: false
description:
Configuration of advanced accessory detection.
properties:
dlg,micbias-pulse-lvl:
enum: [2800, 2900]
description:
Mic bias higher voltage pulse level (mV).
$ref: /schemas/types.yaml#/definitions/uint32
dlg,micbias-pulse-time:
description:
Mic bias higher voltage pulse duration (ms).
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
dlg,btn-cfg:
enum: [2, 5, 10, 50, 100, 200, 500]
description:
Periodic button press measurements for 4-pole jack (ms).
$ref: /schemas/types.yaml#/definitions/uint32
dlg,mic-det-thr:
enum: [200, 500, 750, 1000]
description:
Impedance threshold for mic detection measurement (Ohms).
$ref: /schemas/types.yaml#/definitions/uint32
dlg,jack-ins-deb:
enum: [5, 10, 20, 50, 100, 200, 500, 1000]
description:
Debounce time for jack insertion (ms).
$ref: /schemas/types.yaml#/definitions/uint32
dlg,jack-ins-det-pty:
enum: [low, high]
description:
Polarity for jack insertion detection.
$ref: /schemas/types.yaml#/definitions/string
dlg,jack-det-rate:
enum: ["32_64", "64_128", "128_256", "256_512"]
description:
Jack type (3/4 pole) detection latency (ms).
$ref: /schemas/types.yaml#/definitions/string
dlg,jack-rem-deb:
enum: [1, 5, 10, 20]
description:
Debounce time for jack removal (ms).
$ref: /schemas/types.yaml#/definitions/uint32
dlg,a-d-btn-thr:
description:
Impedance threshold between buttons A and D.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 255
dlg,d-b-btn-thr:
description:
Impedance threshold between buttons D and B.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 255
dlg,b-c-btn-thr:
description:
Impedance threshold between buttons B and C.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 255
dlg,c-mic-btn-thr:
description:
Impedance threshold between button C and Mic.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
maximum: 255
dlg,btn-avg:
enum: [1, 2, 4, 8]
description:
Number of 8-bit readings for averaged button measurement.
$ref: /schemas/types.yaml#/definitions/uint32
dlg,adc-1bit-rpt:
enum: [1, 2, 4, 8]
description:
Repeat count for 1-bit button measurement.
$ref: /schemas/types.yaml#/definitions/uint32
required:
- compatible
- reg
- interrupts
- VDD-supply
- VDDMIC-supply
- VDDIO-supply
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
codec: da7219@1a {
compatible = "dlg,da7219";
reg = <0x1a>;
interrupt-parent = <&gpio6>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
VDD-supply = <&vdd_reg>;
VDDMIC-supply = <&vddmic_reg>;
VDDIO-supply = <&vddio_reg>;
#clock-cells = <1>;
clock-output-names = "da7219-dai-wclk", "da7219-dai-bclk";
clocks = <&clks 201>;
clock-names = "mclk";
dlg,micbias-lvl = <2600>;
dlg,mic-amp-in-sel = "diff";
da7219_aad {
dlg,btn-cfg = <50>;
dlg,mic-det-thr = <500>;
dlg,jack-ins-deb = <20>;
dlg,jack-ins-det-pty = "low";
dlg,jack-det-rate = "32_64";
dlg,jack-rem-deb = <1>;
dlg,a-d-btn-thr = <0xa>;
dlg,d-b-btn-thr = <0x16>;
dlg,b-c-btn-thr = <0x21>;
dlg,c-mic-btn-thr = <0x3E>;
dlg,btn-avg = <4>;
dlg,adc-1bit-rpt = <1>;
};
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
DA7219 codec 개요
1-17이 YAML binding은 GPL-2.0-only 또는 BSD-2-Clause로 배포되며 Dialog Semiconductor DA7219 audio codec을 정의합니다. Schema ID는 `http://devicetree.org/schemas/sound/dialog,da7219.yaml#`이고 core meta-schema를 사용하며 maintainer는 David Rau입니다.
DA7219는 mobile computing과 accessory application을 위한 advanced accessory detection(AAD)을 내장한 초저전력 audio codec입니다. 24-bit 해상도에서 최대 96 kHz sample rate를 지원합니다.
주소, 전원과 interrupt
18-52`compatible`은 `dlg,da7219`로 고정되고 `reg`와 `interrupts`는 각각 최대 한 항목입니다. `VDD-supply`, `VDDMIC-supply`, `VDDIO-supply`는 각각 장치의 VDD, VDDMIC, VDDIO 전원 공급을 참조합니다.
`interrupt-names`는 interrupt로 system을 깨울 때 `wakeup`, 그 밖에는 `irq`를 사용합니다. Boolean `wakeup-source`는 이 장치가 suspend/resume 과정에서 system을 깨울 수 있음을 나타냅니다.
DAI clock 출력과 MCLK
53-69`#clock-cells`는 1입니다. `clock-output-names`는 정확히 두 이름을 가지며 DAI WCLK와 BCLK 출력에 붙일 이름입니다.
`clocks`는 codec MCLK의 phandle과 clock specifier 한 항목을 가지며 `clock-names`는 `mclk`로 고정됩니다.
Mic bias와 입력 선택
70-89`dlg,micbias-lvl`은 mic bias 전압을 mV로 지정하는 `uint32`이며 1600, 1800, 2000, 2200, 2400, 2600 중 하나입니다.
`dlg,mic-amp-in-sel`은 microphone 입력 source 유형을 지정하는 문자열입니다. `diff`는 differential 입력, `se_p`는 positive differential analog microphone input인 `MIC_P`, `se_n`은 negative differential analog microphone input인 `MIC_N`을 뜻합니다.
AAD와 mic bias pulse
90-113`da7219_aad` 하위 object는 advanced accessory detection 설정이며 정의되지 않은 추가 속성을 허용하지 않습니다. `dlg,micbias-pulse-lvl`은 높은 mic bias pulse 전압으로 2800 또는 2900 mV입니다.
`dlg,micbias-pulse-time`은 높은 mic bias pulse 지속 시간(ms)을 나타내는 0 이상의 `uint32`입니다. `dlg,btn-cfg`는 4-pole jack의 주기적 button press 측정 간격(ms)으로 2, 5, 10, 50, 100, 200, 500 중 하나입니다.
Microphone과 jack 감지
114-143`dlg,mic-det-thr`은 microphone 감지 측정의 impedance threshold(Ohms)이며 200, 500, 750, 1000 중 하나입니다. `dlg,jack-ins-deb`는 jack 삽입 debounce 시간(ms)으로 5, 10, 20, 50, 100, 200, 500, 1000 중 하나입니다.
`dlg,jack-ins-det-pty`는 jack insertion detection polarity로 `low` 또는 `high`입니다. `dlg,jack-det-rate`는 3-pole/4-pole jack type 감지 latency(ms)를 나타내며 `32_64`, `64_128`, `128_256`, `256_512` 중 하나입니다.
`dlg,jack-rem-deb`는 jack 제거 debounce 시간(ms)으로 1, 5, 10, 20 중 하나입니다.
Button impedance 경계와 평균
144-183`dlg,a-d-btn-thr`, `dlg,d-b-btn-thr`, `dlg,b-c-btn-thr`, `dlg,c-mic-btn-thr`은 각각 button A-D, D-B, B-C, C-Mic 사이의 impedance threshold입니다. 네 값은 모두 0~255 범위의 `uint32`입니다.
`dlg,btn-avg`는 평균 button 측정에 사용할 8-bit reading 수이며 1, 2, 4, 8 중 하나입니다. `dlg,adc-1bit-rpt`는 1-bit button 측정의 repeat count이며 역시 1, 2, 4, 8 중 하나입니다.
필수 속성과 하위 노드 제한
184-193최상위 필수 속성은 `compatible`, `reg`, `interrupts`, `VDD-supply`, `VDDMIC-supply`, `VDDIO-supply`입니다. `additionalProperties: false`이므로 이 binding에 정의되지 않은 최상위 속성은 허용하지 않습니다.
`da7219_aad` 하위 object에도 `additionalProperties: false`가 별도로 적용됩니다.
I2C codec과 AAD 구성 예제
194-238예제는 I2C address `0x1a`의 DA7219에 GPIO6의 active-low interrupt, 세 전원 rail, DAI WCLK/BCLK 출력, `mclk`를 연결합니다. Mic bias는 2600 mV, microphone 입력은 differential로 설정합니다.
`da7219_aad` 하위 노드는 button 측정 주기, microphone threshold, jack 삽입·제거 debounce와 polarity, jack detection rate, 네 button impedance 경계, averaging과 1-bit repeat count를 구체적으로 설정합니다.
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
codec: da7219@1a {
compatible = "dlg,da7219";
reg = <0x1a>;
interrupt-parent = <&gpio6>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
VDD-supply = <&vdd_reg>;
VDDMIC-supply = <&vddmic_reg>;
VDDIO-supply = <&vddio_reg>;
#clock-cells = <1>;
clock-output-names = "da7219-dai-wclk", "da7219-dai-bclk";
clocks = <&clks 201>;
clock-names = "mclk";
dlg,micbias-lvl = <2600>;
dlg,mic-amp-in-sel = "diff";
da7219_aad {
dlg,btn-cfg = <50>;
dlg,mic-det-thr = <500>;
dlg,jack-ins-deb = <20>;
dlg,jack-ins-det-pty = "low";
dlg,jack-det-rate = "32_64";
dlg,jack-rem-deb = <1>;
dlg,a-d-btn-thr = <0xa>;
dlg,d-b-btn-thr = <0x16>;
dlg,b-c-btn-thr = <0x21>;
dlg,c-mic-btn-thr = <0x3E>;
dlg,btn-avg = <4>;
dlg,adc-1bit-rpt = <1>;
};
};
};
요약과 해설
dialog,da7219.yaml:1-238TI McBSP controller와 Dialog DA7219 codec의 schema 구조, 필수 속성, 허용 값과 DTS 구성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.