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

title: Analog Devices MAX98388 Speaker Amplifier

maintainers:
  - Ryan Lee <ryans.lee@analog.com>

description:
  The MAX98388 is a mono Class-D speaker amplifier with I/V feedback.
  The device provides a PCM interface for audio data and a standard
  I2C interface for control data communication.

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - adi,max98388

  reg:
    maxItems: 1

  '#sound-dai-cells':
    const: 0

  adi,vmon-slot-no:
    description: slot number of the voltage feedback monitor
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    default: 0

  adi,imon-slot-no:
    description: slot number of the current feedback monitor
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 15
    default: 1

  adi,interleave-mode:
    description:
      For cases where a single combined channel for the I/V feedback data
      is not sufficient, the device can also be configured to share
      a single data output channel on alternating frames.
      In this configuration, the current and voltage data will be frame
      interleaved on a single output channel.
    type: boolean

  reset-gpios:
    maxItems: 1

required:
  - compatible
  - reg
  - '#sound-dai-cells'

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        max98388: amplifier@39 {
            compatible = "adi,max98388";
            reg = <0x39>;
            #sound-dai-cells = <0>;
            adi,vmon-slot-no = <0>;
            adi,imon-slot-no = <1>;
            adi,interleave-mode;
            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
        };
    };
