# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/ti,pcm512x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: PCM512x and TAS575x audio CODECs/amplifiers

maintainers:
  - Animesh Agarwal <animeshagarwal28@gmail.com>

allOf:
  - $ref: dai-common.yaml#

properties:
  compatible:
    enum:
      - ti,pcm5121
      - ti,pcm5122
      - ti,pcm5141
      - ti,pcm5142
      - ti,pcm5242
      - ti,tas5754
      - ti,tas5756

  reg:
    maxItems: 1

  AVDD-supply: true

  DVDD-supply: true

  CPVDD-supply: true

  clocks:
    maxItems: 1
    description: A clock specifier for the clock connected as SCLK. If this is
      absent the device will be configured to clock from BCLK. If pll-in and
      pll-out are specified in addition to a clock, the device is configured to
      accept clock input on a specified gpio pin.

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

  pll-in:
    description: GPIO pin used to connect the pll using <1> through <6>. The
      device will be configured for clock input on the given pll-in pin.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 6

  pll-out:
    description: GPIO pin used to connect the pll using <1> through <6>. The
      device will be configured for PLL output on the given pll-out pin.  An
      external connection from the pll-out pin to the SCLK pin is assumed.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 6

required:
  - compatible
  - reg
  - AVDD-supply
  - DVDD-supply
  - CPVDD-supply

if:
  properties:
    compatible:
      contains:
        enum:
          - ti,tas5754
          - ti,tas5756

then:
  properties:
    pll-in:
      maximum: 3

    pll-out:
      maximum: 3

unevaluatedProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        codec@4c {
            compatible = "ti,pcm5142";
            reg = <0x4c>;
            AVDD-supply = <&reg_3v3_analog>;
            DVDD-supply = <&reg_1v8>;
            CPVDD-supply = <&reg_3v3>;
            #sound-dai-cells = <0>;
            clocks = <&sck>;
            pll-in = <3>;
            pll-out = <6>;
        };
    };
