Documentation / devicetree / bindings / sound / adi,max98396.yaml


Based on kernel version 6.9. Page generated on 2024-05-14 10:02 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
# 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

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.

  avdd-supply:
    description: A 1.8V supply that powers up the AVDD pin.

  dvdd-supply:
    description: A 1.2V supply that powers up the DVDD pin.

  dvddio-supply:
    description: A 1.2V or 1.8V supply that powers up the VDDIO pin.

  pvdd-supply:
    description: A 3.0V to 20V supply that powers up the PVDD pin.

  vbat-supply:
    description: A 3.3V to 5.5V supply that powers up the VBAT pin.

  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: 1

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

  adi,bypass-slot-no:
    description:
      Selects the PCM data input channel that is routed to the speaker
      audio processing bypass path.
    $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

  adi,dmon-stuck-enable:
    description:
      Enables the "data monitor stuck" feature. Once the data monitor is
      enabled, it actively monitors the selected input data (from DIN) to the
      speaker amplifier. Once a data error is detected, the data monitor
      automatically places the device into software shutdown.
    type: boolean

  adi,dmon-stuck-threshold-bits:
    description:
      Sets the threshold for the "data monitor stuck" feature, in bits.
    enum: [9, 11, 13, 15]
    default: 15

  adi,dmon-magnitude-enable:
    description:
      Enables the "data monitor magnitude" feature. Once the data monitor is
      enabled, it actively monitors the selected input data (from DIN) to the
      speaker amplifier. Once a data error is detected, the data monitor
      automatically places the device into software shutdown.
    type: boolean

  adi,dmon-magnitude-threshold-bits:
    description:
      Sets the threshold for the "data monitor magnitude" feature, in bits.
    enum: [2, 3, 4, 5]
    default: 5

  adi,dmon-duration-ms:
    description:
      Sets the duration for the "data monitor" feature, in milliseconds.
    enum: [64, 256, 1024, 4096]
    default: 64

  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>;
            dvdd-supply = <&regulator_1v2>;
            dvddio-supply = <&regulator_1v8>;
            avdd-supply = <&regulator_1v8>;
            pvdd-supply = <&regulator_pvdd>;
            adi,vmon-slot-no = <0>;
            adi,imon-slot-no = <1>;
            reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
        };
    };