xref: /linux/Documentation/devicetree/bindings/sound/dialog,da7219.yaml (revision c468b5dd759ede754b23cbc9c50b048a781d4217)
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
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    };
239