18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/cirrus,cs4234.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Cirrus Logic cs4234 audio CODEC
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - patches@opensource.cirrus.com
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription:
138c2ecf20Sopenharmony_ci  The CS4234 is a highly versatile CODEC that combines 4 channels of
148c2ecf20Sopenharmony_ci  high performance analog to digital conversion, 4 channels of high
158c2ecf20Sopenharmony_ci  performance digital to analog conversion for audio, and 1 channel of
168c2ecf20Sopenharmony_ci  digital to analog conversion to provide a nondelayed audio reference
178c2ecf20Sopenharmony_ci  signal to an external Class H tracking power supply. If not used to
188c2ecf20Sopenharmony_ci  drive a tracking power supply, the 5th DAC can instead be used as a
198c2ecf20Sopenharmony_ci  standard audio grade DAC, with performance specifications identical
208c2ecf20Sopenharmony_ci  to that of the 4 DACs in the audio path. Additionally, the CS4234
218c2ecf20Sopenharmony_ci  includes tunable group delay for each of the 4 audio DAC paths to
228c2ecf20Sopenharmony_ci  provide lead time for the external switch-mode power supply, and a
238c2ecf20Sopenharmony_ci  nondelayed path into the DAC outputs for input signals requiring a
248c2ecf20Sopenharmony_ci  low-latency path to the outputs.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciproperties:
278c2ecf20Sopenharmony_ci  compatible:
288c2ecf20Sopenharmony_ci    enum:
298c2ecf20Sopenharmony_ci      - cirrus,cs4234
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  reg:
328c2ecf20Sopenharmony_ci    description:
338c2ecf20Sopenharmony_ci      The 7-bit I2C address depends on the state of the ADx pins, in
348c2ecf20Sopenharmony_ci      binary given by [0 0 1 0 AD2 AD1 AD0 0].
358c2ecf20Sopenharmony_ci    items:
368c2ecf20Sopenharmony_ci      minimum: 0x10
378c2ecf20Sopenharmony_ci      maximum: 0x17
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  VA-supply:
408c2ecf20Sopenharmony_ci    description:
418c2ecf20Sopenharmony_ci      Analogue power supply.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  VL-supply:
448c2ecf20Sopenharmony_ci    description:
458c2ecf20Sopenharmony_ci      Interface power supply.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  reset-gpios:
488c2ecf20Sopenharmony_ci    maxItems: 1
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_cirequired:
518c2ecf20Sopenharmony_ci  - compatible
528c2ecf20Sopenharmony_ci  - reg
538c2ecf20Sopenharmony_ci  - VA-supply
548c2ecf20Sopenharmony_ci  - VL-supply
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciadditionalProperties: false
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciexamples:
598c2ecf20Sopenharmony_ci  - |
608c2ecf20Sopenharmony_ci    i2c@e0004000 {
618c2ecf20Sopenharmony_ci        #address-cells = <1>;
628c2ecf20Sopenharmony_ci        #size-cells = <0>;
638c2ecf20Sopenharmony_ci        reg = <0xe0004000 0x1000>;
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci        cs4234: codec@11 {
668c2ecf20Sopenharmony_ci            compatible = "cirrus,cs4234";
678c2ecf20Sopenharmony_ci            reg = <0x11>;
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci            VA-supply = <&vdd3v3>;
708c2ecf20Sopenharmony_ci            VL-supply = <&vdd3v3>;
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci            reset-gpios = <&gpio 0>;
738c2ecf20Sopenharmony_ci        };
748c2ecf20Sopenharmony_ci    };
75