Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / dialog,da7219.yaml
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     };