# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/cirrus,cs4234.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cirrus Logic cs4234 audio CODEC

maintainers:
  - patches@opensource.cirrus.com

description:
  The CS4234 is a highly versatile CODEC that combines 4 channels of
  high performance analog to digital conversion, 4 channels of high
  performance digital to analog conversion for audio, and 1 channel of
  digital to analog conversion to provide a nondelayed audio reference
  signal to an external Class H tracking power supply. If not used to
  drive a tracking power supply, the 5th DAC can instead be used as a
  standard audio grade DAC, with performance specifications identical
  to that of the 4 DACs in the audio path. Additionally, the CS4234
  includes tunable group delay for each of the 4 audio DAC paths to
  provide lead time for the external switch-mode power supply, and a
  nondelayed path into the DAC outputs for input signals requiring a
  low-latency path to the outputs.

properties:
  compatible:
    enum:
      - cirrus,cs4234

  reg:
    description:
      The 7-bit I2C address depends on the state of the ADx pins, in
      binary given by [0 0 1 0 AD2 AD1 AD0 0].
    items:
      minimum: 0x10
      maximum: 0x17

  VA-supply:
    description:
      Analogue power supply.

  VL-supply:
    description:
      Interface power supply.

  reset-gpios:
    maxItems: 1

required:
  - compatible
  - reg
  - VA-supply
  - VL-supply

additionalProperties: false

examples:
  - |
    i2c@e0004000 {
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xe0004000 0x1000>;

        cs4234: codec@11 {
            compatible = "cirrus,cs4234";
            reg = <0x11>;

            VA-supply = <&vdd3v3>;
            VL-supply = <&vdd3v3>;

            reset-gpios = <&gpio 0>;
        };
    };