162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci# Copyright (C) 2022 Texas Instruments Incorporated
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/sound/ti,tlv320aic3x.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Texas Instruments TLV320AIC3x Codec
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cidescription: |
1162306a36Sopenharmony_ci  TLV320AIC3x are a series of low-power stereo audio codecs with stereo
1262306a36Sopenharmony_ci  headphone amplifier, as well as multiple inputs and outputs programmable in
1362306a36Sopenharmony_ci  single-ended or fully differential configurations.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci  The serial control bus supports SPI or I2C protocols, while the serial audio
1662306a36Sopenharmony_ci  data bus is programmable for I2S, left/right-justified, DSP, or TDM modes.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci  The following pins can be referred in the sound node's audio routing property:
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  CODEC output pins:
2162306a36Sopenharmony_ci     LLOUT
2262306a36Sopenharmony_ci     RLOUT
2362306a36Sopenharmony_ci     MONO_LOUT
2462306a36Sopenharmony_ci     HPLOUT
2562306a36Sopenharmony_ci     HPROUT
2662306a36Sopenharmony_ci     HPLCOM
2762306a36Sopenharmony_ci     HPRCOM
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  CODEC input pins for TLV320AIC3104:
3062306a36Sopenharmony_ci     MIC2L
3162306a36Sopenharmony_ci     MIC2R
3262306a36Sopenharmony_ci     LINE1L
3362306a36Sopenharmony_ci     LINE1R
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  CODEC input pins for other compatible codecs:
3662306a36Sopenharmony_ci     MIC3L
3762306a36Sopenharmony_ci     MIC3R
3862306a36Sopenharmony_ci     LINE1L
3962306a36Sopenharmony_ci     LINE2L
4062306a36Sopenharmony_ci     LINE1R
4162306a36Sopenharmony_ci     LINE2R
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_cimaintainers:
4462306a36Sopenharmony_ci  - Jai Luthra <j-luthra@ti.com>
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciproperties:
4762306a36Sopenharmony_ci  compatible:
4862306a36Sopenharmony_ci    enum:
4962306a36Sopenharmony_ci      - ti,tlv320aic3x
5062306a36Sopenharmony_ci      - ti,tlv320aic33
5162306a36Sopenharmony_ci      - ti,tlv320aic3007
5262306a36Sopenharmony_ci      - ti,tlv320aic3106
5362306a36Sopenharmony_ci      - ti,tlv320aic3104
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  reg:
5662306a36Sopenharmony_ci    maxItems: 1
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  reset-gpios:
5962306a36Sopenharmony_ci    maxItems: 1
6062306a36Sopenharmony_ci    description:
6162306a36Sopenharmony_ci      GPIO specification for the active low RESET input.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  gpio-reset:
6462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-matrix
6562306a36Sopenharmony_ci    maxItems: 1
6662306a36Sopenharmony_ci    description:
6762306a36Sopenharmony_ci      Deprecated, please use reset-gpios instead.
6862306a36Sopenharmony_ci    deprecated: true
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  ai3x-gpio-func:
7162306a36Sopenharmony_ci    description: AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
7262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-array
7362306a36Sopenharmony_ci    maxItems: 2
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  ai3x-micbias-vg:
7662306a36Sopenharmony_ci    description: MicBias required voltage. If node is omitted then MicBias is powered down.
7762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7862306a36Sopenharmony_ci    oneOf:
7962306a36Sopenharmony_ci      - const: 1
8062306a36Sopenharmony_ci        description: MICBIAS output is powered to 2.0V.
8162306a36Sopenharmony_ci      - const: 2
8262306a36Sopenharmony_ci        description: MICBIAS output is powered to 2.5V.
8362306a36Sopenharmony_ci      - const: 3
8462306a36Sopenharmony_ci        description: MICBIAS output is connected to AVDD.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci  ai3x-ocmv:
8762306a36Sopenharmony_ci    description: Output Common-Mode Voltage selection.
8862306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
8962306a36Sopenharmony_ci    oneOf:
9062306a36Sopenharmony_ci      - const: 0
9162306a36Sopenharmony_ci        description: 1.35V
9262306a36Sopenharmony_ci      - const: 1
9362306a36Sopenharmony_ci        description: 1.5V
9462306a36Sopenharmony_ci      - const: 2
9562306a36Sopenharmony_ci        description: 1.65V
9662306a36Sopenharmony_ci      - const: 3
9762306a36Sopenharmony_ci        description: 1.8V
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci  AVDD-supply:
10062306a36Sopenharmony_ci    description: Analog DAC voltage.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci  IOVDD-supply:
10362306a36Sopenharmony_ci    description: I/O voltage.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci  DRVDD-supply:
10662306a36Sopenharmony_ci    description: ADC analog and output driver voltage.
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci  DVDD-supply:
10962306a36Sopenharmony_ci    description: Digital core voltage.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci  '#sound-dai-cells':
11262306a36Sopenharmony_ci    const: 0
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci  clocks:
11562306a36Sopenharmony_ci    maxItems: 1
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci  port:
11862306a36Sopenharmony_ci    $ref: audio-graph-port.yaml#
11962306a36Sopenharmony_ci    unevaluatedProperties: false
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_cirequired:
12262306a36Sopenharmony_ci  - compatible
12362306a36Sopenharmony_ci  - reg
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciadditionalProperties: false
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciexamples:
12862306a36Sopenharmony_ci  - |
12962306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
13062306a36Sopenharmony_ci    i2c {
13162306a36Sopenharmony_ci      #address-cells = <1>;
13262306a36Sopenharmony_ci      #size-cells = <0>;
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci      tlv320aic3x_i2c: audio-codec@1b {
13562306a36Sopenharmony_ci        compatible = "ti,tlv320aic3x";
13662306a36Sopenharmony_ci        reg = <0x1b>;
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci        reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci        AVDD-supply = <&regulator>;
14162306a36Sopenharmony_ci        IOVDD-supply = <&regulator>;
14262306a36Sopenharmony_ci        DRVDD-supply = <&regulator>;
14362306a36Sopenharmony_ci        DVDD-supply = <&regulator>;
14462306a36Sopenharmony_ci      };
14562306a36Sopenharmony_ci    };
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci  - |
14862306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
14962306a36Sopenharmony_ci    spi {
15062306a36Sopenharmony_ci      #address-cells = <1>;
15162306a36Sopenharmony_ci      #size-cells = <0>;
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci      tlv320aic3x_spi: audio-codec@0 {
15462306a36Sopenharmony_ci        compatible = "ti,tlv320aic3x";
15562306a36Sopenharmony_ci        reg = <0>; /* CS number */
15662306a36Sopenharmony_ci        #sound-dai-cells = <0>;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci        AVDD-supply = <&regulator>;
15962306a36Sopenharmony_ci        IOVDD-supply = <&regulator>;
16062306a36Sopenharmony_ci        DRVDD-supply = <&regulator>;
16162306a36Sopenharmony_ci        DVDD-supply = <&regulator>;
16262306a36Sopenharmony_ci        ai3x-ocmv = <0>;
16362306a36Sopenharmony_ci      };
16462306a36Sopenharmony_ci    };
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci...
167