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

title: Cirrus Logic CS42448/CS42888 audio CODEC

maintainers:
  - patches@opensource.cirrus.com

properties:
  compatible:
    enum:
      - cirrus,cs42448
      - cirrus,cs42888

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    const: mclk

  VA-supply:
    description: Analog power supply.

  VD-supply:
    description: Digital power supply.

  VLC-supply:
    description: Control port power supply

  VLS-supply:
    description: Serial port interface power supply.

  reset-gpios:
    description: This pin is connected to the chip's RESET pin.
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names

if:
  properties:
    compatible:
      contains:
        const: cirrus,cs42888
then:
  required:
    - VA-supply
    - VD-supply
    - VLC-supply
    - VLS-supply

additionalProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      codec@48 {
          compatible = "cirrus,cs42888";
          reg = <0x48>;
          clocks = <&codec_mclk 0>;
          clock-names = "mclk";
          VA-supply = <&reg_audio>;
          VD-supply = <&reg_audio>;
          VLS-supply = <&reg_audio>;
          VLC-supply = <&reg_audio>;
          reset-gpios = <&gpio 1>;
      };
    };
