xref: /linux/Documentation/devicetree/bindings/sound/cirrus,cs4234.yaml (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
1*5ebba5e7SCharles Keepax# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2*5ebba5e7SCharles Keepax%YAML 1.2
3*5ebba5e7SCharles Keepax---
4*5ebba5e7SCharles Keepax$id: http://devicetree.org/schemas/sound/cirrus,cs4234.yaml#
5*5ebba5e7SCharles Keepax$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5ebba5e7SCharles Keepax
7*5ebba5e7SCharles Keepaxtitle: Cirrus Logic cs4234 audio CODEC
8*5ebba5e7SCharles Keepax
9*5ebba5e7SCharles Keepaxmaintainers:
10*5ebba5e7SCharles Keepax  - patches@opensource.cirrus.com
11*5ebba5e7SCharles Keepax
12*5ebba5e7SCharles Keepaxdescription:
13*5ebba5e7SCharles Keepax  The CS4234 is a highly versatile CODEC that combines 4 channels of
14*5ebba5e7SCharles Keepax  high performance analog to digital conversion, 4 channels of high
15*5ebba5e7SCharles Keepax  performance digital to analog conversion for audio, and 1 channel of
16*5ebba5e7SCharles Keepax  digital to analog conversion to provide a nondelayed audio reference
17*5ebba5e7SCharles Keepax  signal to an external Class H tracking power supply. If not used to
18*5ebba5e7SCharles Keepax  drive a tracking power supply, the 5th DAC can instead be used as a
19*5ebba5e7SCharles Keepax  standard audio grade DAC, with performance specifications identical
20*5ebba5e7SCharles Keepax  to that of the 4 DACs in the audio path. Additionally, the CS4234
21*5ebba5e7SCharles Keepax  includes tunable group delay for each of the 4 audio DAC paths to
22*5ebba5e7SCharles Keepax  provide lead time for the external switch-mode power supply, and a
23*5ebba5e7SCharles Keepax  nondelayed path into the DAC outputs for input signals requiring a
24*5ebba5e7SCharles Keepax  low-latency path to the outputs.
25*5ebba5e7SCharles Keepax
26*5ebba5e7SCharles Keepaxproperties:
27*5ebba5e7SCharles Keepax  compatible:
28*5ebba5e7SCharles Keepax    enum:
29*5ebba5e7SCharles Keepax      - cirrus,cs4234
30*5ebba5e7SCharles Keepax
31*5ebba5e7SCharles Keepax  reg:
32*5ebba5e7SCharles Keepax    description:
33*5ebba5e7SCharles Keepax      The 7-bit I2C address depends on the state of the ADx pins, in
34*5ebba5e7SCharles Keepax      binary given by [0 0 1 0 AD2 AD1 AD0 0].
35*5ebba5e7SCharles Keepax    items:
36*5ebba5e7SCharles Keepax      minimum: 0x10
37*5ebba5e7SCharles Keepax      maximum: 0x17
38*5ebba5e7SCharles Keepax
39*5ebba5e7SCharles Keepax  VA-supply:
40*5ebba5e7SCharles Keepax    description:
41*5ebba5e7SCharles Keepax      Analogue power supply.
42*5ebba5e7SCharles Keepax
43*5ebba5e7SCharles Keepax  VL-supply:
44*5ebba5e7SCharles Keepax    description:
45*5ebba5e7SCharles Keepax      Interface power supply.
46*5ebba5e7SCharles Keepax
47*5ebba5e7SCharles Keepax  reset-gpios:
48*5ebba5e7SCharles Keepax    maxItems: 1
49*5ebba5e7SCharles Keepax
50*5ebba5e7SCharles Keepaxrequired:
51*5ebba5e7SCharles Keepax  - compatible
52*5ebba5e7SCharles Keepax  - reg
53*5ebba5e7SCharles Keepax  - VA-supply
54*5ebba5e7SCharles Keepax  - VL-supply
55*5ebba5e7SCharles Keepax
56*5ebba5e7SCharles KeepaxadditionalProperties: false
57*5ebba5e7SCharles Keepax
58*5ebba5e7SCharles Keepaxexamples:
59*5ebba5e7SCharles Keepax  - |
60*5ebba5e7SCharles Keepax    i2c@e0004000 {
61*5ebba5e7SCharles Keepax        #address-cells = <1>;
62*5ebba5e7SCharles Keepax        #size-cells = <0>;
63*5ebba5e7SCharles Keepax        reg = <0xe0004000 0x1000>;
64*5ebba5e7SCharles Keepax
65*5ebba5e7SCharles Keepax        cs4234: codec@11 {
66*5ebba5e7SCharles Keepax            compatible = "cirrus,cs4234";
67*5ebba5e7SCharles Keepax            reg = <0x11>;
68*5ebba5e7SCharles Keepax
69*5ebba5e7SCharles Keepax            VA-supply = <&vdd3v3>;
70*5ebba5e7SCharles Keepax            VL-supply = <&vdd3v3>;
71*5ebba5e7SCharles Keepax
72*5ebba5e7SCharles Keepax            reset-gpios = <&gpio 0>;
73*5ebba5e7SCharles Keepax        };
74*5ebba5e7SCharles Keepax    };
75