← Documents Documentation/devicetree/bindings/sound/dialog,da7219.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Sound

Dialog DA7219 audio codec

DA7219 codec의 전원, clock, microphone 입력과 advanced accessory detection 설정을 설명합니다.

Source pathDocumentation/devicetree/bindings/sound/dialog,da7219.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약과 해설

dialog,da7219.yaml:1-238

TI McBSP controller와 Dialog DA7219 codec의 schema 구조, 필수 속성, 허용 값과 DTS 구성을 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/sound/dialog,da7219.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Dialog Semiconductor DA7219 Audio Codec
8
9 maintainers:
10 - David Rau <David.Rau.opensource@dm.renesas.com>
11
12 description:
13 The DA7219 is an ultra low-power audio codec with
14 in-built advanced accessory detection (AAD) for mobile
15 computing and accessory applications, which supports
16 sample rates up to 96 kHz at 24-bit resolution.
17
18 properties:
19 compatible:
20 const: dlg,da7219
21
22 reg:
23 maxItems: 1
24
25 interrupts:
26 maxItems: 1
27
28 VDD-supply:
29 description:
30 VDD power supply for the device.
31
32 VDDMIC-supply:
33 description:
34 VDDMIC power supply for the device.
35
36 VDDIO-supply:
37 description:
38 VDDIO power supply for the device.
39
40 interrupt-names:
41 description:
42 Should be "wakeup" if interrupt is to be used to wake system,
43 otherwise "irq" should be used.
44 enum:
45 - wakeup
46 - irq
47
48 wakeup-source:
49 type: boolean
50 description:
51 Flag to indicate this device can wake system (suspend/resume).
52
53 "#clock-cells":
54 const: 1
55
56 clock-output-names:
57 minItems: 2
58 maxItems: 2
59 description:
60 Name given for DAI WCLK and BCLK outputs.
61
62 clocks:
63 maxItems: 1
64 description:
65 phandle and clock specifier for codec MCLK.
66
67 clock-names:
68 const: mclk
69
70 dlg,micbias-lvl:
71 enum: [1600, 1800, 2000, 2200, 2400, 2600]
72 description:
73 Voltage (mV) for Mic Bias.
74 $ref: /schemas/types.yaml#/definitions/uint32
75
76 dlg,mic-amp-in-sel:
77 enum: [diff, se_p, se_n]
78 description:
79 Mic input source type.
80
81 diff - Differential.
82
83 se_p - MIC_P.
84 Positive differential analog microphone input.
85
86 se_n - MIC_N.
87 Negative differential analog microphone input.
88 $ref: /schemas/types.yaml#/definitions/string
89
90 da7219_aad:
91 type: object
92 additionalProperties: false
93 description:
94 Configuration of advanced accessory detection.
95 properties:
96 dlg,micbias-pulse-lvl:
97 enum: [2800, 2900]
98 description:
99 Mic bias higher voltage pulse level (mV).
100 $ref: /schemas/types.yaml#/definitions/uint32
101
102 dlg,micbias-pulse-time:
103 description:
104 Mic bias higher voltage pulse duration (ms).
105 $ref: /schemas/types.yaml#/definitions/uint32
106 minimum: 0
107
108 dlg,btn-cfg:
109 enum: [2, 5, 10, 50, 100, 200, 500]
110 description:
111 Periodic button press measurements for 4-pole jack (ms).
112 $ref: /schemas/types.yaml#/definitions/uint32
113
114 dlg,mic-det-thr:
115 enum: [200, 500, 750, 1000]
116 description:
117 Impedance threshold for mic detection measurement (Ohms).
118 $ref: /schemas/types.yaml#/definitions/uint32
119
120 dlg,jack-ins-deb:
121 enum: [5, 10, 20, 50, 100, 200, 500, 1000]
122 description:
123 Debounce time for jack insertion (ms).
124 $ref: /schemas/types.yaml#/definitions/uint32
125
126 dlg,jack-ins-det-pty:
127 enum: [low, high]
128 description:
129 Polarity for jack insertion detection.
130 $ref: /schemas/types.yaml#/definitions/string
131
132 dlg,jack-det-rate:
133 enum: ["32_64", "64_128", "128_256", "256_512"]
134 description:
135 Jack type (3/4 pole) detection latency (ms).
136 $ref: /schemas/types.yaml#/definitions/string
137
138 dlg,jack-rem-deb:
139 enum: [1, 5, 10, 20]
140 description:
141 Debounce time for jack removal (ms).
142 $ref: /schemas/types.yaml#/definitions/uint32
143
144 dlg,a-d-btn-thr:
145 description:
146 Impedance threshold between buttons A and D.
147 $ref: /schemas/types.yaml#/definitions/uint32
148 minimum: 0
149 maximum: 255
150
151 dlg,d-b-btn-thr:
152 description:
153 Impedance threshold between buttons D and B.
154 $ref: /schemas/types.yaml#/definitions/uint32
155 minimum: 0
156 maximum: 255
157
158 dlg,b-c-btn-thr:
159 description:
160 Impedance threshold between buttons B and C.
161 $ref: /schemas/types.yaml#/definitions/uint32
162 minimum: 0
163 maximum: 255
164
165 dlg,c-mic-btn-thr:
166 description:
167 Impedance threshold between button C and Mic.
168 $ref: /schemas/types.yaml#/definitions/uint32
169 minimum: 0
170 maximum: 255
171
172 dlg,btn-avg:
173 enum: [1, 2, 4, 8]
174 description:
175 Number of 8-bit readings for averaged button measurement.
176 $ref: /schemas/types.yaml#/definitions/uint32
177
178 dlg,adc-1bit-rpt:
179 enum: [1, 2, 4, 8]
180 description:
181 Repeat count for 1-bit button measurement.
182 $ref: /schemas/types.yaml#/definitions/uint32
183
184 required:
185 - compatible
186 - reg
187 - interrupts
188 - VDD-supply
189 - VDDMIC-supply
190 - VDDIO-supply
191
192 additionalProperties: false
193
194 examples:
195 - |
196 #include <dt-bindings/interrupt-controller/irq.h>
197 i2c {
198 #address-cells = <1>;
199 #size-cells = <0>;
200
201 codec: da7219@1a {
202 compatible = "dlg,da7219";
203 reg = <0x1a>;
204
205 interrupt-parent = <&gpio6>;
206 interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
207
208 VDD-supply = <&vdd_reg>;
209 VDDMIC-supply = <&vddmic_reg>;
210 VDDIO-supply = <&vddio_reg>;
211
212 #clock-cells = <1>;
213 clock-output-names = "da7219-dai-wclk", "da7219-dai-bclk";
214
215 clocks = <&clks 201>;
216 clock-names = "mclk";
217
218 dlg,micbias-lvl = <2600>;
219 dlg,mic-amp-in-sel = "diff";
220
221 da7219_aad {
222 dlg,btn-cfg = <50>;
223 dlg,mic-det-thr = <500>;
224 dlg,jack-ins-deb = <20>;
225 dlg,jack-ins-det-pty = "low";
226 dlg,jack-det-rate = "32_64";
227 dlg,jack-rem-deb = <1>;
228
229 dlg,a-d-btn-thr = <0xa>;
230 dlg,d-b-btn-thr = <0x16>;
231 dlg,b-c-btn-thr = <0x21>;
232 dlg,c-mic-btn-thr = <0x3E>;
233
234 dlg,btn-avg = <4>;
235 dlg,adc-1bit-rpt = <1>;
236 };
237 };
238 };
239

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>;
      };
  };
};