blob: 19137abdba3e5dc82b6787bc11fb436270a9e3a7 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: Dialog Semiconductor DA7219 Audio Codec
8
9maintainers:
10 - David Rau <David.Rau.opensource@dm.renesas.com>
11
12description:
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
18properties:
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
184required:
185 - compatible
186 - reg
187 - interrupts
188 - VDD-supply
189 - VDDMIC-supply
190 - VDDIO-supply
191
192additionalProperties: false
193
194examples:
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 };