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

title: Analog Devices MAX98396 Speaker Amplifier Device Tree Bindings

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

description:
  The MAX98396 is a mono Class-DG speaker amplifier with I/V sense.
  The device provides a PCM interface for audio data and a standard
  I2C interface for control data communication.
  The MAX98397 is a variant of MAX98396 with wide input supply range.

properties:
  compatible:
    enum:
      - adi,max98396
      - adi,max98397
  reg:
    maxItems: 1
    description: I2C address of the device.

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

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

  adi,spkfb-slot-no:
    description: slot number of speaker DSP monitor
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 15
    default: 0

  adi,interleave-mode:
    description:
      For cases where a single combined channel for the I/V sense 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

additionalProperties: false

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