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

title: Maxim Integrated MAX98504 class D mono speaker amplifier

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

description:
  Maxim Integrated MAX98504 speaker amplifier supports I2C control interface
  with an IRQ output signal, PCM and PDM digital audio interface (DAI) and a
  differential analog input.

properties:
  compatible:
    const: maxim,max98504

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  DIOVDD-supply: true
  DVDD-supply: true
  PVDD-supply: true

  maxim,brownout-threshold:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 21
    default: 0
    description:
      PVDD brownout threshold, where values correspond to 2.6V, 2.65V...3.65V
      voltage range.  Property also enables the PVDD brownout protection.

  maxim,brownout-attenuation:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 6
    default: 0
    description:
      Brownout attenuation to the speaker gain applied during the "attack hold"
      and "timed hold" phase, the value must be from 0...6 (dB) range.

  maxim,brownout-attack-hold-ms:
    maximum: 255
    default: 0
    description:
      Brownout attack hold phase time in ms, VBATBROWN_ATTK_HOLD, register 0x0018.

  maxim,brownout-timed-hold-ms:
    maximum: 255
    default: 0
    description:
      Brownout timed hold phase time in ms, VBATBROWN_TIME_HOLD, register 0x0019.

  maxim,brownout-release-rate-ms:
    maximum: 255
    default: 0
    description:
      Brownout release phase step time in ms, VBATBROWN_RELEASE, register 0x001A.

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

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

        amplifier@31 {
            compatible = "maxim,max98504";
            reg = <0x31>;

            DIOVDD-supply = <&ldo3_reg>;
            DVDD-supply = <&ldo3_reg>;
        };
    };