Unverified Commit b66cd835 authored by Jai Luthra's avatar Jai Luthra Committed by Mark Brown
Browse files

dt-bindings: sound: tlv320aic3x: Convert to dtschema



Convert bindings for TI's TLV320AIC3x audio codecs to dtschema.

The following properties are still found in some old dts files, but will
be ignored by the driver:
- adc-settle-ms
- port

Signed-off-by: default avatarJai Luthra <j-luthra@ti.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20221221145216.11400-1-j-luthra@ti.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b2f7b932
Loading
Loading
Loading
Loading
+158 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
# Copyright (C) 2022 Texas Instruments Incorporated
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/ti,tlv320aic3x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments TLV320AIC3x Codec

description: |
  TLV320AIC3x are a series of low-power stereo audio codecs with stereo
  headphone amplifier, as well as multiple inputs and outputs programmable in
  single-ended or fully differential configurations.

  The serial control bus supports SPI or I2C protocols, while the serial audio
  data bus is programmable for I2S, left/right-justified, DSP, or TDM modes.

  The following pins can be referred in the sound node's audio routing property:

  CODEC output pins:
     LLOUT
     RLOUT
     MONO_LOUT
     HPLOUT
     HPROUT
     HPLCOM
     HPRCOM

  CODEC input pins for TLV320AIC3104:
     MIC2L
     MIC2R
     LINE1L
     LINE1R

  CODEC input pins for other compatible codecs:
     MIC3L
     MIC3R
     LINE1L
     LINE2L
     LINE1R
     LINE2R

maintainers:
  - Jai Luthra <j-luthra@ti.com>

properties:
  compatible:
    enum:
      - ti,tlv320aic3x
      - ti,tlv320aic33
      - ti,tlv320aic3007
      - ti,tlv320aic3106
      - ti,tlv320aic3104

  reg:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description:
      GPIO specification for the active low RESET input.

  gpio-reset:
    maxItems: 1
    description:
      Deprecated, please use reset-gpios instead.
    deprecated: true

  ai3x-gpio-func:
    description: AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
    $ref: /schemas/types.yaml#/definitions/uint32-array
    maxItems: 2

  ai3x-micbias-vg:
    description: MicBias required voltage. If node is omitted then MicBias is powered down.
    $ref: /schemas/types.yaml#/definitions/uint32
    oneOf:
      - const: 1
        description: MICBIAS output is powered to 2.0V.
      - const: 2
        description: MICBIAS output is powered to 2.5V.
      - const: 3
        description: MICBIAS output is connected to AVDD.

  ai3x-ocmv:
    description: Output Common-Mode Voltage selection.
    $ref: /schemas/types.yaml#/definitions/uint32
    oneOf:
      - const: 0
        description: 1.35V
      - const: 1
        description: 1.5V
      - const: 2
        description: 1.65V
      - const: 3
        description: 1.8V

  AVDD-supply:
    description: Analog DAC voltage.

  IOVDD-supply:
    description: I/O voltage.

  DRVDD-supply:
    description: ADC analog and output driver voltage.

  DVDD-supply:
    description: Digital core voltage.

  '#sound-dai-cells':
    const: 0

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      tlv320aic3x_i2c: audio-codec@1b {
        compatible = "ti,tlv320aic3x";
        reg = <0x1b>;

        reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;

        AVDD-supply = <&regulator>;
        IOVDD-supply = <&regulator>;
        DRVDD-supply = <&regulator>;
        DVDD-supply = <&regulator>;
      };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    spi {
      #address-cells = <1>;
      #size-cells = <0>;

      tlv320aic3x_spi: audio-codec@0 {
        compatible = "ti,tlv320aic3x";
        reg = <0>; /* CS number */
        #sound-dai-cells = <0>;

        AVDD-supply = <&regulator>;
        IOVDD-supply = <&regulator>;
        DRVDD-supply = <&regulator>;
        DVDD-supply = <&regulator>;
        ai3x-ocmv = <0>;
      };
    };

...
+0 −97
Original line number Diff line number Diff line
Texas Instruments - tlv320aic3x Codec module

The tlv320aic3x serial control bus communicates through both I2C and SPI bus protocols

Required properties:

- compatible - "string" - One of:
    "ti,tlv320aic3x" - Generic TLV320AIC3x device
    "ti,tlv320aic33" - TLV320AIC33
    "ti,tlv320aic3007" - TLV320AIC3007
    "ti,tlv320aic3106" - TLV320AIC3106
    "ti,tlv320aic3104" - TLV320AIC3104


- reg - <int> -  I2C slave address


Optional properties:

- reset-gpios - GPIO specification for the active low RESET input.
- ai3x-gpio-func - <array of 2 int> - AIC3X_GPIO1 & AIC3X_GPIO2 Functionality
				    - Not supported on tlv320aic3104
- ai3x-micbias-vg - MicBias Voltage required.
	1 - MICBIAS output is powered to 2.0V,
	2 - MICBIAS output is powered to 2.5V,
	3 - MICBIAS output is connected to AVDD,
	If this node is not mentioned or if the value is incorrect, then MicBias
	is powered down.
- ai3x-ocmv - Output Common-Mode Voltage selection:
	0 - 1.35V,
	1 - 1.5V,
	2 - 1.65V,
	3 - 1.8V
- AVDD-supply, IOVDD-supply, DRVDD-supply, DVDD-supply : power supplies for the
  device as covered in Documentation/devicetree/bindings/regulator/regulator.txt

Deprecated properties:

- gpio-reset - gpio pin number used for codec reset

CODEC output pins:
  * LLOUT
  * RLOUT
  * MONO_LOUT
  * HPLOUT
  * HPROUT
  * HPLCOM
  * HPRCOM

CODEC input pins for TLV320AIC3104:
  * MIC2L
  * MIC2R
  * LINE1L
  * LINE1R

CODEC input pins for other compatible codecs:
  * MIC3L
  * MIC3R
  * LINE1L
  * LINE2L
  * LINE1R
  * LINE2R

The pins can be used in referring sound node's audio-routing property.

I2C example:

#include <dt-bindings/gpio/gpio.h>

tlv320aic3x: tlv320aic3x@1b {
	compatible = "ti,tlv320aic3x";
	reg = <0x1b>;

	reset-gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;

	AVDD-supply = <&regulator>;
	IOVDD-supply = <&regulator>;
	DRVDD-supply = <&regulator>;
	DVDD-supply = <&regulator>;
};

SPI example:

spi0: spi@f0000000 {
	tlv320aic3x: codec@0 {
		compatible = "ti,tlv320aic3x";
		reg = <0>; /* CS number */
		#sound-dai-cells = <0>;
		spi-max-frequency = <1000000>;

		AVDD-supply = <&regulator>;
		IOVDD-supply = <&regulator>;
		DRVDD-supply = <&regulator>;
		DVDD-supply = <&regulator>;
		ai3x-ocmv = <0>;
	};
};