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

title: FourSemi FS2104/5S Digital Audio Amplifier

maintainers:
  - Nick Li <nick.li@foursemi.com>

description:
  The FS2104 is a 15W Inductor-Less, Stereo, Closed-Loop,
  Digital Input Class-D Power Amplifier with Enhanced Signal Processing.
  The FS2105S is a 30W Inductor-Less, Stereo, Closed-Loop,
  Digital Input Class-D Power Amplifier with Enhanced Signal Processing.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - foursemi,fs2104
          - const: foursemi,fs2105s
      - enum:
          - foursemi,fs2105s

  reg:
    maxItems: 1

  clocks:
    items:
      - description: The clock of I2S BCLK

  clock-names:
    items:
      - const: bclk

  interrupts:
    maxItems: 1

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

  pvdd-supply:
    description:
      Regulator for power supply(PVDD in datasheet).

  dvdd-supply:
    description:
      Regulator for digital supply(DVDD in datasheet).

  reset-gpios:
    maxItems: 1
    description:
      It's the SDZ pin in datasheet, the pin is active low,
      it will power down and reset the chip to shut down state.

  firmware-name:
    maxItems: 1
    description: |
      The firmware(*.bin) contains:
      a. Register initialization settings
      b. DSP effect parameters
      c. Multi-scene sound effect configurations(optional)
      It's gernerated by FourSemi's tuning tool.

required:
  - compatible
  - reg
  - '#sound-dai-cells'
  - pvdd-supply
  - dvdd-supply
  - reset-gpios
  - firmware-name

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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        audio-codec@68 {
            compatible = "foursemi,fs2105s";
            reg = <0x68>;
            clocks = <&clocks 18>;
            clock-names = "bclk";
            #sound-dai-cells = <0>;
            pvdd-supply = <&pvdd_supply>;
            dvdd-supply = <&dvdd_supply>;
            reset-gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
            firmware-name = "fs2105s-btl-2p0-0s.bin";
            pinctrl-names = "default";
            pinctrl-0 = <&fs210x_pins_default>;
        };
    };
