Unverified Commit 289650d6 authored by Alexander Stein's avatar Alexander Stein Committed by Mark Brown
Browse files

ASoC: dt-bindings: tlv320aic32x4: convert to DT schema format



Convert the binding to DT schema format.
Since commit 514b044c ("ASoC: tlv320aic32x4: Model PLL in CCF")
clocks & clock-names = "mclk" is mandatory, it has been added to required
properties as well. '#sound-dai-cells' is added for reference from
simple-audio-card.

Signed-off-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230616083549.2331830-1-alexander.stein@ew.tq-group.com


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

title: Texas Instruments TLV320AIC32x4 Stereo Audio codec

maintainers:
  - Alexander Stein <alexander.stein@ew.tq-group.com>

description: |
  The TLV320AIC32x4 audio codec can be accessed using I2C or SPI

properties:
  compatible:
    enum:
      - ti,tas2505
      - ti,tlv320aic32x4
      - ti,tlv320aic32x6

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Master clock

  clock-names:
    items:
      - const: mclk

  av-supply:
    description: Analog core power supply

  dv-supply:
    description: Digital core power supply

  iov-supply:
    description: Digital IO power supply

  ldoin-supply:
    description: LDO power supply

  reset-gpios:
    maxItems: 1

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

  aic32x4-gpio-func:
    description: |
       GPIO function configuration for pins MFP1-MFP5.
       Types are defined in include/sound/tlv320aic32x4.h
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 5
    maxItems: 5

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - iov-supply

allOf:
  - $ref: dai-common.yaml#
  - if:
      not:
        required:
          - ldoin-supply
    then:
      required:
        - av-supply
        - dv-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      audio-codec@18 {
        compatible = "ti,tlv320aic32x4";
        reg = <0x18>;
        iov-supply = <&reg_3v3>;
        ldoin-supply = <&reg_3v3>;
        clocks = <&clks 201>;
        clock-names = "mclk";
        aic32x4-gpio-func= <
          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
          0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
          0x08 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
        >;
      };
    };
+0 −42
Original line number Diff line number Diff line
Texas Instruments - tlv320aic32x4 Codec module

The tlv320aic32x4 serial control bus communicates through I2C protocols

Required properties:
 - compatible - "string" - One of:
	"ti,tlv320aic32x4" TLV320AIC3204
	"ti,tlv320aic32x6" TLV320AIC3206, TLV320AIC3256
	"ti,tas2505" TAS2505, TAS2521
 - reg: I2C slave address
 - *-supply: Required supply regulators are:
    "iov" - digital IO power supply
    "ldoin" - LDO power supply
    "dv" - Digital core power supply
    "av" - Analog core power supply
    If you supply ldoin, dv and av are optional. Otherwise they are required
   See regulator/regulator.txt for more information about the detailed binding
   format.

Optional properties:
 - reset-gpios: Reset-GPIO phandle with args as described in gpio/gpio.txt
 - clocks/clock-names: Clock named 'mclk' for the master clock of the codec.
   See clock/clock-bindings.txt for information about the detailed format.
 - aic32x4-gpio-func - <array of 5 int>
	- Types are defined in include/sound/tlv320aic32x4.h


Example:

codec: tlv320aic32x4@18 {
	compatible = "ti,tlv320aic32x4";
	reg = <0x18>;
	clocks = <&clks 201>;
	clock-names = "mclk";
	aic32x4-gpio-func= <
			0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
			0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
			0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
			0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
			0x08 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
		>;
};