# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
# Copyright (C) 2019 Texas Instruments Incorporated
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/tlv320adcx140.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments TLV320ADCX140 Quad Channel Analog-to-Digital Converter

maintainers:
  - Dan Murphy <dmurphy@ti.com>

description: |
  The TLV320ADCX140 are multichannel (4-ch analog recording or 8-ch digital
  PDM microphones recording), high-performance audio, analog-to-digital
  converter (ADC) with analog inputs supporting up to 2V RMS. The TLV320ADCX140
  family supports line and  microphone Inputs, and offers a programmable
  microphone bias or supply voltage generation.

  Specifications can be found at:
    http://www.ti.com/lit/ds/symlink/tlv320adc3140.pdf
    http://www.ti.com/lit/ds/symlink/tlv320adc5140.pdf
    http://www.ti.com/lit/ds/symlink/tlv320adc6140.pdf

properties:
  compatible:
    oneOf:
      - const: ti,tlv320adc3140
      - const: ti,tlv320adc5140
      - const: ti,tlv320adc6140

  reg:
    maxItems: 1
    description: |
       I2C addresss of the device can be one of these 0x4c, 0x4d, 0x4e or 0x4f

  reset-gpios:
    description: |
       GPIO used for hardware reset.

  areg-supply:
      description: |
       Regulator with AVDD at 3.3V.  If not defined then the internal regulator
       is enabled.

  ti,mic-bias-source:
    description: |
       Indicates the source for MIC Bias.
       0 - Mic bias is set to VREF
       1 - Mic bias is set to VREF × 1.096
       6 - Mic bias is set to AVDD
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - enum: [0, 1, 6]

  ti,vref-source:
    description: |
       Indicates the source for MIC Bias.
       0 - Set VREF to 2.75V
       1 - Set VREF to 2.5V
       2 - Set VREF to 1.375V
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
      - enum: [0, 1, 2]

required:
  - compatible
  - reg

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c0 {
      #address-cells = <1>;
      #size-cells = <0>;
      codec: codec@4c {
        compatible = "ti,tlv320adc5140";
        reg = <0x4c>;
        ti,mic-bias-source = <6>;
        reset-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
      };
    };
